Conditionally use safe ReadBlock for GPU-modified uploads

This commit is contained in:
MaranBr 2026-05-23 14:30:19 -04:00 committed by crueter
parent 0d736d49d6
commit fbbbca3c10

View file

@ -1687,8 +1687,12 @@ void BufferCache<P>::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;
device_memory.ReadBlockUnsafe(device_addr, src_pointer, copy.size);
const bool needs_safe = memory_tracker.IsRegionGpuModified(device_addr, copy.size);
if (needs_safe) {
device_memory.ReadBlock(device_addr, src_pointer, copy.size);
} else {
device_memory.ReadBlockUnsafe(device_addr, src_pointer, copy.size);
}
// Apply the staging offset
copy.src_offset += upload_staging.offset;
}