[PATCH vkd3d 4/5] vkd3d-shader: Store the register type for reservations as a char.

Zebediah Figura zfigura at codeweavers.com
Mon May 31 21:41:13 CDT 2021


Essentially because the meaning of 'b' differs between SM1-3 and SM4+.

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

diff --git a/libs/vkd3d-shader/hlsl.h b/libs/vkd3d-shader/hlsl.h
index 4fe90a91..906d864d 100644
--- a/libs/vkd3d-shader/hlsl.h
+++ b/libs/vkd3d-shader/hlsl.h
@@ -212,7 +212,7 @@ struct hlsl_src
 
 struct hlsl_reg_reservation
 {
-    enum vkd3d_shader_register_type type;
+    char type;
     DWORD regnum;
 };
 
diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y
index cab46aee..d8ad1f98 100644
--- a/libs/vkd3d-shader/hlsl.y
+++ b/libs/vkd3d-shader/hlsl.y
@@ -782,29 +782,9 @@ static bool add_func_parameter(struct hlsl_ctx *ctx, struct list *list,
 
 static struct hlsl_reg_reservation *parse_reg_reservation(struct hlsl_ctx *ctx, const char *reg_string)
 {
-    enum vkd3d_shader_register_type type;
     struct hlsl_reg_reservation *reg_res;
     DWORD regnum = 0;
 
-    switch (reg_string[0])
-    {
-        case 'c':
-            type = VKD3DSPR_CONST;
-            break;
-        case 'i':
-            type = VKD3DSPR_CONSTINT;
-            break;
-        case 'b':
-            type = VKD3DSPR_CONSTBOOL;
-            break;
-        case 's':
-            type = VKD3DSPR_SAMPLER;
-            break;
-        default:
-            FIXME("Unsupported register type.\n");
-            return NULL;
-     }
-
     if (!sscanf(reg_string + 1, "%u", &regnum))
     {
         FIXME("Unsupported register reservation syntax.\n");
@@ -813,7 +793,7 @@ static struct hlsl_reg_reservation *parse_reg_reservation(struct hlsl_ctx *ctx,
 
     if (!(reg_res = hlsl_alloc(ctx, sizeof(*reg_res))))
         return NULL;
-    reg_res->type = type;
+    reg_res->type = reg_string[0];
     reg_res->regnum = regnum;
     return reg_res;
 }
-- 
2.31.1




More information about the wine-devel mailing list