vkd3d-shader: Ignore break instructions if there is no active block.
This can happen if a continue statement is immediately followed by a break instruction in a switch case. Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
This commit is contained in:
parent
96888b0663
commit
ba8e306452
|
@ -8094,8 +8094,10 @@ static int vkd3d_dxbc_compiler_emit_control_flow_instruction(struct vkd3d_dxbc_c
|
||||||
}
|
}
|
||||||
else if (breakable_cf_info->current_block == VKD3D_BLOCK_SWITCH)
|
else if (breakable_cf_info->current_block == VKD3D_BLOCK_SWITCH)
|
||||||
{
|
{
|
||||||
assert(breakable_cf_info->inside_block);
|
/* It is possible that we already broke out of the
|
||||||
vkd3d_spirv_build_op_branch(builder, breakable_cf_info->switch_.merge_block_id);
|
* current case block with a continue statement */
|
||||||
|
if (breakable_cf_info->inside_block)
|
||||||
|
vkd3d_spirv_build_op_branch(builder, breakable_cf_info->switch_.merge_block_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
cf_info->inside_block = false;
|
cf_info->inside_block = false;
|
||||||
|
|
Loading…
Reference in New Issue