From 23142d9be2a3c85a25fe45509e3dc4be6dd59e37 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 22 Oct 2015 13:27:18 +0200 Subject: [PATCH] Do any ResetCommandBuffer inside GetNextCmd() --- renderdoc/driver/vulkan/vk_core.cpp | 11 ++++----- renderdoc/driver/vulkan/vk_debug.cpp | 4 ---- renderdoc/driver/vulkan/vk_initstate.cpp | 4 ---- renderdoc/driver/vulkan/vk_replay.cpp | 23 ++++--------------- .../driver/vulkan/wrappers/vk_wsi_funcs.cpp | 2 -- 5 files changed, 8 insertions(+), 36 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index b587db428..5890bbf9c 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -428,6 +428,8 @@ VkCmdBuffer WrappedVulkan::GetNextCmd() { ret = rd.freecmds.back(); rd.freecmds.pop_back(); + + ObjDisp(ret)->ResetCommandBuffer(Unwrap(ret), 0); } else { @@ -639,10 +641,7 @@ bool WrappedVulkan::Serialise_BeginCaptureFrame(bool applyInitialState) VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - VkResult vkr = ObjDisp(cmd)->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); - ObjDisp(cmd)->BeginCommandBuffer(Unwrap(cmd), &beginInfo); - RDCASSERT(vkr == VK_SUCCESS); + VkResult vkr = ObjDisp(cmd)->BeginCommandBuffer(Unwrap(cmd), &beginInfo); VkPipelineStageFlags src_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; VkPipelineStageFlags dest_stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; @@ -1367,9 +1366,7 @@ void WrappedVulkan::ReplayLog(uint32_t frameID, uint32_t startEventID, uint32_t VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - VkResult vkr = ObjDisp(cmd)->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); - vkr = ObjDisp(cmd)->BeginCommandBuffer(Unwrap(cmd), &beginInfo); + VkResult vkr = ObjDisp(cmd)->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); ImageLayouts &st = m_ImageLayouts[GetResourceManager()->GetLiveID(m_FakeBBImgId)]; diff --git a/renderdoc/driver/vulkan/vk_debug.cpp b/renderdoc/driver/vulkan/vk_debug.cpp index 3e3d28476..738ae1a08 100644 --- a/renderdoc/driver/vulkan/vk_debug.cpp +++ b/renderdoc/driver/vulkan/vk_debug.cpp @@ -627,8 +627,6 @@ VulkanDebugManager::VulkanDebugManager(WrappedVulkan *driver, VkDevice dev) VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - vkr = vt->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); @@ -1157,8 +1155,6 @@ void VulkanDebugManager::RenderTextInternal(const TextPrintState &textstate, flo m_TextStringUBO.Unmap(vt, m_Device); - vkr = vt->ResetCommandBuffer(Unwrap(textstate.cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); vkr = vt->BeginCommandBuffer(Unwrap(textstate.cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); diff --git a/renderdoc/driver/vulkan/vk_initstate.cpp b/renderdoc/driver/vulkan/vk_initstate.cpp index 439d83edc..cf5079c8a 100644 --- a/renderdoc/driver/vulkan/vk_initstate.cpp +++ b/renderdoc/driver/vulkan/vk_initstate.cpp @@ -104,8 +104,6 @@ bool WrappedVulkan::Prepare_InitialState(WrappedVkRes *res) VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - vkr = ObjDisp(d)->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); vkr = ObjDisp(d)->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); @@ -473,8 +471,6 @@ void WrappedVulkan::Apply_InitialState(WrappedVkRes *live, VulkanResourceManager VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - vkr = ObjDisp(cmd)->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); vkr = ObjDisp(cmd)->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index b41513fa6..0c8f68dbc 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -586,8 +586,6 @@ void VulkanReplay::PickPixel(ResourceId texture, uint32_t x, uint32_t y, uint32_ VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - vkr = vt->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); @@ -804,7 +802,6 @@ bool VulkanReplay::RenderTextureInternal(TextureDisplay cfg, VkRenderPassBeginIn VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - vt->ResetCommandBuffer(Unwrap(cmd), 0); vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); void *barrier = (void *)&srcimTrans; @@ -849,9 +846,7 @@ void VulkanReplay::RenderCheckerboard(Vec3f light, Vec3f dark) VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - VkResult vkr = vt->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); - vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); + VkResult vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); // VKTODOHIGH once we stop doing QueueWaitIdle after each flip, this @@ -903,9 +898,7 @@ void VulkanReplay::RenderHighlightBox(float w, float h, float scale) VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - VkResult vkr = vt->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); - vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); + VkResult vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); const float xpixdim = 2.0f/w; @@ -1037,8 +1030,6 @@ void VulkanReplay::BindOutputWindow(uint64_t id, bool depth) VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - vkr = vt->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); @@ -1072,9 +1063,7 @@ void VulkanReplay::ClearOutputWindowColour(uint64_t id, float col[4]) VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - VkResult vkr = vt->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); - vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); + VkResult vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); vt->CmdClearColorImage(Unwrap(cmd), Unwrap(outw.bb), VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, (VkClearColorValue *)col, 1, &outw.bbtrans.subresourceRange); @@ -1103,9 +1092,7 @@ void VulkanReplay::FlipOutputWindow(uint64_t id) VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - VkResult vkr = vt->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); - vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); + VkResult vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); void *barrier[] = { @@ -1214,8 +1201,6 @@ vector VulkanReplay::GetBufferData(ResourceId buff, uint32_t offset, uint3 { VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; - vkr = vt->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS); diff --git a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp index a623ec489..ccbb6f367 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp @@ -723,8 +723,6 @@ VkResult WrappedVulkan::vkQueuePresentKHR( VkCmdBufferBeginInfo beginInfo = { VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, NULL, VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT | VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT }; // do image copy - vkr = vt->ResetCommandBuffer(Unwrap(cmd), 0); - RDCASSERT(vkr == VK_SUCCESS); vkr = vt->BeginCommandBuffer(Unwrap(cmd), &beginInfo); RDCASSERT(vkr == VK_SUCCESS);