diff options
| author | 2022-11-24 14:02:58 +0100 | |
|---|---|---|
| committer | 2022-11-24 20:57:16 +0100 | |
| commit | 3b582d5fb2ca19d1a45f9675244021a3d302c9ff (patch) | |
| tree | e0e4808844a61b8b67f77ecbf0692c88a8c2673a /src/video_core/buffer_cache | |
| parent | Merge pull request #9299 from lioncash/cast (diff) | |
| download | yuzu-3b582d5fb2ca19d1a45f9675244021a3d302c9ff.tar.gz yuzu-3b582d5fb2ca19d1a45f9675244021a3d302c9ff.tar.xz yuzu-3b582d5fb2ca19d1a45f9675244021a3d302c9ff.zip | |
GPU: Fix buffer cache issue, engine upload not inlining memory in multiline and pessismistic invalidation.
Diffstat (limited to 'src/video_core/buffer_cache')
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 599551013..5d3a8293b 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h | |||
| @@ -1742,12 +1742,12 @@ bool BufferCache<P>::InlineMemory(VAddr dest_address, size_t copy_size, | |||
| 1742 | SynchronizeBuffer(buffer, dest_address, static_cast<u32>(copy_size)); | 1742 | SynchronizeBuffer(buffer, dest_address, static_cast<u32>(copy_size)); |
| 1743 | 1743 | ||
| 1744 | if constexpr (USE_MEMORY_MAPS) { | 1744 | if constexpr (USE_MEMORY_MAPS) { |
| 1745 | auto upload_staging = runtime.UploadStagingBuffer(copy_size); | ||
| 1745 | std::array copies{BufferCopy{ | 1746 | std::array copies{BufferCopy{ |
| 1746 | .src_offset = 0, | 1747 | .src_offset = upload_staging.offset, |
| 1747 | .dst_offset = buffer.Offset(dest_address), | 1748 | .dst_offset = buffer.Offset(dest_address), |
| 1748 | .size = copy_size, | 1749 | .size = copy_size, |
| 1749 | }}; | 1750 | }}; |
| 1750 | auto upload_staging = runtime.UploadStagingBuffer(copy_size); | ||
| 1751 | u8* const src_pointer = upload_staging.mapped_span.data(); | 1751 | u8* const src_pointer = upload_staging.mapped_span.data(); |
| 1752 | std::memcpy(src_pointer, inlined_buffer.data(), copy_size); | 1752 | std::memcpy(src_pointer, inlined_buffer.data(), copy_size); |
| 1753 | runtime.CopyBuffer(buffer, upload_staging.buffer, copies); | 1753 | runtime.CopyBuffer(buffer, upload_staging.buffer, copies); |