Fix tracking of topologies during load for drawcalls

This commit is contained in:
baldurk
2020-07-06 10:47:00 +01:00
parent 4b7e1babc3
commit 97ea5df002
@@ -2463,14 +2463,23 @@ bool WrappedVulkan::Serialise_vkCmdBindPipeline(SerialiserType &ser, VkCommandBu
}
else
{
ResourceId liveid = GetResID(pipeline);
// track while reading, as we need to bind current topology & index byte width in AddDrawcall
if(pipelineBindPoint == VK_PIPELINE_BIND_POINT_COMPUTE)
{
m_BakedCmdBufferInfo[m_LastCmdBufferID].state.compute.pipeline = GetResID(pipeline);
m_BakedCmdBufferInfo[m_LastCmdBufferID].state.compute.pipeline = liveid;
}
else
{
m_BakedCmdBufferInfo[m_LastCmdBufferID].state.graphics.pipeline = GetResID(pipeline);
m_BakedCmdBufferInfo[m_LastCmdBufferID].state.graphics.pipeline = liveid;
const VulkanCreationInfo::Pipeline &pipeInfo = m_CreationInfo.m_Pipeline[liveid];
if(!pipeInfo.dynamicStates[VkDynamicPrimitiveTopologyEXT])
{
m_BakedCmdBufferInfo[m_LastCmdBufferID].state.primitiveTopology = pipeInfo.topology;
}
}
}