diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index a32f0656c..68eba751d 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -1855,6 +1855,25 @@ VkBool32 WrappedVulkan::DebugCallback( return false; } +bool WrappedVulkan::ShouldRerecordCmd(ResourceId cmdid) +{ + return m_PartialReplayData.outsideCmdBuffer != VK_NULL_HANDLE || + cmdid == m_PartialReplayData.partialParent; +} + +bool WrappedVulkan::InRerecordRange() +{ + return m_PartialReplayData.outsideCmdBuffer != VK_NULL_HANDLE || + m_BakedCmdBufferInfo[m_PartialReplayData.partialParent].curEventID <= m_LastEventID - m_PartialReplayData.baseEvent; +} + +VkCommandBuffer WrappedVulkan::RerecordCmdBuf() +{ + if(m_PartialReplayData.outsideCmdBuffer != VK_NULL_HANDLE) + return m_PartialReplayData.outsideCmdBuffer; + return m_PartialReplayData.resultPartialCmdBuffer; +} + void WrappedVulkan::AddDrawcall(FetchDrawcall d, bool hasEvents) { m_AddedDrawcall = true; diff --git a/renderdoc/driver/vulkan/vk_core.h b/renderdoc/driver/vulkan/vk_core.h index 7d6ffa562..b25232326 100644 --- a/renderdoc/driver/vulkan/vk_core.h +++ b/renderdoc/driver/vulkan/vk_core.h @@ -344,23 +344,9 @@ private: // All IDs are original IDs, not live. VulkanRenderState m_RenderState; - bool IsPartialCmd(ResourceId cmdid) - { - return m_PartialReplayData.outsideCmdBuffer != VK_NULL_HANDLE || - cmdid == m_PartialReplayData.partialParent; - } - bool InPartialRange() - { - return m_PartialReplayData.outsideCmdBuffer != VK_NULL_HANDLE || - m_BakedCmdBufferInfo[m_PartialReplayData.partialParent].curEventID <= m_LastEventID - m_PartialReplayData.baseEvent; - } - VkCommandBuffer PartialCmdBuf() - { - if(m_PartialReplayData.outsideCmdBuffer != VK_NULL_HANDLE) - return m_PartialReplayData.outsideCmdBuffer; - return m_PartialReplayData.resultPartialCmdBuffer; - } - + bool ShouldRerecordCmd(ResourceId cmdid); + bool InRerecordRange(); + VkCommandBuffer RerecordCmdBuf(); // this info is stored in the record on capture, but we // need it on replay too diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index b7996f559..a398a22ed 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -461,9 +461,9 @@ bool WrappedVulkan::Serialise_vkEndCommandBuffer(Serialiser* localSerialiser, Vk if(m_State == EXECUTING) { - if(IsPartialCmd(cmdId)) + if(ShouldRerecordCmd(cmdId)) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); RDCDEBUG("Ending partial command buffer for %llu baked to %llu", cmdId, bakeId); if(m_PartialReplayData.renderPassActive) @@ -592,9 +592,9 @@ bool WrappedVulkan::Serialise_vkCmdBeginRenderPass( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); m_PartialReplayData.renderPassActive = true; ObjDisp(commandBuffer)->CmdBeginRenderPass(Unwrap(commandBuffer), &beginInfo, cont); @@ -684,9 +684,9 @@ bool WrappedVulkan::Serialise_vkCmdNextSubpass( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); m_RenderState.subpass++; @@ -766,9 +766,9 @@ bool WrappedVulkan::Serialise_vkCmdExecuteCommands( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdExecuteCommands(Unwrap(commandBuffer), count, &cmds[0]); } @@ -835,9 +835,9 @@ bool WrappedVulkan::Serialise_vkCmdEndRenderPass( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); m_PartialReplayData.renderPassActive = false; ObjDisp(commandBuffer)->CmdEndRenderPass(Unwrap(commandBuffer)); @@ -897,10 +897,10 @@ bool WrappedVulkan::Serialise_vkCmdBindPipeline( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { pipeline = GetResourceManager()->GetLiveHandle(pipeid); - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdBindPipeline(Unwrap(commandBuffer), bind, Unwrap(pipeline)); @@ -1042,9 +1042,9 @@ bool WrappedVulkan::Serialise_vkCmdBindDescriptorSets( { layout = GetResourceManager()->GetLiveHandle(layoutid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdBindDescriptorSets(Unwrap(commandBuffer), bind, Unwrap(layout), first, numSets, sets, offsCount, offs); @@ -1204,9 +1204,9 @@ bool WrappedVulkan::Serialise_vkCmdBindVertexBuffers( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdBindVertexBuffers(Unwrap(commandBuffer), start, count, &bufs[0], &offs[0]); if(m_RenderState.vbuffers.size() < start + count) @@ -1281,9 +1281,9 @@ bool WrappedVulkan::Serialise_vkCmdBindIndexBuffer( { buffer = GetResourceManager()->GetLiveHandle(bufid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdBindIndexBuffer(Unwrap(commandBuffer), Unwrap(buffer), offs, idxType); m_RenderState.ibuffer.buf = GetResID(buffer); @@ -1351,9 +1351,9 @@ bool WrappedVulkan::Serialise_vkCmdUpdateBuffer( { destBuffer = GetResourceManager()->GetLiveHandle(bufid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdUpdateBuffer(Unwrap(commandBuffer), Unwrap(destBuffer), offs, sz, (uint32_t *)bufdata); } } @@ -1424,9 +1424,9 @@ bool WrappedVulkan::Serialise_vkCmdFillBuffer( { destBuffer = GetResourceManager()->GetLiveHandle(bufid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdFillBuffer(Unwrap(commandBuffer), Unwrap(destBuffer), offs, sz, d); } } @@ -1494,9 +1494,9 @@ bool WrappedVulkan::Serialise_vkCmdPushConstants( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); layout = GetResourceManager()->GetLiveHandle(layid); ObjDisp(commandBuffer)->CmdPushConstants(Unwrap(commandBuffer), Unwrap(layout), flags, s, len, vals); @@ -1601,12 +1601,12 @@ bool WrappedVulkan::Serialise_vkCmdPipelineBarrier( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdPipelineBarrier(Unwrap(commandBuffer), src, dest, region, (uint32_t)mems.size(), (const void **)&mems[0]); - ResourceId cmd = GetResID(PartialCmdBuf()); + ResourceId cmd = GetResID(RerecordCmdBuf()); GetResourceManager()->RecordBarriers(m_BakedCmdBufferInfo[cmd].imgbarriers, m_ImageLayouts, (uint32_t)imBarriers.size(), &imBarriers[0]); } } @@ -1726,9 +1726,9 @@ bool WrappedVulkan::Serialise_vkCmdWriteTimestamp( { queryPool = GetResourceManager()->GetLiveHandle(poolid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdWriteTimestamp(Unwrap(commandBuffer), stage, Unwrap(queryPool), e); } } @@ -1794,9 +1794,9 @@ bool WrappedVulkan::Serialise_vkCmdCopyQueryPoolResults( queryPool = GetResourceManager()->GetLiveHandle(qid); destBuffer = GetResourceManager()->GetLiveHandle(bufid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdCopyQueryPoolResults(Unwrap(commandBuffer), Unwrap(queryPool), start, count, Unwrap(destBuffer), offs, stride, f); } } @@ -1867,9 +1867,9 @@ bool WrappedVulkan::Serialise_vkCmdBeginQuery( { queryPool = GetResourceManager()->GetLiveHandle(qid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdBeginQuery(Unwrap(commandBuffer), Unwrap(queryPool), s, f); } } @@ -1923,9 +1923,9 @@ bool WrappedVulkan::Serialise_vkCmdEndQuery( { queryPool = GetResourceManager()->GetLiveHandle(qid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdEndQuery(Unwrap(commandBuffer), Unwrap(queryPool), s); } } @@ -1980,9 +1980,9 @@ bool WrappedVulkan::Serialise_vkCmdResetQueryPool( { queryPool = GetResourceManager()->GetLiveHandle(qid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdResetQueryPool(Unwrap(commandBuffer), Unwrap(queryPool), start, count); } } diff --git a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp index a35a5bca8..9cc47562a 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp @@ -43,9 +43,9 @@ bool WrappedVulkan::Serialise_vkCmdDraw( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); if(m_DrawcallCallback) m_DrawcallCallback->PreDraw(m_RootEventID, commandBuffer); @@ -144,9 +144,9 @@ bool WrappedVulkan::Serialise_vkCmdBlitImage( srcImage = GetResourceManager()->GetLiveHandle(srcid); destImage = GetResourceManager()->GetLiveHandle(dstid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdBlitImage(Unwrap(commandBuffer), Unwrap(srcImage), srclayout, Unwrap(destImage), dstlayout, count, regions, f); } } @@ -244,9 +244,9 @@ bool WrappedVulkan::Serialise_vkCmdResolveImage( srcImage = GetResourceManager()->GetLiveHandle(srcid); destImage = GetResourceManager()->GetLiveHandle(dstid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdResolveImage(Unwrap(commandBuffer), Unwrap(srcImage), srclayout, Unwrap(destImage), dstlayout, count, regions); } } @@ -343,9 +343,9 @@ bool WrappedVulkan::Serialise_vkCmdCopyImage( srcImage = GetResourceManager()->GetLiveHandle(srcid); destImage = GetResourceManager()->GetLiveHandle(dstid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdCopyImage(Unwrap(commandBuffer), Unwrap(srcImage), srclayout, Unwrap(destImage), dstlayout, count, regions); } } @@ -440,9 +440,9 @@ bool WrappedVulkan::Serialise_vkCmdCopyBufferToImage( srcBuffer = GetResourceManager()->GetLiveHandle(bufid); destImage = GetResourceManager()->GetLiveHandle(imgid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdCopyBufferToImage(Unwrap(commandBuffer), Unwrap(srcBuffer), Unwrap(destImage), layout, count, regions); } } @@ -537,9 +537,9 @@ bool WrappedVulkan::Serialise_vkCmdCopyImageToBuffer( srcImage = GetResourceManager()->GetLiveHandle(imgid); destBuffer = GetResourceManager()->GetLiveHandle(bufid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdCopyImageToBuffer(Unwrap(commandBuffer), Unwrap(srcImage), layout, Unwrap(destBuffer), count, regions); } } @@ -635,9 +635,9 @@ bool WrappedVulkan::Serialise_vkCmdCopyBuffer( srcBuffer = GetResourceManager()->GetLiveHandle(srcid); destBuffer = GetResourceManager()->GetLiveHandle(dstid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdCopyBuffer(Unwrap(commandBuffer), Unwrap(srcBuffer), Unwrap(destBuffer), count, regions); } } @@ -733,9 +733,9 @@ bool WrappedVulkan::Serialise_vkCmdClearColorImage( { image = GetResourceManager()->GetLiveHandle(imgid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdClearColorImage(Unwrap(commandBuffer), Unwrap(image), layout, &col, count, ranges); } } @@ -816,9 +816,9 @@ bool WrappedVulkan::Serialise_vkCmdClearDepthStencilImage( { image = GetResourceManager()->GetLiveHandle(imgid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdClearDepthStencilImage(Unwrap(commandBuffer), Unwrap(image), l, &ds, count, ranges); } } @@ -898,9 +898,9 @@ bool WrappedVulkan::Serialise_vkCmdClearAttachments( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdClearAttachments(Unwrap(commandBuffer), acount, atts, rcount, rects); } } @@ -985,9 +985,9 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexed( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); if(m_DrawcallCallback) m_DrawcallCallback->PreDraw(m_RootEventID, commandBuffer); @@ -1079,9 +1079,9 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndirect( { buffer = GetResourceManager()->GetLiveHandle(bufid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdDrawIndirect(Unwrap(commandBuffer), Unwrap(buffer), offs, cnt, strd); } } @@ -1140,9 +1140,9 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirect( { buffer = GetResourceManager()->GetLiveHandle(bufid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdDrawIndexedIndirect(Unwrap(commandBuffer), Unwrap(buffer), offs, cnt, strd); } } @@ -1196,9 +1196,9 @@ bool WrappedVulkan::Serialise_vkCmdDispatch( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdDispatch(Unwrap(commandBuffer), x, y, z); } } @@ -1250,9 +1250,9 @@ bool WrappedVulkan::Serialise_vkCmdDispatchIndirect( { buffer = GetResourceManager()->GetLiveHandle(bufid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - commandBuffer = PartialCmdBuf(); + commandBuffer = RerecordCmdBuf(); ObjDisp(commandBuffer)->CmdDispatchIndirect(Unwrap(commandBuffer), Unwrap(buffer), offs); } } diff --git a/renderdoc/driver/vulkan/wrappers/vk_dynamic_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_dynamic_funcs.cpp index 0cec8f307..ef9d89d0a 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_dynamic_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_dynamic_funcs.cpp @@ -39,9 +39,9 @@ bool WrappedVulkan::Serialise_vkCmdSetViewport( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetViewport(Unwrap(cmdBuffer), count, views); m_RenderState.views.assign(views, views + count); } @@ -93,9 +93,9 @@ bool WrappedVulkan::Serialise_vkCmdSetScissor( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetScissor(Unwrap(cmdBuffer), count, scissors); m_RenderState.scissors.assign(scissors, scissors + count); } @@ -145,9 +145,9 @@ bool WrappedVulkan::Serialise_vkCmdSetLineWidth( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetLineWidth(Unwrap(cmdBuffer), width); m_RenderState.lineWidth = width; } @@ -198,9 +198,9 @@ bool WrappedVulkan::Serialise_vkCmdSetDepthBias( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetDepthBias(Unwrap(cmdBuffer), bias, biasclamp, slope); m_RenderState.bias.depth = bias; m_RenderState.bias.biasclamp = biasclamp; @@ -259,9 +259,9 @@ bool WrappedVulkan::Serialise_vkCmdSetBlendConstants( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetBlendConstants(Unwrap(cmdBuffer), blendFactor); memcpy(m_RenderState.blendConst, blendFactor, sizeof(blendFactor)); } @@ -310,9 +310,9 @@ bool WrappedVulkan::Serialise_vkCmdSetDepthBounds( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetDepthBounds(Unwrap(cmdBuffer), mind, maxd); m_RenderState.mindepth = mind; m_RenderState.maxdepth = maxd; @@ -363,9 +363,9 @@ bool WrappedVulkan::Serialise_vkCmdSetStencilCompareMask( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetStencilCompareMask(Unwrap(cmdBuffer), face, mask); if(face & VK_STENCIL_FACE_FRONT_BIT) @@ -419,9 +419,9 @@ bool WrappedVulkan::Serialise_vkCmdSetStencilWriteMask( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetStencilWriteMask(Unwrap(cmdBuffer), face, mask); if(face & VK_STENCIL_FACE_FRONT_BIT) @@ -475,9 +475,9 @@ bool WrappedVulkan::Serialise_vkCmdSetStencilReference( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetStencilReference(Unwrap(cmdBuffer), face, mask); if(face & VK_STENCIL_FACE_FRONT_BIT) diff --git a/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp index fe3851671..37d3ce592 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_queue_funcs.cpp @@ -284,10 +284,10 @@ bool WrappedVulkan::Serialise_vkQueueSubmit( if(eid == m_PartialReplayData.baseEvent) { - ResourceId partial = GetResID(PartialCmdBuf()); + ResourceId partial = GetResID(RerecordCmdBuf()); RDCDEBUG("Queue Submit partial replay of %llu at %u, using %llu", cmdIds[c], eid, partial); trimmedCmdIds.push_back(partial); - trimmedCmds.push_back(Unwrap(PartialCmdBuf())); + trimmedCmds.push_back(Unwrap(RerecordCmdBuf())); } else if(m_LastEventID >= end) { diff --git a/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp index 19c23d5ff..d64371678 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_sync_funcs.cpp @@ -560,9 +560,9 @@ bool WrappedVulkan::Serialise_vkCmdSetEvent( { event = GetResourceManager()->GetLiveHandle(eid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); ObjDisp(cmdBuffer)->CmdSetEvent(Unwrap(cmdBuffer), Unwrap(event), mask); } } @@ -617,9 +617,9 @@ bool WrappedVulkan::Serialise_vkCmdResetEvent( { event = GetResourceManager()->GetLiveHandle(eid); - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); //ObjDisp(cmdBuffer)->CmdResetEvent(Unwrap(cmdBuffer), Unwrap(event), mask); } } @@ -716,9 +716,9 @@ bool WrappedVulkan::Serialise_vkCmdWaitEvents( if(m_State == EXECUTING) { - if(IsPartialCmd(cmdid) && InPartialRange()) + if(ShouldRerecordCmd(cmdid) && InRerecordRange()) { - cmdBuffer = PartialCmdBuf(); + cmdBuffer = RerecordCmdBuf(); VkEventCreateInfo evInfo = { VK_STRUCTURE_TYPE_EVENT_CREATE_INFO, NULL, 0, @@ -736,7 +736,7 @@ bool WrappedVulkan::Serialise_vkCmdWaitEvents( // register to clean this event up once we're done replaying this section of the log m_CleanupEvents.push_back(ev); - ResourceId cmd = GetResID(PartialCmdBuf()); + ResourceId cmd = GetResID(RerecordCmdBuf()); GetResourceManager()->RecordBarriers(m_BakedCmdBufferInfo[cmd].imgbarriers, m_ImageLayouts, (uint32_t)imBarriers.size(), &imBarriers[0]); } }