Giovanni Mascellani : vkd3d-shader/hlsl: Write the else block only if it isn't empty.
Module: vkd3d Branch: master Commit: 0f16b8ec789c653c131928158efbf5860fa5a0d1 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=0f16b8ec789c653c13192815... Author: Giovanni Mascellani <gmascellani(a)codeweavers.com> Date: Tue Nov 16 19:54:58 2021 +0100 vkd3d-shader/hlsl: Write the else block only if it isn't empty. Signed-off-by: Giovanni Mascellani <gmascellani(a)codeweavers.com> Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- libs/vkd3d-shader/hlsl_sm4.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libs/vkd3d-shader/hlsl_sm4.c b/libs/vkd3d-shader/hlsl_sm4.c index e597425..c56a74d 100644 --- a/libs/vkd3d-shader/hlsl_sm4.c +++ b/libs/vkd3d-shader/hlsl_sm4.c @@ -1446,11 +1446,14 @@ static void write_sm4_if(struct hlsl_ctx *ctx, struct vkd3d_bytecode_buffer *buf write_sm4_block(ctx, buffer, &iff->then_instrs); - instr.opcode = VKD3D_SM4_OP_ELSE; - instr.src_count = 0; - write_sm4_instruction(buffer, &instr); + if (!list_empty(&iff->else_instrs.instrs)) + { + instr.opcode = VKD3D_SM4_OP_ELSE; + instr.src_count = 0; + write_sm4_instruction(buffer, &instr); - write_sm4_block(ctx, buffer, &iff->else_instrs); + write_sm4_block(ctx, buffer, &iff->else_instrs); + } instr.opcode = VKD3D_SM4_OP_ENDIF; write_sm4_instruction(buffer, &instr);
participants (1)
-
Alexandre Julliard