summaryrefslogtreecommitdiff
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | bit_util: Add `bit` utility functionGravatar Wunkolo2022-03-091-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Extracts a singular bit, as a bool, from the specified compile-time index.
* | | | | | | hle: service: ldr: Use deterministic addresses when mapping NROs.Gravatar bunnei2022-03-082-24/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Instead of randomization, choose in-order addresses for where to map NROs into memory. - This results in predictable behavior when debugging and consistent behavior when reproducing issues.
* | | | | | | Merge pull request #7986 from lat9nq/vk-callbackGravatar bunnei2022-03-083-2/+14
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | core, video_core: Fix two crashes when failing to create the emulated GPU instance
| * | | | | | | video_core: Cancel Scoped's exit call on GPU failureGravatar lat9nq2022-03-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When CreateRenderer fails, the GraphicsContext that was std::move'd into it is destroyed before the Scoped that was created to manage its currency. In that case, the GraphicsContext::Scoped will still call its destructor at the ending of the function. And because the context is destroyed, the Scoped will cause a crash as it attempts to call a destroyed object's DoneCurrent function. Since we know when the call would be invalid, call the Scoped's Cancel method. This prevents it from calling a method on a destroyed object.
| * | | | | | | emu_window: Create a way to Cancel the exit of a ScopedGravatar lat9nq2022-03-071-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a GraphicsContext is destroyed before its Scoped is destroyed, this causes a crash as the Scoped tries to call a method in the destroyed context on exit. Add a way to Cancel the call when we know that calling the GraphicsContext will not work.
| * | | | | | | core: Don't shutdown a null GPUGravatar lat9nq2022-03-071-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When CreateGPU fails, yuzu would try and shutdown the GPU instance regardless of whether any instance was actually created. Check for nullptr before calling its methods to prevent a crash.
* | | | | | | | shader_recompiler/LOP3: Use brute force python results within switch/case.Gravatar Markus Wick2022-03-082-52/+620
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Thanks to @asLody for optimizing this function. This raised the focus that this function should be optimized more. The current table assumes that the host GPU is able to invert for free, so only AND,OR,XOR are accumulated in the performance metrik. Performance results: Instructions 0: 8 1: 30 2: 114 3: 80 4: 24 Latency 0: 8 1: 30 2: 194 3: 24
* | | | | | | | hle: kernel: KPageTable: Improve implementations of MapCodeMemory and ↵Gravatar bunnei2022-03-072-47/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UnmapCodeMemory. - This makes these functions more accurate to the real HOS implementations. - Fixes memory access issues in Super Smash Bros. Ultimate that occur when un/mapping NROs.
* | | | | | | | Merge pull request #7930 from asLody/dma-semaphoreGravatar Fernando S2022-03-072-1/+21
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | MaxwellDMA: Implement semaphore operations
| * | | | | | | MaxwellDMA: Implement semaphore operationsGravatar Lody2022-03-072-1/+21
| | | | | | | |
* | | | | | | | gl_graphics_pipeline: Improve shader builder synchronization using fences ↵Gravatar Ameer J2022-03-062-21/+32
| |_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#7969) * gl_graphics_pipeline: Improve shader builder synchronization Make use of GLsync objects to ensure better synchronization between shader builder threads and the main context * gl_graphics_pipeline: Make built_fence access threadsafe * gl_graphics_pipeline: Use GLsync objects only when building in parallel * gl_graphics_pipeline: Replace GetSync calls with non-blocking waits The spec states that a ClientWait on a Fence object ensures the changes propagate to the calling context
* | | | | | | Merge pull request #7973 from Morph1984/debug-crashGravatar Fernando S2022-03-061-2/+2
|\ \ \ \ \ \ \ | |_|_|_|_|/ / |/| | | | | | host_memory: Fix fastmem crashes in debug builds
| * | | | | | host_memory: Fix fastmem crashes in debug buildsGravatar Morph2022-03-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is possible for virtual_offset to not be 0 when the iterator is at the beginning, and thus, std::prev(it) may be evaluated, leading to a crash in debug mode. Co-Authored-By: Fernando S. <1731197+FernandoS27@users.noreply.github.com>
* | | | | | | Merge pull request #7935 from Wunkolo/logging-join-fixGravatar bunnei2022-03-021-13/+5
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | logging: Convert `backend_thread` into an `std::jthread`
| * | | | | | | logging: Convert `backend_thread` into an `std::jthread`Gravatar Wunkolo2022-02-271-13/+5
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Was getting an unhandled `invalid_argument` [exception](https://en.cppreference.com/w/cpp/thread/thread/join) during shutdown on my linux machine. This removes the need for a `StopBackendThread` function entirely since `jthread` [automatically handles both checking if the thread is joinable and stopping the token before attempting to join](https://en.cppreference.com/w/cpp/thread/jthread/~jthread) in the case that `StartBackendThread` was never called.
* | | | | | | Merge pull request #7956 from bunnei/improve-mem-managerGravatar bunnei2022-03-0215-376/+848
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | Kernel Memory Updates (Part 4): Revamp KMemoryManager & other fixes
| * | | | | | hle: kernel: Re-create memory layout at initialization.Gravatar bunnei2022-02-271-41/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - As this can only be derived once.
| * | | | | | hle: kernel: Remove unused pool locals.Gravatar bunnei2022-02-271-2/+0
| | | | | | |
| * | | | | | hle: kernel: k_memory_manager: Rework for latest kernel behavior.Gravatar bunnei2022-02-276-173/+548
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Updates the KMemoryManager implementation against latest documentation. - Reworks KMemoryLayout to be accessed throughout the kernel. - Fixes an issue with pool sizes being incorrectly reported.
| * | | | | | hle: kernel: k_page_heap: GetPhysicalAddr can be const.Gravatar bunnei2022-02-271-2/+1
| | | | | | |
| * | | | | | hle: kernel: k_page_heap: Remove superfluous consexpr.Gravatar bunnei2022-02-272-4/+4
| | | | | | |
| * | | | | | hle: kernel: k_page_heap: Various updates and improvements.Gravatar bunnei2022-02-272-155/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - KPageHeap tracks physical addresses, not virtual addresses. - Various updates and improvements to match latest documentation for this type.
| * | | | | | hle: kernel: Add initial_process.h header.Gravatar bunnei2022-02-272-0/+24
| | | | | | |
| * | | | | | hle: kernel: board: nx: Add k_memory_layout.h header.Gravatar bunnei2022-02-272-0/+14
| | | | | | |
| * | | | | | hle: kernel: k_system_control: Add GetRealMemorySize and update ↵Gravatar bunnei2022-02-272-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | GetKernelPhysicalBaseAddress.
| * | | | | | hle: kernel: k_memory_layout: Add GetPhysicalLinearRegion.Gravatar bunnei2022-02-271-0/+4
| | | | | | |
| * | | | | | hle: kernel: k_memory_region_types: Update for new regions.Gravatar bunnei2022-02-271-1/+9
| |/ / / / /
* | | | | | Merge pull request #7959 from merryhime/cmpxchgGravatar Fernando S2022-03-0116-7/+113
|\ \ \ \ \ \ | | | | | | | | | | | | | | dynarmic: Inline exclusive memory accesses
| * | | | | | dynarmic: Inline exclusive memory accessesGravatar merry2022-02-2716-7/+113
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inlines implementation of exclusive instructions into JITted code, improving performance of applications relying heavily on these instructions. We also fastmem these instructions for additional speed, with support for appropriate recompilation on fastmem failure. An unsafe optimization to disable the intercore global_monitor is also provided, should one wish to rely solely on cmpxchg semantics for safety. See also: merryhime/dynarmic#664
* / / / / / gl_fence_manager: Minor optimization to signal queryingGravatar ameerj2022-02-271-2/+1
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | Per the spec, bufSize is the number of integers that will be written, in this case, 1. Also, the length argument is optional if the information of the number of elements written is not needed.
* | | | | Merge pull request #7932 from bunnei/extended-mem-layoutGravatar bunnei2022-02-2621-55/+91
|\ \ \ \ \ | | | | | | | | | | | | Add extended memory layout (6GB) support and improve KResourceLimit management
| * | | | | hle: kernel: KSystemControl: Use 6GB memory layout when ↵Gravatar bunnei2022-02-211-20/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "use_extended_memory_layout" setting is enabled. - This uses a larger 6GB DRAM memory layout, which is useful for some mods that require more memory.
| * | | | | core: device_memory: Use memory size reported by KSystemControl.Gravatar bunnei2022-02-213-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | - That way, we can consolidate the memory layout to one place.
| * | | | | settings: Add a new "use_extended_memory_layout" setting.Gravatar bunnei2022-02-217-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | - This will be used to enable emulation of a larger memory arrangement.
| * | | | | core: hle: kernel: Remove resource limit hack for PhysicalMemory.Gravatar bunnei2022-02-211-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | - With prior changes, we now report the correct amount of physical memory available to the emulated process.
| * | | | | core: hle: kernel: KProcess: Pass in KResourceLimit on process creation.Gravatar bunnei2022-02-214-9/+30
| | | | | | | | | | | | | | | | | | | | | | | | - This allows us to have a resource limit per process, rather than use the global system resource limit.
| * | | | | core: hle: kernel: KEvent: Pass in owner KProcess on event creation.Gravatar bunnei2022-02-214-12/+8
| | | | | | | | | | | | | | | | | | | | | | | | - This is necessary to ensure resource limits are freed from the right process.
| * | | | | core: hle: kernel: KResourceLimit: Add a helper function for creating a ↵Gravatar bunnei2022-02-212-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | KResourceLimit for a process.
* | | | | | Merge pull request #7953 from ameerj/radv-rdna2-crashGravatar bunnei2022-02-261-4/+21
|\ \ \ \ \ \ | | | | | | | | | | | | | | vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_state
| * | | | | | vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_stateGravatar Ameer J2022-02-251-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RDNA2 devices running under the RADV driver were crashing when VK_EXT_vertex_input_dynamic_state was enabled. Blacklisting these devices until a proper fix is established.
* | | | | | | Merge pull request #7948 from Morph1984/11-11-10-floatGravatar Mai M2022-02-262-0/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | maxwell_to_(gl/vk): Add 11_11_10 float vertex format
| * | | | | | | maxwell_to_(gl/vk): Add 11_11_10 float vertex formatGravatar Morph2022-02-252-0/+4
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | - Used by パワプロクンポケットR
* | | | | | | Merge pull request #7939 from asLody/fb-format-gbra8Gravatar bunnei2022-02-251-0/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | vk_blit_screen: Add missing framebuffer format
| * | | | | | | vk_blit_screen: Add missing format bgra8Gravatar Lody2022-02-241-0/+2
| |/ / / / / /
* | | | | | | Merge pull request #7927 from german77/amiiboGravatar bunnei2022-02-241-0/+10
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | yuzu: Disconnect amiibos on drag and drop
| * | | | | | | yuzu: Remove amiibos on drag and dropGravatar german772022-02-201-0/+10
| | |_|/ / / / | |/| | | | |
* | | | | | | Merge pull request #7859 from german77/battery_againGravatar bunnei2022-02-246-34/+27
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | input_common: Remove battery duplicated struct and update every button press
| * | | | | | input_common: Remove battery duplicated struct and update every button pressGravatar german772022-02-066-34/+27
| | | | | | |
* | | | | | | service: am: Update enum names to match documentationGravatar Narr the Reg2022-02-214-16/+51
| | | | | | |
* | | | | | | Merge pull request #7913 from voidanix/anv-fixGravatar bunnei2022-02-213-2/+21
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | | vulkan_device: fix missing format in ANV