[PATCH vkd3d 3/5] vkd3d-shader: Store the shader type and version in the hlsl_ctx structure.

Zebediah Figura zfigura at codeweavers.com
Tue Mar 30 17:03:13 CDT 2021


Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 libs/vkd3d-shader/hlsl.c | 9 +++++++--
 libs/vkd3d-shader/hlsl.h | 4 ++++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/libs/vkd3d-shader/hlsl.c b/libs/vkd3d-shader/hlsl.c
index 67ca2f2c..c1f03978 100644
--- a/libs/vkd3d-shader/hlsl.c
+++ b/libs/vkd3d-shader/hlsl.c
@@ -1556,10 +1556,15 @@ static void declare_predefined_types(struct hlsl_ctx *ctx)
     }
 }
 
-static bool hlsl_ctx_init(struct hlsl_ctx *ctx, struct vkd3d_shader_message_context *message_context)
+static bool hlsl_ctx_init(struct hlsl_ctx *ctx, const struct hlsl_profile_info *profile,
+        struct vkd3d_shader_message_context *message_context)
 {
     memset(ctx, 0, sizeof(*ctx));
 
+    ctx->shader_type = profile->type;
+    ctx->major_version = profile->sm_major;
+    ctx->minor_version = profile->sm_minor;
+
     ctx->message_context = message_context;
 
     if (!(ctx->source_files = vkd3d_malloc(sizeof(*ctx->source_files))))
@@ -1642,7 +1647,7 @@ int hlsl_compile_shader(const struct vkd3d_shader_code *hlsl, const struct vkd3d
 
     vkd3d_shader_dump_shader(profile->type, &compile_info->source);
 
-    if (!hlsl_ctx_init(&ctx, message_context))
+    if (!hlsl_ctx_init(&ctx, profile, message_context))
         return VKD3D_ERROR_OUT_OF_MEMORY;
 
     if (hlsl_lexer_compile(&ctx, hlsl) == 2)
diff --git a/libs/vkd3d-shader/hlsl.h b/libs/vkd3d-shader/hlsl.h
index 664137ce..475119d1 100644
--- a/libs/vkd3d-shader/hlsl.h
+++ b/libs/vkd3d-shader/hlsl.h
@@ -380,6 +380,7 @@ struct hlsl_ir_constant
         double d[4];
         bool b[4];
     } value;
+    struct hlsl_reg reg;
 };
 
 struct hlsl_scope
@@ -392,6 +393,9 @@ struct hlsl_scope
 
 struct hlsl_ctx
 {
+    enum vkd3d_shader_type shader_type;
+    unsigned int major_version, minor_version;
+
     const char **source_files;
     unsigned int source_files_count;
     struct vkd3d_shader_location location;
-- 
2.31.0




More information about the wine-devel mailing list