Commit graph

5922 commits

Author SHA1 Message Date
Liam c59c035d74 Vulkan: crop to screen dimensions if crop not explicitly requested 2022-04-04 11:45:15 -04:00
Andrea Pappacoda 0c214cb5b9
fix: typos 2022-04-02 16:34:07 +02:00
Fernando S 550844e5e8
Merge pull request #8128 from FernandoS27/gc-fixes
GPU Garbage Collection: Fix regressions.
2022-04-01 17:19:55 +02:00
Fernando S b1fdc02465
Merge pull request #8066 from ameerj/gpu-decode-fixes
codec: Fix GPU decoder detection on Windows and a memory leak
2022-04-01 01:37:22 +02:00
Fernando Sahmkow e9e671d101 GPU Garbage Collection: Fix regressions. 2022-04-01 01:36:24 +02:00
bunnei 9b52ee4558
Merge pull request #8076 from ameerj/nv-vk-msaa-scale
Vulkan: Use 3D helpers for MSAA scaling on NV drivers 510+
2022-03-30 23:00:44 -07:00
ameerj 3e489782e1 gl_rasterizer: Avoid scenario locking already owned mutex
gpu.TickWork() may lock the texture_cache and buffer_cache mutexes, which are owned by the thread prior to invoking TickWork().

Defer invoking gpu.TickWork() until the scope ends, where the owned mutexes are released.
2022-03-28 20:35:15 -04:00
bunnei af04f8b8e9
Revert "Memory GPU <-> CPU: reduce infighting in the texture cache by adding CPU Cached memory." 2022-03-26 12:38:30 -07:00
Fernando Sahmkow 7a9d9e575b Texture Cache: Add Cached CPU system. 2022-03-25 04:24:05 +01:00
bunnei ab6a5784fa
Merge pull request #7720 from FernandoS27/yfc-gc
First Nugget: Reworked Garbage Collection to be smarter [originally from Project YFC]
2022-03-24 20:16:11 -07:00
Fernando Sahmkow 9872d4bc4f GC: Address Feedback. 2022-03-25 03:05:56 +01:00
bunnei ca12a77670 hle: nvflinger: Migrate android namespace -> Service::android. 2022-03-24 18:13:33 -07:00
bunnei 7f4165fc05 hle: vi: Integrate new NVFlinger and HosBinderDriverServer service. 2022-03-24 18:13:33 -07:00
bunnei 05d80fba38 hle: nvflinger: Move BufferTransformFlags to its own header. 2022-03-24 18:13:32 -07:00
bunnei d456b9d554 hle: nvflinger: Move PixelFormat to its own header. 2022-03-24 18:13:32 -07:00
Fernando Sahmkow 9edbbf2af4 Garbage Collection: Final tuning. 2022-03-25 01:51:52 +01:00
Fernando Sahmkow 5e982a7812 Buffer Cache: Tune to the levels of the new GC. 2022-03-25 01:51:51 +01:00
Fernando Sahmkow ecb3342145 Garbage Collection: Redesign the algorithm to do a better use of memory. 2022-03-25 01:51:51 +01:00
ameerj 8d45dd3b73 Vulkan: Use 3D helpers for MSAA scaling on NV drivers 510+
Nvidia Vulkan drivers 510+ crash when blitting MSAA images. Fall-back to 3D scale helpers for MSAA image scaling.
2022-03-23 23:30:17 -04:00
Liam dea5de91d2 buffer_cache: reset cached write bits after flushing invalidations 2022-03-23 20:59:01 -04:00
bunnei 82ac66f8a4
Merge pull request #8048 from ameerj/include-purge
general: Reduce unused includes across the project
2022-03-21 18:03:54 -07:00
ameerj 15f9472b15 codec: Plug GPU decoder memory leak 2022-03-21 20:22:52 -04:00
ameerj 109566fc8f codec: Disable HW_FRAMES method check on Windows
It was reported that this method causes crashes on certain Linux decoding backends, hence the check to avoid it.

