diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index 255617ff82..adf5b9eae7 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp @@ -37,12 +37,6 @@ static void RunThread(VideoCore::RendererBase& renderer, Tegra::DmaPusher& dma_p } } - if (is_dma_pending) { - // Process pending DMA pushbuffer commands - std::lock_guard lock{state.running_mutex}; - dma_pusher.DispatchCalls(); - } - { // Cache management std::lock_guard lock{state.cache_mutex}; @@ -59,6 +53,12 @@ static void RunThread(VideoCore::RendererBase& renderer, Tegra::DmaPusher& dma_p state.invalidate_regions.clear(); } + if (is_dma_pending) { + // Process pending DMA pushbuffer commands + std::lock_guard lock{state.running_mutex}; + dma_pusher.DispatchCalls(); + } + if (is_swapbuffers_pending) { // Process pending SwapBuffers renderer.SwapBuffers(state.pending_swapbuffers_config);