From c7f91248241cb9a69760104fd8eab48ac382e4b7 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sat, 12 Jan 2019 02:41:22 -0500 Subject: [PATCH] gpu_thread: Handle cache management before DMA commands. --- src/video_core/gpu_thread.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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);