mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-28 17:36:36 +00:00
Rename *Partial* funcs to Rerecord, as it won't be just partial
* When doing a full-frame counter record, we will rerecord every command buffer.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<VkPipeline>(pipeid);
|
||||
commandBuffer = PartialCmdBuf();
|
||||
commandBuffer = RerecordCmdBuf();
|
||||
|
||||
ObjDisp(commandBuffer)->CmdBindPipeline(Unwrap(commandBuffer), bind, Unwrap(pipeline));
|
||||
|
||||
@@ -1042,9 +1042,9 @@ bool WrappedVulkan::Serialise_vkCmdBindDescriptorSets(
|
||||
{
|
||||
layout = GetResourceManager()->GetLiveHandle<VkPipelineLayout>(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<VkBuffer>(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<VkBuffer>(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<VkBuffer>(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<VkPipelineLayout>(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<VkQueryPool>(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<VkQueryPool>(qid);
|
||||
destBuffer = GetResourceManager()->GetLiveHandle<VkBuffer>(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<VkQueryPool>(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<VkQueryPool>(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<VkQueryPool>(qid);
|
||||
|
||||
if(IsPartialCmd(cmdid) && InPartialRange())
|
||||
if(ShouldRerecordCmd(cmdid) && InRerecordRange())
|
||||
{
|
||||
commandBuffer = PartialCmdBuf();
|
||||
commandBuffer = RerecordCmdBuf();
|
||||
ObjDisp(commandBuffer)->CmdResetQueryPool(Unwrap(commandBuffer), Unwrap(queryPool), start, count);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<VkImage>(srcid);
|
||||
destImage = GetResourceManager()->GetLiveHandle<VkImage>(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<VkImage>(srcid);
|
||||
destImage = GetResourceManager()->GetLiveHandle<VkImage>(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<VkImage>(srcid);
|
||||
destImage = GetResourceManager()->GetLiveHandle<VkImage>(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<VkBuffer>(bufid);
|
||||
destImage = GetResourceManager()->GetLiveHandle<VkImage>(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<VkImage>(imgid);
|
||||
destBuffer = GetResourceManager()->GetLiveHandle<VkBuffer>(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<VkBuffer>(srcid);
|
||||
destBuffer = GetResourceManager()->GetLiveHandle<VkBuffer>(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<VkImage>(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<VkImage>(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<VkBuffer>(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<VkBuffer>(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<VkBuffer>(bufid);
|
||||
|
||||
if(IsPartialCmd(cmdid) && InPartialRange())
|
||||
if(ShouldRerecordCmd(cmdid) && InRerecordRange())
|
||||
{
|
||||
commandBuffer = PartialCmdBuf();
|
||||
commandBuffer = RerecordCmdBuf();
|
||||
ObjDisp(commandBuffer)->CmdDispatchIndirect(Unwrap(commandBuffer), Unwrap(buffer), offs);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -560,9 +560,9 @@ bool WrappedVulkan::Serialise_vkCmdSetEvent(
|
||||
{
|
||||
event = GetResourceManager()->GetLiveHandle<VkEvent>(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<VkEvent>(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]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user