Another approach

This commit is contained in:
MaranBr 2026-05-23 00:13:07 +02:00
parent 12a4a81be0
commit 7617cc324a

View file

@ -1687,12 +1687,10 @@ void BufferCache<P>::MappedUploadMemory([[maybe_unused]] Buffer& buffer,
for (BufferCopy& copy : copies) { for (BufferCopy& copy : copies) {
u8* const src_pointer = staging_pointer.data() + copy.src_offset; u8* const src_pointer = staging_pointer.data() + copy.src_offset;
const DAddr device_addr = buffer.CpuAddr() + copy.dst_offset; const DAddr device_addr = buffer.CpuAddr() + copy.dst_offset;
const bool needs_safe = memory_tracker.IsRegionGpuModified(device_addr, copy.size); if (IsRegionGpuModified(device_addr, copy.size)) {
if (needs_safe) { DownloadBufferMemory(buffer, device_addr, copy.size);
device_memory.ReadBlock(device_addr, src_pointer, copy.size);
} else {
device_memory.ReadBlockUnsafe(device_addr, src_pointer, copy.size);
} }
device_memory.ReadBlockUnsafe(device_addr, src_pointer, copy.size);
// Apply the staging offset // Apply the staging offset
copy.src_offset += upload_staging.offset; copy.src_offset += upload_staging.offset;
} }