Giovanni Mascellani : vkd3d-shader/hlsl: Write the else block only if it isn't empty.

Alexandre Julliard julliard at winehq.org
Fri Nov 19 15:39:45 CST 2021


Module: vkd3d
Branch: master
Commit: 0f16b8ec789c653c131928158efbf5860fa5a0d1
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=0f16b8ec789c653c131928158efbf5860fa5a0d1

Author: Giovanni Mascellani <gmascellani at 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 at codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);




More information about the wine-cvs mailing list