diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 60e0e8449b..5d1ec7cad2 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -1687,8 +1687,10 @@ void BufferCache
::MappedUploadMemory([[maybe_unused]] Buffer& buffer, for (BufferCopy& copy : copies) { u8* const src_pointer = staging_pointer.data() + copy.src_offset; const DAddr device_addr = buffer.CpuAddr() + copy.dst_offset; + if (IsRegionGpuModified(device_addr, copy.size)) { + DownloadBufferMemory(buffer, device_addr, copy.size); + } device_memory.ReadBlockUnsafe(device_addr, src_pointer, copy.size); - // Apply the staging offset copy.src_offset += upload_staging.offset; }