aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-12-29core/memory: Read and write page table atomicallyReinUsesLisp
Squash attributes into the pointer's integer, making them an uintptr_t pair containing 2 bits at the bottom and then the pointer. These bits are currently unused thanks to alignment requirements. Configure Dynarmic to mask out these bits on pointer reads. While we are at it, remove some unused attributes carried over from Citra. Read/Write and other hot functions use a two step unpacking process that is less readable to stop MSVC from emitting an extra AND instruction in the hot path: mov rdi,rcx shr rdx,0Ch mov r8,qword ptr [rax+8] mov rax,qword ptr [r8+rdx*8] mov rdx,rax -and al,3 and rdx,0FFFFFFFFFFFFFFFCh je Core::Memory::Memory::Impl::Read<unsigned char> mov rax,qword ptr [vaddr] movzx eax,byte ptr [rdx+rax]
2020-12-29Merge pull request #5247 from comex/xx-conceptsbunnei
k_priority_queue: Fix concepts use
2020-12-29hle: kernel: service_thread: Make thread naming more consistent.bunnei
2020-12-29hle: kernel: Manage service threads on another thread.bunnei
- This is to allow service threads to defer destruction of themselves.
2020-12-29common: ThreadWorker: Add class to help do asynchronous work.bunnei
2020-12-29Merge pull request #5246 from comex/xx-includebunnei
Add missing include of "core/hle/kernel/kernel.h"
2020-12-29hle: kernel: Manage host thread IDs using TLS.bunnei
- Avoids the need to have a large map of host to guest thread IDs.
2020-12-29k_priority_queue: Fix concepts usecomex
- For `std::same_as`, add missing include of `<concepts>`. - For `std::convertible_to`, create a replacement in `common/concepts.h` and use that instead. This would also be found in `<concepts>`, but unlike `std::same_as`, `std::convertible_to` is not yet implemented in libc++, LLVM's STL implementation - not even in master. (In fact, `std::same_as` is the *only* concept currently implemented. For some reason.)
2020-12-29Add missing include of "core/hle/kernel/kernel.h"comex
This is needed as the header invokes methods on KernelCore.
2020-12-29Merge pull request #5245 from ameerj/sleepthread-logLC
svc: demote SleepThread log to LOG_TRACE
2020-12-29svc: demote SleepThread log to LOG_TRACEameerj
This log is called often, and introduces a lot of noise when debug logging is enabled, making it difficult to see other debug logs.
2020-12-29Merge pull request #5236 from gal20/udp_client_patchbunnei
input_common: process udp packets only for the correct pad
2020-12-29hle: kernel: Move ServiceThread ownership to KernelCore.bunnei
- Fixes a circular dependency which prevented threads from being released on shutdown.
2020-12-29hle: kernel: service_thread: Add thread name and take weak_ptr of ServerSession.bunnei
2020-12-28hle: service: Acquire and release a lock on requests.bunnei
- This makes it such that we can safely access service members from CoreTiming thread.
2020-12-28audio_core: stream: Ensure buffer is valid before release.bunnei
2020-12-28core: Do not reset device_memory on shutdown.bunnei
- This will be reset on initialization.
2020-12-28core: hle: kernel: Clear process list on boot.bunnei
2020-12-28gpu: gpu_thread: Ensure MicroProfile is shutdown on exit.bunnei
2020-12-28hle: service: vi: Refactor to grab buffer only once.bunnei
2020-12-28service: nvflinger: Improve synchronization for BufferQueue.bunnei
- Use proper mechanisms for blocking on DequeueBuffer. - Ensure service thread terminates on emulation Shutdown.
2020-12-28hle: service: Ensure system is powered on before writing IPC result.bunnei
2020-12-28core: kernel: Clear process list earlier.bunnei
2020-12-28video_core: gpu_thread: Do not wait when system is powered down.bunnei
2020-12-28core: settings: Untangle multicore from asynchronous GPU.bunnei
- Now that GPU is always threaded, we can support multicore with synchronous GPU.
2020-12-28video_core: gpu: Implement synchronous mode using threaded GPU.bunnei
2020-12-28video_core: gpu: Refactor out synchronous/asynchronous GPU implementations.bunnei
- We must always use a GPU thread now, even with synchronous GPU.
2020-12-28hle: kernel: hle_ipc: Remove SleepClientThread.bunnei
- This was kind of hacky, and no longer is necessary with service threads.
2020-12-28hle: service: bsd: Update to work with service threads, removing ↵bunnei
SleepClientThread.
2020-12-28hle: service: nvdrv: Revert #4981 to remove usage of SleepClientThread.bunnei
- Note, this always processes the ioctl right away, which fixes BotW 1.0.0 issues.
2020-12-28hle: kernel: service_thread: Add parameter for thread pool size.bunnei
2020-12-28hle: service: nvflinger: Refactor locking and interfaces.bunnei
2020-12-28hle: service: vi: Remove usage of SleepClientThread.bunnei
2020-12-28core: hle: server_session: Use separate threads for each service connection.bunnei
2020-12-27udp client: process packets only for the correct padgal20
2020-12-26Allow to invert analog axis with right clickgerman
2020-12-25renderer_vulkan/fixed_pipeline_state: Move enabled bindings to static stateReinUsesLisp
Without using VK_EXT_robustness2, we can't consider the 'enabled' (not null) vertex buffers as dynamic state, as this leads to invalid Vulkan state. Move this to static state that is always hashed and compared in the pipeline key. The bits for enabled vertex buffers are moved into the attribute state bitfield. This is not 'correct' as it's not an attribute state, but that struct has bits to spare, and it's used in an array of 32 elements (the exact same number of vertex buffer bindings).
2020-12-25yuzu/main: Add basic command line argumentsMorph
The following command line arguments are supported: yuzu.exe "path_to_game" - Launches a game at "path_to_game" yuzu.exe -f - Launches the next game in fullscreen yuzu.exe -g "path_to_game" - Launches a game at "path_to_game" yuzu.exe -f -g "path_to_game" - Launches a game at "path_to_game" in fullscreen
2020-12-25Merge pull request #5226 from ReinUsesLisp/c4715-vcRodrigo Locatti
video_core: Enforce C4715 (not all control paths return a value)
2020-12-25Merge pull request #5225 from ReinUsesLisp/always-vulkanRodrigo Locatti
cmake: Always enable Vulkan
2020-12-24core: memory: Ensure thread safe access when pages are rasterizer cached (#5206)bunnei
* core: memory: Ensure thread safe access when pages are rasterizer cached.
2020-12-24cmake: Always enable VulkanReinUsesLisp
Removes the unnecesary burden of maintaining separate #ifdef paths and allows us sharing generic Vulkan code across APIs.
2020-12-24video_core: Enforce C4715 (not all control paths return a value)ReinUsesLisp
Most of the time people write code that always returns a value, terminates execution, throws an exception, or uses an unconventional jump primitive. This is not always true when we build without asserts on mainline builds. To avoid introducing undefined behavior on our most used builds, enforce this warning signalling an error and stopping the build from shipping.
2020-12-24vk_shader_decompiler: Silence warning when compiling without assertsReinUsesLisp
2020-12-23Merge pull request #5217 from lat9nq/save-on-bootbunnei
yuzu/main: Save settings when starting guest
2020-12-22yuzu/main: Improve menubar access keyslat9nq
Adds a unique access key to each action within each menu. A few actions already had their own access key, so those were untouched.
2020-12-22Add option to reset window size to 1080pgerman
2020-12-21Merge pull request #5042 from Morph1984/project-aetherbunnei
Project Aether: Reimplementation of the Web Browser Applet
2020-12-22yuzu/main: Save settings when starting guestlat9nq
Saves UISettings and Settings when booting a guest. Moves updating UISettings::values from GMainWindow::closeEvent into its own function, then reuses it in GMainWindow::BootGame.
2020-12-20Merge pull request #5131 from bunnei/scheduler-rewritebunnei
Rewrite Kernel scheduler based on Atmosphere