Ryujinx/src
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
..
ARMeilleure Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx ModLoader: Fix case sensitivy issues without breaking cheats (#4783) 2023-05-05 09:39:08 +02:00
Ryujinx.Audio Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Audio.Backends.OpenAL Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Audio.Backends.SDL2 Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Audio.Backends.SoundIo Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Ava ModLoader: Fix case sensitivy issues without breaking cheats (#4783) 2023-05-05 09:39:08 +02:00
Ryujinx.Common Add hide-cursor command line argument & always hide cursor option (#4613) 2023-05-02 03:29:47 +02:00
Ryujinx.Cpu Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Device Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.GAL GPU: Pre-emptively flush textures that are flushed often (to imported memory when available) (#4711) 2023-05-01 16:05:12 -03:00
Ryujinx.Graphics.Gpu GPU: Allow granular buffer updates from the constant buffer updater (#4749) 2023-05-05 13:47:15 +00:00
Ryujinx.Graphics.Host1x Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Nvdec Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Nvdec.FFmpeg Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Nvdec.Vp9 Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.OpenGL GPU: Pre-emptively flush textures that are flushed often (to imported memory when available) (#4711) 2023-05-01 16:05:12 -03:00
Ryujinx.Graphics.Shader Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Texture Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Vic Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Video Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Vulkan Vulkan: Record modifications after changing the framebuffer (#4775) 2023-05-03 10:42:21 +02:00
Ryujinx.Headless.SDL2 Add hide-cursor command line argument & always hide cursor option (#4613) 2023-05-02 03:29:47 +02:00
Ryujinx.HLE ModLoader: Fix case sensitivy issues without breaking cheats (#4783) 2023-05-05 09:39:08 +02:00
Ryujinx.Horizon Revert "bcat ipc (#4446)" (#4801) 2023-05-04 18:16:51 +02:00
Ryujinx.Horizon.Common Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Horizon.Generators Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Horizon.Kernel.Generators Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Input Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Input.SDL2 Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Memory GPU: Fix errors handling texture remapping (#4745) 2023-05-01 15:32:32 -03:00
Ryujinx.SDL2.Common Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.ShaderTools Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Tests Adjust Ryujinx.Tests.Memory namespace 2023-04-27 23:51:14 +02:00
Ryujinx.Tests.Memory Adjust Ryujinx.Tests.Memory namespace 2023-04-27 23:51:14 +02:00
Ryujinx.Tests.Unicorn Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Ui.Common Add hide-cursor command line argument & always hide cursor option (#4613) 2023-05-02 03:29:47 +02:00
Ryujinx.Ui.LocaleGenerator Move solution and projects to src 2023-04-27 23:51:14 +02:00
Spv.Generator Move solution and projects to src 2023-04-27 23:51:14 +02:00