diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-06-01 09:06:07 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-01 09:06:07 -0400 |
commit | d89b98d8e8428852b39a094f18461f1f049e01b6 (patch) | |
tree | 240cef1e84173900aba72feaecda0f76f23f1be5 /src | |
parent | 00b6bef65a1d4e2a78165ec27519d14637c97401 (diff) | |
parent | 7ce181edcf1af2efe8d3b4a162cffb4ba6ff5bc9 (diff) |
Merge pull request #10091 from Kelebek1/bc_bugggggg
Fix buffer overlap checking skipping a page for stream score right expand
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 6 |
1 files 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 427afd5fc..f1ad5f7cb 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -1278,7 +1278,7 @@ typename BufferCache<P>::OverlapResult BufferCache<P>::ResolveOverlaps(VAddr cpu const VAddr overlap_cpu_addr = overlap.CpuAddr(); const bool expands_left = overlap_cpu_addr < begin; if (expands_left) { - cpu_addr = begin = overlap_cpu_addr; + begin = overlap_cpu_addr; } const VAddr overlap_end = overlap_cpu_addr + overlap.SizeBytes(); const bool expands_right = overlap_end > end; @@ -1292,7 +1292,7 @@ typename BufferCache<P>::OverlapResult BufferCache<P>::ResolveOverlaps(VAddr cpu has_stream_leap = true; if (expands_right) { begin -= CACHING_PAGESIZE * 256; - cpu_addr = begin; + cpu_addr = begin - CACHING_PAGESIZE; } if (expands_left) { end += CACHING_PAGESIZE * 256; @@ -1315,7 +1315,7 @@ void BufferCache<P>::JoinOverlap(BufferId new_buffer_id, BufferId overlap_id, if (accumulate_stream_score) { new_buffer.IncreaseStreamScore(overlap.StreamScore() + 1); } - boost::container::small_vector<BufferCopy, 1> copies; + boost::container::small_vector<BufferCopy, 10> copies; const size_t dst_base_offset = overlap.CpuAddr() - new_buffer.CpuAddr(); copies.push_back(BufferCopy{ .src_offset = 0, |