diff options
Diffstat (limited to 'src/video_core/buffer_cache')
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index d350c9b36..43bed63ac 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h | |||
| @@ -853,12 +853,14 @@ void BufferCache<P>::CommitAsyncFlushesHigh() { | |||
| 853 | } | 853 | } |
| 854 | if constexpr (USE_MEMORY_MAPS) { | 854 | if constexpr (USE_MEMORY_MAPS) { |
| 855 | auto download_staging = runtime.DownloadStagingBuffer(total_size_bytes); | 855 | auto download_staging = runtime.DownloadStagingBuffer(total_size_bytes); |
| 856 | runtime.PreCopyBarrier(); | ||
| 856 | for (auto& [copy, buffer_id] : downloads) { | 857 | for (auto& [copy, buffer_id] : downloads) { |
| 857 | // Have in mind the staging buffer offset for the copy | 858 | // Have in mind the staging buffer offset for the copy |
| 858 | copy.dst_offset += download_staging.offset; | 859 | copy.dst_offset += download_staging.offset; |
| 859 | const std::array copies{copy}; | 860 | const std::array copies{copy}; |
| 860 | runtime.CopyBuffer(download_staging.buffer, slot_buffers[buffer_id], copies); | 861 | runtime.CopyBuffer(download_staging.buffer, slot_buffers[buffer_id], copies, false); |
| 861 | } | 862 | } |
| 863 | runtime.PostCopyBarrier(); | ||
| 862 | runtime.Finish(); | 864 | runtime.Finish(); |
| 863 | for (const auto& [copy, buffer_id] : downloads) { | 865 | for (const auto& [copy, buffer_id] : downloads) { |
| 864 | const Buffer& buffer = slot_buffers[buffer_id]; | 866 | const Buffer& buffer = slot_buffers[buffer_id]; |