Browse Source

JUST a quick replacement

CamilleLaVey 2 days ago
parent
commit
f3e630a92f
  1. 8
      src/video_core/buffer_cache/buffer_cache.h
  2. 1
      src/video_core/buffer_cache/buffer_cache_base.h

8
src/video_core/buffer_cache/buffer_cache.h

@ -1892,9 +1892,13 @@ bool BufferCache<P>::IntersectsInPlaceWrites(DAddr device_addr, u64 size) {
template <class P>
void BufferCache<P>::WaitForInPlaceWrites() {
if constexpr (!IS_OPENGL) {
if (in_place_write_tick > runtime.KnownGpuTick()) {
runtime.Wait(in_place_write_tick);
if (in_place_write_tick <= in_place_host_available_tick) {
return;
}
runtime.UnifiedMemoryWriteBarrier();
const u64 barrier_tick = runtime.CurrentTick();
runtime.Wait(barrier_tick);
in_place_host_available_tick = barrier_tick;
}
}

1
src/video_core/buffer_cache/buffer_cache_base.h

@ -554,6 +554,7 @@ private:
Common::RangeSet<DAddr> gpu_modified_ranges;
Common::RangeSet<DAddr> in_place_gpu_written_ranges;
u64 in_place_write_tick = 0;
u64 in_place_host_available_tick = 0;
std::deque<Common::RangeSet<DAddr>> committed_gpu_modified_ranges;
// Async Buffers

Loading…
Cancel
Save