From 75fc8140c1219a53cb73d828490e3e2c349ba10f Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 10 Jul 2020 17:54:17 +0100 Subject: [PATCH] Fix marker regions before command buffers are started --- renderdoc/driver/vulkan/vk_outputwindow.cpp | 8 ++++---- renderdoc/driver/vulkan/vk_rendertexture.cpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_outputwindow.cpp b/renderdoc/driver/vulkan/vk_outputwindow.cpp index 38e8d5eb8..66e09ccb5 100644 --- a/renderdoc/driver/vulkan/vk_outputwindow.cpp +++ b/renderdoc/driver/vulkan/vk_outputwindow.cpp @@ -994,14 +994,14 @@ void VulkanReplay::ClearOutputWindowColor(uint64_t id, FloatVector col) VkCommandBuffer cmd = m_pDriver->GetNextCmd(); const VkDevDispatchTable *vt = ObjDisp(dev); - VkMarkerRegion::Begin("ClearOutputWindowColor", cmd); - VkCommandBufferBeginInfo beginInfo = {VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, NULL, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT}; VkResult vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERTEQUAL(vkr, VK_SUCCESS); + VkMarkerRegion::Begin("ClearOutputWindowColor", cmd); + outw.bbBarrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; outw.bbBarrier.oldLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; outw.bbBarrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; @@ -1101,14 +1101,14 @@ void VulkanReplay::FlipOutputWindow(uint64_t id) VkCommandBuffer cmd = m_pDriver->GetNextCmd(); const VkDevDispatchTable *vt = ObjDisp(dev); - VkMarkerRegion::Begin("FlipOutputWindow", cmd); - VkCommandBufferBeginInfo beginInfo = {VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, NULL, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT}; VkResult vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERTEQUAL(vkr, VK_SUCCESS); + VkMarkerRegion::Begin("FlipOutputWindow", cmd); + // ensure rendering has completed before copying outw.bbBarrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; outw.bbBarrier.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; diff --git a/renderdoc/driver/vulkan/vk_rendertexture.cpp b/renderdoc/driver/vulkan/vk_rendertexture.cpp index 632b1f9e2..f93d3854f 100644 --- a/renderdoc/driver/vulkan/vk_rendertexture.cpp +++ b/renderdoc/driver/vulkan/vk_rendertexture.cpp @@ -484,13 +484,13 @@ bool VulkanReplay::RenderTextureInternal(TextureDisplay cfg, const ImageState &i VkCommandBuffer cmd = m_pDriver->GetNextCmd(); - VkMarkerRegion::Begin("RenderTexture", cmd); - VkCommandBufferBeginInfo beginInfo = {VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, NULL, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT}; vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); + VkMarkerRegion::Begin("RenderTexture", cmd); + ImageBarrierSequence setupBarriers, cleanupBarriers; imageState.TempTransition(m_pDriver->GetQueueFamilyIndex(), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_ACCESS_SHADER_READ_BIT,