From 99c401f2c22b6f0fed59d374a8f5896d2a967d7c Mon Sep 17 00:00:00 2001 From: crueter Date: Mon, 11 Aug 2025 23:35:45 -0400 Subject: [PATCH] [buffer_cache] swap begin and end expansion, don't clear runtime buffer avoids filling the new buffer with zeroes (saves bandwidth) also reduces relocation in case the old buffer ever gets too small Co-authored-by: wildcard Signed-off-by: crueter --- src/video_core/buffer_cache/buffer_cache.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 0cd6861b6d..8c963c7902 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -265,7 +265,7 @@ bool BufferCache

::DMAClear(GPUVAddr dst_address, u64 amount, u32 value) { const BufferId buffer = FindBuffer(*cpu_dst_address, static_cast(size)); Buffer& dest_buffer = slot_buffers[buffer]; const u32 offset = dest_buffer.Offset(*cpu_dst_address); - runtime.ClearBuffer(dest_buffer, offset, size, value); + // runtime.ClearBuffer(dest_buffer, offset, size, value); dest_buffer.MarkUsage(offset, size); return true; } @@ -1349,10 +1349,10 @@ typename BufferCache

::OverlapResult BufferCache

::ResolveOverlaps(DAddr dev // as a stream buffer. Increase the size to skip constantly recreating buffers. has_stream_leap = true; if (expands_right) { - expand_begin(CACHING_PAGESIZE * 128); + expand_end(CACHING_PAGESIZE * 128); } if (expands_left) { - expand_end(CACHING_PAGESIZE * 128); + expand_begin(CACHING_PAGESIZE * 128); } } }