Bugfix: Wrong pcb offset on multiple buffers.

This commit is contained in:
Anish Bhobe 2024-07-23 19:28:10 +02:00
parent 980533dbb7
commit b356991cad
1 changed files with 7 additions and 4 deletions

View File

@ -298,12 +298,15 @@ main(int, char **)
for (auto &prim : model.m_MeshPrimitives)
{
cmd.pushConstants(pipeline.m_Layout, vk::ShaderStageFlagBits::eAll, pcbOffset, sizeof prim.m_MaterialIdx,
u32 innerPcbOffset = pcbOffset;
cmd.pushConstants(pipeline.m_Layout, vk::ShaderStageFlagBits::eAll, innerPcbOffset,
sizeof prim.m_MaterialIdx,
&prim.m_MaterialIdx);
pcbOffset += sizeof prim.m_MaterialIdx;
cmd.pushConstants(pipeline.m_Layout, vk::ShaderStageFlagBits::eAll, pcbOffset, sizeof prim.m_TransformIdx,
innerPcbOffset += sizeof prim.m_MaterialIdx;
cmd.pushConstants(pipeline.m_Layout, vk::ShaderStageFlagBits::eAll, innerPcbOffset,
sizeof prim.m_TransformIdx,
&prim.m_TransformIdx);
pcbOffset += sizeof prim.m_TransformIdx;
innerPcbOffset += sizeof prim.m_TransformIdx;
cmd.drawIndexed(prim.m_IndexCount, 1, prim.m_FirstIndex, Cast<i32>(prim.m_VertexOffset), 0);
}