[PATCH v2 vkd3d] vkd3d-shader: Skip generating SM1 array operations.

Matteo Bruni mbruni at codeweavers.com
Wed Aug 11 08:39:46 CDT 2021


Eventually they will be split or otherwise transformed before getting
here.

Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
v2: Report a compiler error (and fail compilation).

 libs/vkd3d-shader/hlsl_sm1.c             | 6 ++++++
 libs/vkd3d-shader/vkd3d_shader_private.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/libs/vkd3d-shader/hlsl_sm1.c b/libs/vkd3d-shader/hlsl_sm1.c
index 8ea663dc..c13f0a2e 100644
--- a/libs/vkd3d-shader/hlsl_sm1.c
+++ b/libs/vkd3d-shader/hlsl_sm1.c
@@ -768,6 +768,12 @@ static void write_sm1_instructions(struct hlsl_ctx *ctx, struct vkd3d_bytecode_b
                 FIXME("Matrix operations need to be lowered.\n");
                 break;
             }
+            if (instr->data_type->type == HLSL_CLASS_ARRAY)
+            {
+                hlsl_error(ctx, instr->loc, VKD3D_SHADER_ERROR_HLSL_COMPILER_ERROR,
+                        "Compiler error, array operations need to be lowered.");
+                break;
+            }
 
             assert(instr->data_type->type == HLSL_CLASS_SCALAR || instr->data_type->type == HLSL_CLASS_VECTOR);
         }
diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h
index b64c4b10..4ea6f88d 100644
--- a/libs/vkd3d-shader/vkd3d_shader_private.h
+++ b/libs/vkd3d-shader/vkd3d_shader_private.h
@@ -112,6 +112,7 @@ enum vkd3d_shader_error
     VKD3D_SHADER_ERROR_HLSL_INVALID_RETURN              = 5014,
     VKD3D_SHADER_ERROR_HLSL_OVERLAPPING_RESERVATIONS    = 5015,
     VKD3D_SHADER_ERROR_HLSL_INVALID_RESERVATION         = 5016,
+    VKD3D_SHADER_ERROR_HLSL_COMPILER_ERROR              = 5299,
 
     VKD3D_SHADER_WARNING_HLSL_IMPLICIT_TRUNCATION       = 5300,
 };
-- 
2.26.3




More information about the wine-devel mailing list