diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp index 29b8582abd..48c6149b32 100644 --- a/src/video_core/dma_pusher.cpp +++ b/src/video_core/dma_pusher.cpp @@ -34,7 +34,6 @@ void DmaPusher::DispatchCalls() { } gpu.FlushCommands(); gpu.SyncGuestHost(); - gpu.OnCommandListEnd(); } bool DmaPusher::Step() { diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 33431f2a0f..8b7bc83664 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -107,14 +107,6 @@ struct GPU::Impl { rasterizer->SyncGuestHost(); } - /// Signal the ending of command list. - void OnCommandListEnd() { - if (is_async) { - // This command only applies to asynchronous GPU mode - gpu_thread.OnCommandListEnd(); - } - } - /// Request a host GPU memory flush from the CPU. [[nodiscard]] u64 RequestFlush(VAddr addr, std::size_t size) { std::unique_lock lck{flush_request_mutex}; @@ -765,10 +757,6 @@ void GPU::SyncGuestHost() { impl->SyncGuestHost(); } -void GPU::OnCommandListEnd() { - impl->OnCommandListEnd(); -} - u64 GPU::RequestFlush(VAddr addr, std::size_t size) { return impl->RequestFlush(addr, size); } diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp index b0ce9f000f..37ca37d9f1 100644 --- a/src/video_core/gpu_thread.cpp +++ b/src/video_core/gpu_thread.cpp @@ -77,6 +77,9 @@ void ThreadManager::StartThread(VideoCore::RendererBase& renderer, void ThreadManager::SubmitList(Tegra::CommandList&& entries) { PushCommand(SubmitListCommand(std::move(entries))); + if (is_async) { + PushCommand(OnCommandListEndCommand()); + } } void ThreadManager::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) { @@ -107,10 +110,6 @@ void ThreadManager::FlushAndInvalidateRegion(VAddr addr, u64 size) { rasterizer->OnCPUWrite(addr, size); } -void ThreadManager::OnCommandListEnd() { - PushCommand(OnCommandListEndCommand()); -} - u64 ThreadManager::PushCommand(CommandData&& command_data, bool block) { if (!is_async) { // In synchronous GPU mode, block the caller until the command has executed diff --git a/src/video_core/gpu_thread.h b/src/video_core/gpu_thread.h index be0ac22140..00f532192b 100644 --- a/src/video_core/gpu_thread.h +++ b/src/video_core/gpu_thread.h @@ -129,8 +129,6 @@ public: /// Notify rasterizer that any caches of the specified region should be flushed and invalidated void FlushAndInvalidateRegion(VAddr addr, u64 size); - void OnCommandListEnd(); - private: /// Pushes a command to be executed by the GPU thread u64 PushCommand(CommandData&& command_data, bool block = false);