[PATCH vkd3d v3 1/4] vkd3d-shader/hlsl: Write the else block only if it isn't empty.
Giovanni Mascellani
gmascellani at codeweavers.com
Tue Nov 16 12:54:58 CST 2021
Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
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 e597425a..c56a74d4 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);
--
2.33.1
More information about the wine-devel
mailing list