This subsequently caused Windows GPU decoders to never be selected and always fall back to CPU decoding, disable the check on Windows for now.
2022-03-21 20:21:09 -04:00
bunnei ff2e891022
Merge pull request #7812 from FernandoS27/made-straight-from-the-nut
BufferCache: Find direction of the stream buffer increase.
2022-03-20 15:23:53 -07:00
Fernando Sahmkow 3b0d233cbd BufferCache: Find direction of the stream buffer increase. 2022-03-20 21:37:23 +01:00
Fernando S 7c05c987a3
Merge pull request #8036 from ameerj/starbit-nv
vk_texture_cache: Do not reinterpret DepthStencil source images
2022-03-20 13:35:59 +01:00
bunnei 150f6db4d1
Merge pull request #7840 from lioncash/bitor
texture_cache: Amend unintended bitwise OR in SynchronizeAliases
2022-03-20 02:19:30 -07:00
ameerj 866b7c20a8 general: Fix clang/gcc build errors 2022-03-20 02:25:09 -04:00
ameerj 923decae5a common: Reduce unused includes 2022-03-19 15:01:31 -04:00
ameerj 1bc7d61b57 video_core: Reduce unused includes 2022-03-19 15:01:31 -04:00
ameerj d618bba8a6 general: Reduce core.h includes 2022-03-18 02:13:02 -04:00
ameerj 4d840aa903 vk_texture_cache: Do not reinterpret DepthStencil source images
Fixes star pointer interactions in Super Mario Galaxy on some drivers, notably Nvidia.

Co-Authored-By: Fernando S. <1731197+fernandos27@users.noreply.github.com>
2022-03-17 20:55:05 -04:00
Fernando S a616f49864
Merge pull request #8030 from liamwhite/s8d24-conversion
Vulkan: convert S8D24 <-> ABGR8
2022-03-18 00:36:06 +01:00
Liam 6407f16d81 Address review comments 2022-03-16 18:00:42 -04:00
Fernando S c3c351e2c2
Merge pull request #8023 from ameerj/kirby-pop-in
maxwell_3d: Implement a safer CB data upload
2022-03-16 12:14:08 +01:00
Liam bcc2d7e69b Vulkan: convert S8D24 <-> ABGR8 2022-03-15 20:05:21 -04:00
ameerj 5119a57614 maxwell_3d: Implement a safer CB data upload
This makes constant buffer uploads safer and more accurate by updating the GPU memory as soon as the CB Data method is invoked. The previous implementation was deferring the updates until a different maxwell 3d method was detected, then writing all CB data at once.
2022-03-14 19:18:36 -04:00
Fernando S f9e1f559b1
Merge pull request #8000 from liamwhite/hagi
Initial support for Wii Hagi emulator
2022-03-15 00:08:05 +01:00
byte[] be0e6a2bb4 Maxwell3D: Link to override constant definition in nouveau 2022-03-14 11:06:25 -04:00
byte[] 364c67e49b Maxwell3D: restore original topology when topology overrides are disabled 2022-03-14 11:00:08 -04:00
Liam 37aa472269 Maxwell3D: Use override constants from nouveau
This fixes some incorrect rendering in Sunshine
2022-03-14 10:11:58 -04:00
ameerj e8c50e709e emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors 2022-03-12 02:54:33 -05:00
Liam 56c646d82c Maxwell3D: Restrict topology override effect to after the register is set 2022-03-11 19:42:12 -05:00
Liam 70e632f153 Maxwell3D: mark index buffers as dirty after updating counts 2022-03-11 08:51:22 -05:00
Liam 82c3042c0f TextureCacheRuntime: allow converting D24S8 to ABGR8
I can't see how this would be useful, but Galaxy uses it.
2022-03-10 20:25:34 -05:00
Liam f1521183f8 Maxwell3D: read small-index draw and primitive topology override registers
This allows Galaxy and Sunshine to render for the first time.
2022-03-10 19:21:04 -05:00
bunnei f2743b41b0
Merge pull request #7986 from lat9nq/vk-callback
core, video_core: Fix two crashes when failing to create the emulated GPU instance
2022-03-08 12:36:57 -08:00
lat9nq b5e60ae1b0 video_core: Cancel Scoped's exit call on GPU failure
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-07 18:21:56 -05:00
Fernando S 58b52f4884
Merge pull request #7930 from asLody/dma-semaphore
MaxwellDMA: Implement semaphore operations
2022-03-07 21:53:38 +01:00
Lody 4498908e72 MaxwellDMA: Implement semaphore operations 2022-03-07 13:46:18 +08:00