From 0215c721abe11b735064d1747b34429b954cec2e Mon Sep 17 00:00:00 2001 From: MaranBr Date: Sat, 25 Oct 2025 16:04:27 -0400 Subject: [PATCH] Add a new check --- src/video_core/buffer_cache/buffer_cache.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index f332ea86ae..e7e7c34b32 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -1503,13 +1503,12 @@ void BufferCache

::MappedUploadMemory([[maybe_unused]] Buffer& buffer, [[maybe_unused]] std::span copies) { if constexpr (USE_MEMORY_MAPS) { auto upload_staging = runtime.UploadStagingBuffer(total_size_bytes); - const std::span staging_pointer = upload_staging.mapped_span; - for (BufferCopy& copy : copies) { + auto staging_pointer = upload_staging.mapped_span; + for (auto& copy : copies) { + assert(copy.src_offset + copy.size <= staging_pointer.size()); 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); - - // Apply the staging offset copy.src_offset += upload_staging.offset; } const bool can_reorder = runtime.CanReorderUpload(buffer, copies);