Ryujinx/src/Ryujinx.Graphics.Gpu
riperiperi 1f5d881860
GPU: Allow granular buffer updates from the constant buffer updater (#4749)
* GPU: Allow granular buffer updates from the constant buffer updater

Sometimes, constant buffer updates can't be avoided, either due to a cb0 access that cannot be eliminated, or the game updating a buffer between draws to the detriment of everyone.

To avoid uploading the full 4096 bytes each time, this PR remembers the offset and size containing all constant buffer updates since the last sync. It will then upload that range after sync.

* Allow clearing the dirty range

* Always use precise

Might want to not do this if distance between the existing range and new one is too high.

* Use old force dirty mechanism when distance between regions is too great

* Update src/Ryujinx.Graphics.Gpu/Memory/Buffer.cs

Co-authored-by: gdkchan <gab.dark.100@gmail.com>

* Fix inheritance of _dirtyStart and _dirtyEnd

---------

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2023-05-05 13:47:15 +00:00
..
Engine Fix some invalid blits involving depth textures (#4723) 2023-05-03 21:20:12 -03:00
Image Fix some invalid blits involving depth textures (#4723) 2023-05-03 21:20:12 -03:00
Memory GPU: Allow granular buffer updates from the constant buffer updater (#4749) 2023-05-05 13:47:15 +00:00
Shader Move solution and projects to src 2023-04-27 23:51:14 +02:00
Synchronization GPU: Pre-emptively flush textures that are flushed often (to imported memory when available) (#4711) 2023-05-01 16:05:12 -03:00
ClassId.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
Constants.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
GpuChannel.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
GpuContext.cs GPU: Pre-emptively flush textures that are flushed often (to imported memory when available) (#4711) 2023-05-01 16:05:12 -03:00
GraphicsConfig.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Gpu.csproj Move solution and projects to src 2023-04-27 23:51:14 +02:00
Window.cs Move solution and projects to src 2023-04-27 23:51:14 +02:00