Commit Graph

20926 Commits (1f24a4e520004d48799a27b159432aa0b8634628)
 

Author SHA1 Message Date
lat9nq 1f24a4e520 emu_window: Create a way to Cancel the exit of a Scoped
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.
3 years ago
lat9nq 381f1dd2c9 core: Don't shutdown a null GPU
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.
3 years ago
Ameer J 370e480c8c
gl_graphics_pipeline: Improve shader builder synchronization using fences (#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
3 years ago
Fernando S 5192c64991
Merge pull request #7973 from Morph1984/debug-crash
host_memory: Fix fastmem crashes in debug builds
3 years ago
bunnei a31c195749
Merge pull request #7935 from Wunkolo/logging-join-fix
logging: Convert `backend_thread` into an `std::jthread`
3 years ago
bunnei 3ab82e7582
Merge pull request #7956 from bunnei/improve-mem-manager
Kernel Memory Updates (Part 4): Revamp KMemoryManager & other fixes
3 years ago
Morph b33f23cc46 host_memory: Fix fastmem crashes in debug builds
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>
3 years ago
Fernando S e06a133717
Merge pull request #7959 from merryhime/cmpxchg
dynarmic: Inline exclusive memory accesses
3 years ago
Mai M 3c47570563
Merge pull request #7967 from zhaobot/tx-update-20220301023432
Update translations (2022-03-01)
3 years ago
The yuzu Community b4c919eba8 Update translations (2022-03-01) 3 years ago
Mai M 96dbb9233a
Merge pull request #7963 from ameerj/gl_fence_nit
gl_fence_manager: Minor optimization to signal querying
3 years ago
Mai M fdf81cd112
Merge pull request #7966 from merryhime/cmake-ffmpeg-endif
ffmpeg: Fix mis-maching argument warning for endif
3 years ago
Merry c4df0d8cdc ffmpeg: Fix mis-maching argument warning for endif 3 years ago
merry ec9689f200 dynarmic: Update to latest master 3 years ago
bunnei 14d28a043d hle: kernel: Re-create memory layout at initialization.
- As this can only be derived once.
3 years ago
bunnei 16e5954fcb hle: kernel: Remove unused pool locals. 3 years ago
bunnei f87f076162 hle: kernel: k_memory_manager: Rework for latest kernel behavior.
- Updates the KMemoryManager implementation against latest documentation.
- Reworks KMemoryLayout to be accessed throughout the kernel.
- Fixes an issue with pool sizes being incorrectly reported.
3 years ago
Wunkolo 913c2bd2cb logging: Convert `backend_thread` into an `std::jthread`
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.
3 years ago
ameerj 7f7df43da2 gl_fence_manager: Minor optimization to signal querying
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.
3 years ago
merry 16784e5bb3 dynarmic: Inline exclusive memory accesses
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
3 years ago
bunnei adbb9c2b00 hle: kernel: k_page_heap: GetPhysicalAddr can be const. 3 years ago
bunnei f7e65eb971 hle: kernel: k_page_heap: Remove superfluous consexpr. 3 years ago
bunnei 06e2b76c75 hle: kernel: k_page_heap: Various updates and improvements.
- KPageHeap tracks physical addresses, not virtual addresses.
- Various updates and improvements to match latest documentation for this type.
3 years ago
bunnei 5d1a81520c hle: kernel: Add initial_process.h header. 3 years ago
bunnei a6496deeed hle: kernel: board: nx: Add k_memory_layout.h header. 3 years ago
bunnei 9b5e7971dc hle: kernel: k_system_control: Add GetRealMemorySize and update GetKernelPhysicalBaseAddress. 3 years ago
bunnei 18e77a54c3 hle: kernel: k_memory_layout: Add GetPhysicalLinearRegion. 3 years ago
bunnei 06a21ac229 hle: kernel: k_memory_region_types: Update for new regions. 3 years ago
bunnei 96d90be59f
Merge pull request #7955 from bunnei/update-dynarmic
externals: Dynarmic: Update to latest rev.
3 years ago
bunnei ce46aa4721 externals: Dynarmic: Update to latest rev.
- Fixes inaccurate size reporting in SpaceRemaining, which caused crashes in yuzu with SSBU.
3 years ago
bunnei 20e9501b0d
Merge pull request #7932 from bunnei/extended-mem-layout
Add extended memory layout (6GB) support and improve KResourceLimit management
3 years ago
bunnei 56d9052b73
Merge pull request #7953 from ameerj/radv-rdna2-crash
vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_state
3 years ago
Mai M 91d802f68d
Merge pull request #7948 from Morph1984/11-11-10-float
maxwell_to_(gl/vk): Add 11_11_10 float vertex format
3 years ago
Ameer J 5f8d6bc504 vulkan_device: Blacklist RADV on RDNA2 from VK_EXT_vertex_input_dynamic_state
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.
3 years ago
Morph e292b2d991 maxwell_to_(gl/vk): Add 11_11_10 float vertex format
- Used by パワプロクンポケットR
3 years ago
bunnei 6c9b9b72da
Merge pull request #7939 from asLody/fb-format-gbra8
vk_blit_screen: Add missing framebuffer format
3 years ago
bunnei f582a4482d
Merge pull request #7927 from german77/amiibo
yuzu: Disconnect amiibos on drag and drop
3 years ago
bunnei 1079215871
Merge pull request #7859 from german77/battery_again
input_common: Remove battery duplicated struct and update every button press
3 years ago
Lody 6978093404 vk_blit_screen: Add missing format bgra8 3 years ago
Mai M 2f45e999d8
Merge pull request #7933 from german77/am_update
service: am: Update enum names to match documentation
3 years ago
Narr the Reg d44464829b service: am: Update enum names to match documentation 3 years ago
bunnei efe50d88ec
Merge pull request #7913 from voidanix/anv-fix
vulkan_device: fix missing format in ANV
3 years ago
bunnei 71f62a346d hle: kernel: KSystemControl: Use 6GB memory layout when "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.
3 years ago
bunnei c0e45a3c78 core: device_memory: Use memory size reported by KSystemControl.
- That way, we can consolidate the memory layout to one place.
3 years ago
bunnei 70482e6b26 settings: Add a new "use_extended_memory_layout" setting.
- This will be used to enable emulation of a larger memory arrangement.
3 years ago
bunnei ca5e843bf6 core: hle: kernel: Remove resource limit hack for PhysicalMemory.
- With prior changes, we now report the correct amount of physical memory available to the emulated process.
3 years ago
bunnei a74fddc98f core: hle: kernel: KProcess: Pass in KResourceLimit on process creation.
- This allows us to have a resource limit per process, rather than use the global system resource limit.
3 years ago
bunnei 57ebcbf2c4 core: hle: kernel: KEvent: Pass in owner KProcess on event creation.
- This is necessary to ensure resource limits are freed from the right process.
3 years ago
bunnei c7019db6f4 core: hle: kernel: KResourceLimit: Add a helper function for creating a KResourceLimit for a process. 3 years ago
bunnei 21f5912ec9
Merge pull request #7919 from bunnei/phys-mem-updates
core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.
3 years ago