diff options
| author | 2024-02-27 09:42:15 -0500 | |
|---|---|---|
| committer | 2024-02-27 15:42:15 +0100 | |
| commit | 6948ac8c1622ebb3f9da065d3678e571b7ff726e (patch) | |
| tree | 1cfed7dc79952d21efc54a265988fd0a4e225230 /src/video_core/buffer_cache | |
| parent | vk_rasterizer: flip scissor y on lower left origin mode (#13122) (diff) | |
| download | yuzu-6948ac8c1622ebb3f9da065d3678e571b7ff726e.tar.gz yuzu-6948ac8c1622ebb3f9da065d3678e571b7ff726e.tar.xz yuzu-6948ac8c1622ebb3f9da065d3678e571b7ff726e.zip | |
general: workarounds for SMMU syncing issues (#12749)
Diffstat (limited to 'src/video_core/buffer_cache')
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index ed7a5b27e..af237703d 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h | |||
| @@ -1488,7 +1488,10 @@ void BufferCache<P>::ImmediateUploadMemory([[maybe_unused]] Buffer& buffer, | |||
| 1488 | std::span<const u8> upload_span; | 1488 | std::span<const u8> upload_span; |
| 1489 | const DAddr device_addr = buffer.CpuAddr() + copy.dst_offset; | 1489 | const DAddr device_addr = buffer.CpuAddr() + copy.dst_offset; |
| 1490 | if (IsRangeGranular(device_addr, copy.size)) { | 1490 | if (IsRangeGranular(device_addr, copy.size)) { |
| 1491 | upload_span = std::span(device_memory.GetPointer<u8>(device_addr), copy.size); | 1491 | auto* const ptr = device_memory.GetPointer<u8>(device_addr); |
| 1492 | if (ptr != nullptr) { | ||
| 1493 | upload_span = std::span(ptr, copy.size); | ||
| 1494 | } | ||
| 1492 | } else { | 1495 | } else { |
| 1493 | if (immediate_buffer.empty()) { | 1496 | if (immediate_buffer.empty()) { |
| 1494 | immediate_buffer = ImmediateBuffer(largest_copy); | 1497 | immediate_buffer = ImmediateBuffer(largest_copy); |