gpu_thread: Handle cache management before DMA commands.

This commit is contained in:
bunnei
2019-01-12 02:41:22 -05:00
parent 19ce7abf07
commit c7f9124824

View File

@@ -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<std::mutex> lock{state.running_mutex};
dma_pusher.DispatchCalls();
}
{
// Cache management
std::lock_guard<std::recursive_mutex> 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<std::mutex> lock{state.running_mutex};
dma_pusher.DispatchCalls();
}
if (is_swapbuffers_pending) {
// Process pending SwapBuffers
renderer.SwapBuffers(state.pending_swapbuffers_config);