From a8f7ddc9581edfb3078255201c59f923feed9cb9 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Sat, 8 Aug 2026 22:30:32 -0400 Subject: [PATCH] IT'S TIME FOR MEOWS SMOOOLIOOOOOOOOOOOOOOOOOOOOO --- src/video_core/buffer_cache/buffer_cache.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 3f6b2b182e..a3949c5ac9 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -1160,11 +1160,14 @@ void BufferCache

::BindHostGraphicsStorageBuffers(size_t stage) { if constexpr (USE_UNIFIED_DIRECT_BINDING && !NEEDS_BIND_STORAGE_INDEX) { u64 window_index = 0; u64 window_offset = 0; - if (!is_written && runtime.SupportsUnifiedDescriptorBinding() && + if (runtime.SupportsUnifiedDescriptorBinding() && size <= runtime.UnifiedMaxStorageBufferRange() && ResolveUnifiedDirectBinding(binding.device_addr, size, runtime.UnifiedStorageBufferAlignment(), window_index, window_offset)) { + if (is_written) { + MarkWrittenBufferInPlace(binding.device_addr, size); + } runtime.BindStorageBufferFromWindow(window_index, static_cast(window_offset), size); return; @@ -1312,11 +1315,14 @@ void BufferCache

::BindHostComputeStorageBuffers() { if constexpr (USE_UNIFIED_DIRECT_BINDING && !NEEDS_BIND_STORAGE_INDEX) { u64 window_index = 0; u64 window_offset = 0; - if (!is_written && runtime.SupportsUnifiedDescriptorBinding() && + if (runtime.SupportsUnifiedDescriptorBinding() && size <= runtime.UnifiedMaxStorageBufferRange() && ResolveUnifiedDirectBinding(binding.device_addr, size, runtime.UnifiedStorageBufferAlignment(), window_index, window_offset)) { + if (is_written) { + MarkWrittenBufferInPlace(binding.device_addr, size); + } runtime.BindStorageBufferFromWindow(window_index, static_cast(window_offset), size); return;