From 8c3708f8d245f749f5c108027fe9e12665df5b3e Mon Sep 17 00:00:00 2001 From: Dzmitry Dubrova Date: Tue, 3 Jun 2025 21:59:50 +0300 Subject: [PATCH] Check if region is registered after value is written to a buffer --- src/video_core/buffer_cache/buffer_cache.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/video_core/buffer_cache/buffer_cache.cpp b/src/video_core/buffer_cache/buffer_cache.cpp index 4717a5ff8..944782f2a 100644 --- a/src/video_core/buffer_cache/buffer_cache.cpp +++ b/src/video_core/buffer_cache/buffer_cache.cpp @@ -293,8 +293,11 @@ void BufferCache::BindIndexBuffer(u32 index_offset) { void BufferCache::InlineData(VAddr address, const void* value, u32 num_bytes, bool is_gds) { ASSERT_MSG(address % 4 == 0, "GDS offset must be dword aligned"); - if (!is_gds && !IsRegionRegistered(address, num_bytes)) { + if (!is_gds) { memcpy(std::bit_cast(address), value, num_bytes); + if (!IsRegionRegistered(address, num_bytes)) { + return; + } return; } Buffer* buffer = [&] {