diff --git a/src/Nazara/Shader/SpirvAstVisitor.cpp b/src/Nazara/Shader/SpirvAstVisitor.cpp index 9c6797ff9..fee8b7d2e 100644 --- a/src/Nazara/Shader/SpirvAstVisitor.cpp +++ b/src/Nazara/Shader/SpirvAstVisitor.cpp @@ -452,6 +452,9 @@ namespace Nz m_currentBlock = &previousContentBlock; Visit(firstCond.statement); + SpirvBlock mergeBlock(m_writer); + m_blocks.back().Append(SpirvOp::OpSelectionMerge, mergeBlock.GetLabelId(), SpirvSelectionControl::None); + std::optional nextBlock; for (std::size_t statementIndex = 1; statementIndex < node.condStatements.size(); ++statementIndex) { @@ -469,8 +472,6 @@ namespace Nz Visit(statement.statement); } - SpirvBlock mergeBlock(m_writer); - if (node.elseStatement) { SpirvBlock elseBlock(m_writer);