diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index a8bb584114..59d26dba6e 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -118,6 +118,7 @@ struct GPU::Impl { if (fast_path) { // Execute immediately and publish the result action(); + gpu_thread.TickGPU(); const u64 fence = ++last_sync_fence; // Mirror the normal path: advance current and wake any waiters current_sync_fence.store(fence, std::memory_order_release); @@ -293,6 +294,8 @@ struct GPU::Impl { auto raster_area = rasterizer->GetFlushArea(addr, size); rasterizer->FlushRegion(raster_area.start_address, raster_area.end_address - raster_area.start_address); raster_area.preemtive = true; + // Give GPU thread a chance to run that flush + gpu_thread.TickGPU(); return raster_area; } auto raster_area = rasterizer->GetFlushArea(addr, size);