From b356991cadaf168e2fc036fd1638900e2fcbe573 Mon Sep 17 00:00:00 2001 From: Anish Bhobe Date: Tue, 23 Jul 2024 19:28:10 +0200 Subject: [PATCH] Bugfix: Wrong pcb offset on multiple buffers. --- samples/03_model_render/model_render.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/samples/03_model_render/model_render.cpp b/samples/03_model_render/model_render.cpp index dd26d96..230cf4c 100644 --- a/samples/03_model_render/model_render.cpp +++ b/samples/03_model_render/model_render.cpp @@ -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(prim.m_VertexOffset), 0); }