diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 7373cb62d..5a0b6f0c0 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h | |||
| @@ -553,13 +553,9 @@ bool BufferCache<P>::DMAClear(GPUVAddr dst_address, u64 amount, u32 value) { | |||
| 553 | ClearDownload(subtract_interval); | 553 | ClearDownload(subtract_interval); |
| 554 | common_ranges.subtract(subtract_interval); | 554 | common_ranges.subtract(subtract_interval); |
| 555 | 555 | ||
| 556 | BufferId buffer; | 556 | const BufferId buffer = FindBuffer(*cpu_dst_address, static_cast<u32>(size)); |
| 557 | do { | ||
| 558 | has_deleted_buffers = false; | ||
| 559 | buffer = FindBuffer(*cpu_dst_address, static_cast<u32>(size)); | ||
| 560 | } while (has_deleted_buffers); | ||
| 561 | auto& dest_buffer = slot_buffers[buffer]; | 557 | auto& dest_buffer = slot_buffers[buffer]; |
| 562 | const u32 offset = static_cast<u32>(*cpu_dst_address - dest_buffer.CpuAddr()); | 558 | const u32 offset = dest_buffer.Offset(*cpu_dst_address); |
| 563 | runtime.ClearBuffer(dest_buffer, offset, size, value); | 559 | runtime.ClearBuffer(dest_buffer, offset, size, value); |
| 564 | return true; | 560 | return true; |
| 565 | } | 561 | } |