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:
baldurk
2016-02-07 18:49:48 +01:00
parent 251a9773c2
commit 4814c58ab8
7 changed files with 116 additions and 111 deletions
+19
View File
@@ -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;
+3 -17
View File
@@ -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]);
}
}