Shader/SpirV: Fix missing OpSelectionMerge before branching
This commit is contained in:
parent
32569eef5e
commit
36be581d9a
|
|
@ -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<std::size_t> 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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue