From 427dd45151eddc920d681c4711a3cdbd7e363f82 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Sun, 17 Mar 2019 15:59:22 +1000 Subject: Vulkan: Simplify command buffer fence tracking --- Source/Core/VideoBackends/Vulkan/Renderer.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'Source/Core/VideoBackends/Vulkan/Renderer.cpp') diff --git a/Source/Core/VideoBackends/Vulkan/Renderer.cpp b/Source/Core/VideoBackends/Vulkan/Renderer.cpp index 8b560be15d..a4db679ecb 100644 --- a/Source/Core/VideoBackends/Vulkan/Renderer.cpp +++ b/Source/Core/VideoBackends/Vulkan/Renderer.cpp @@ -315,7 +315,7 @@ void Renderer::PresentBackbuffer() // Because this final command buffer is rendering to the swap chain, we need to wait for // the available semaphore to be signaled before executing the buffer. This final submission // can happen off-thread in the background while we're preparing the next frame. - g_command_buffer_mgr->SubmitCommandBuffer(true, m_swap_chain->GetSwapChain(), + g_command_buffer_mgr->SubmitCommandBuffer(true, false, m_swap_chain->GetSwapChain(), m_swap_chain->GetCurrentImageIndex()); // New cmdbuffer, so invalidate state. @@ -327,11 +327,7 @@ void Renderer::ExecuteCommandBuffer(bool submit_off_thread, bool wait_for_comple StateTracker::GetInstance()->EndRenderPass(); PerfQuery::GetInstance()->FlushQueries(); - // If we're waiting for completion, don't bother waking the worker thread. - const VkFence pending_fence = g_command_buffer_mgr->GetCurrentCommandBufferFence(); - g_command_buffer_mgr->SubmitCommandBuffer(submit_off_thread && wait_for_completion); - if (wait_for_completion) - g_command_buffer_mgr->WaitForFence(pending_fence); + g_command_buffer_mgr->SubmitCommandBuffer(submit_off_thread, wait_for_completion); StateTracker::GetInstance()->InvalidateCachedState(); } @@ -550,10 +546,6 @@ void Renderer::UnbindTexture(const AbstractTexture* texture) void Renderer::ResetSamplerStates() { - // Ensure none of the sampler objects are in use. - // This assumes that none of the samplers are in use on the command list currently being recorded. - g_command_buffer_mgr->WaitForGPUIdle(); - // Invalidate all sampler states, next draw will re-initialize them. for (u32 i = 0; i < m_sampler_states.size(); i++) { -- cgit v1.2.3 From 604ab67c7f28dc03a82ee7aa1bcc487d39ea6f8c Mon Sep 17 00:00:00 2001 From: Stenzek Date: Mon, 18 Mar 2019 00:09:26 +1000 Subject: Vulkan: Simplify perf queries using vkGetQueryPoolResults --- Source/Core/VideoBackends/Vulkan/Renderer.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'Source/Core/VideoBackends/Vulkan/Renderer.cpp') diff --git a/Source/Core/VideoBackends/Vulkan/Renderer.cpp b/Source/Core/VideoBackends/Vulkan/Renderer.cpp index a4db679ecb..fc07c4ce41 100644 --- a/Source/Core/VideoBackends/Vulkan/Renderer.cpp +++ b/Source/Core/VideoBackends/Vulkan/Renderer.cpp @@ -304,7 +304,6 @@ void Renderer::PresentBackbuffer() { // End drawing to backbuffer StateTracker::GetInstance()->EndRenderPass(); - PerfQuery::GetInstance()->FlushQueries(); // Transition the backbuffer to PRESENT_SRC to ensure all commands drawing // to it have finished before present. @@ -325,7 +324,6 @@ void Renderer::PresentBackbuffer() void Renderer::ExecuteCommandBuffer(bool submit_off_thread, bool wait_for_completion) { StateTracker::GetInstance()->EndRenderPass(); - PerfQuery::GetInstance()->FlushQueries(); g_command_buffer_mgr->SubmitCommandBuffer(submit_off_thread, wait_for_completion); -- cgit v1.2.3