Zebediah Figura : vkd3d-shader: Do not mark objects as uniform or varying.

Alexandre Julliard julliard at winehq.org
Wed Mar 24 16:06:51 CDT 2021


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

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Mon Mar 22 17:02:38 2021 -0500

vkd3d-shader: Do not mark objects as uniform or varying.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 libs/vkd3d-shader/hlsl.y | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y
index 912064b..ab7059d 100644
--- a/libs/vkd3d-shader/hlsl.y
+++ b/libs/vkd3d-shader/hlsl.y
@@ -766,16 +766,19 @@ static bool add_func_parameter(struct hlsl_ctx *ctx, struct list *list,
     if (!(var = hlsl_new_var(param->name, param->type, loc, param->semantic, param->reg_reservation)))
         return false;
 
-    if (param->modifiers & HLSL_STORAGE_UNIFORM)
+    if (param->type->type != HLSL_CLASS_OBJECT)
     {
-        var->is_uniform = 1;
-    }
-    else
-    {
-        if (param->modifiers & HLSL_STORAGE_IN)
-            var->is_input_varying = 1;
-        if (param->modifiers & HLSL_STORAGE_OUT)
-            var->is_output_varying = 1;
+        if (param->modifiers & HLSL_STORAGE_UNIFORM)
+        {
+            var->is_uniform = 1;
+        }
+        else
+        {
+            if (param->modifiers & HLSL_STORAGE_IN)
+                var->is_input_varying = 1;
+            if (param->modifiers & HLSL_STORAGE_OUT)
+                var->is_output_varying = 1;
+        }
     }
 
     if (!hlsl_add_var(ctx, var, false))
@@ -1428,7 +1431,7 @@ static struct list *declare_vars(struct hlsl_ctx *ctx, struct hlsl_type *basic_t
 
         if (ctx->cur_scope == ctx->globals)
         {
-            if (!(modifiers & HLSL_STORAGE_STATIC))
+            if (type->type != HLSL_CLASS_OBJECT && !(modifiers & HLSL_STORAGE_STATIC))
                 var->is_uniform = 1;
 
             local = false;




More information about the wine-cvs mailing list