summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-03-09cpu_detect: Refactor cpu/manufacturer identificationWunkolo
Set the zero-enum value to Unknown Move the Manufacterer enum into the CPUCaps structure namespace Add "ParseManufacturer" utility-function Fix cpu/brand string buffer sizes(!)
2022-03-09cpu_detect: Update array-types to `span` and `array`Wunkolo
Update some uses of `int` into some more explicitly sized types as well
2022-03-09cpu_detect: Utilize `Bit<N>` utility functionWunkolo
2022-03-09cpu_detect: Compact capability fieldsWunkolo
As this structure gets more explicit, bools can be bitfields and small enums can use smaller types for their span of values.
2022-03-09bit_util: Add `bit` utility functionWunkolo
Extracts a singular bit, as a bool, from the specified compile-time index.
2022-03-08hle: service: ldr: Use deterministic addresses when mapping NROs.bunnei
- 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.
2022-03-08Merge pull request #7986 from lat9nq/vk-callbackbunnei
core, video_core: Fix two crashes when failing to create the emulated GPU instance
2022-03-08shader_recompiler/LOP3: Use brute force python results within switch/case.Markus Wick
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
2022-03-07hle: kernel: KPageTable: Improve implementations of MapCodeMemory and ↵bunnei
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.
2022-03-07video_core: Cancel Scoped's exit call on GPU failurelat9nq
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.
2022-03-07emu_window: Create a way to Cancel the exit of a Scopedlat9nq
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.
2022-03-07Merge pull request #7930 from asLody/dma-semaphoreFernando S
MaxwellDMA: Implement semaphore operations
2022-03-07core: Don't shutdown a null GPUlat9nq
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.
2022-03-07MaxwellDMA: Implement semaphore operationsLody
2022-03-06gl_graphics_pipeline: Improve shader builder synchronization using fences ↵Ameer J
(#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
2022-03-06Merge pull request #7973 from Morph1984/debug-crashFernando S
host_memory: Fix fastmem crashes in debug builds
2022-03-02Merge pull request #7935 from Wunkolo/logging-join-fixbunnei
logging: Convert `backend_thread` into an `std::jthread`
2022-03-02Merge pull request #7956 from bunnei/improve-mem-managerbunnei
Kernel Memory Updates (Part 4): Revamp KMemoryManager & other fixes
2022-03-02host_memory: Fix fastmem crashes in debug buildsMorph
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>
2022-03-01Merge pull request #7959 from merryhime/cmpxchgFernando S
dynarmic: Inline exclusive memory accesses
2022-02-27hle: kernel: Re-create memory layout at initialization.bunnei
- As this can only be derived once.
2022-02-27hle: kernel: Remove unused pool locals.bunnei
2022-02-27hle: kernel: k_memory_manager: Rework for latest kernel behavior.bunnei
- Updates the KMemoryManager implementation against latest documentation. - Reworks KMemoryLayout to be accessed throughout the kernel. - Fixes an issue with pool sizes being incorrectly reported.
2022-02-27logging: Convert `backend_thread` into an `std::jthread`Wunkolo
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.
2022-02-27gl_fence_manager: Minor optimization to signal queryingameerj
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.
2022-02-27dynarmic: Inline exclusive memory accessesmerry
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
2022-02-27hle: kernel: k_page_heap: GetPhysicalAddr can be const.bunnei
2022-02-27hle: kernel: k_page_heap: Remove superfluous consexpr.bunnei
2022-02-27hle: kernel: k_page_heap: Various updates and improvements.bunnei
- KPageHeap tracks physical addresses, not virtual addresses. - Various updates and improvements to match latest documentation for this type.
2022-02-27hle: kernel: Add initial_process.h header.bunnei
2022-02-27hle: kernel: board: nx: Add k_memory_layout.h header.bunnei
2022-02-27hle: kernel: k_system_control: Add GetRealMemorySize and update ↵bunnei
GetKernelPhysicalBaseAddress.
2022-02-27hle: kernel: k_memory_layout: Add GetPhysicalLinearRegion.bunnei
2022-02-27hle: kernel: k_memory_region_types: Update for new regions.bunnei
2022-02-26Merge pull request #7932 from bunnei/extended-mem-layoutbunnei
Add extended memory layout (6GB) support and improve KResourceLimit management
2022-02-26Merge pull request #7953 from ameerj/radv-rdna2-crashbunnei
vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_state
2022-02-26Merge pull request #7948 from Morph1984/11-11-10-floatMai M
maxwell_to_(gl/vk): Add 11_11_10 float vertex format
2022-02-25vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_stateAmeer J
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.
2022-02-25maxwell_to_(gl/vk): Add 11_11_10 float vertex formatMorph
- Used by パワプロクンポケットR
2022-02-25Merge pull request #7939 from asLody/fb-format-gbra8bunnei
vk_blit_screen: Add missing framebuffer format
2022-02-24Merge pull request #7927 from german77/amiibobunnei
yuzu: Disconnect amiibos on drag and drop
2022-02-24Merge pull request #7859 from german77/battery_againbunnei
input_common: Remove battery duplicated struct and update every button press
2022-02-24vk_blit_screen: Add missing format bgra8Lody
2022-02-21service: am: Update enum names to match documentationNarr the Reg
2022-02-21Merge pull request #7913 from voidanix/anv-fixbunnei
vulkan_device: fix missing format in ANV
2022-02-21hle: kernel: KSystemControl: Use 6GB memory layout when ↵bunnei
"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.
2022-02-21core: device_memory: Use memory size reported by KSystemControl.bunnei
- That way, we can consolidate the memory layout to one place.
2022-02-21settings: Add a new "use_extended_memory_layout" setting.bunnei
- This will be used to enable emulation of a larger memory arrangement.
2022-02-21core: hle: kernel: Remove resource limit hack for PhysicalMemory.bunnei
- With prior changes, we now report the correct amount of physical memory available to the emulated process.
2022-02-21core: hle: kernel: KProcess: Pass in KResourceLimit on process creation.bunnei
- This allows us to have a resource limit per process, rather than use the global system resource limit.