[PATCH 3/5] d3dcompiler: Only a few modifiers are relevant in type comparison.

Matteo Bruni mbruni at codeweavers.com
Tue Sep 18 11:18:07 CDT 2012


---
 dlls/d3dcompiler_43/d3dcompiler_private.h |    2 ++
 dlls/d3dcompiler_43/utils.c               |    3 ++-
 2 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/dlls/d3dcompiler_43/d3dcompiler_private.h b/dlls/d3dcompiler_43/d3dcompiler_private.h
index a191529..28e77d3 100644
--- a/dlls/d3dcompiler_43/d3dcompiler_private.h
+++ b/dlls/d3dcompiler_43/d3dcompiler_private.h
@@ -732,6 +732,8 @@ struct hlsl_ir_node
 #define HLSL_MODIFIER_IN             0x00000800
 #define HLSL_MODIFIER_OUT            0x00001000
 
+#define HLSL_MODIFIERS_COMPARISON_MASK (HLSL_MODIFIER_ROW_MAJOR | HLSL_MODIFIER_COLUMN_MAJOR)
+
 struct hlsl_ir_var
 {
     struct hlsl_ir_node node;
diff --git a/dlls/d3dcompiler_43/utils.c b/dlls/d3dcompiler_43/utils.c
index f288efc..c403a98 100644
--- a/dlls/d3dcompiler_43/utils.c
+++ b/dlls/d3dcompiler_43/utils.c
@@ -921,7 +921,8 @@ static BOOL compare_hlsl_types(const struct hlsl_type *t1, const struct hlsl_typ
         return FALSE;
     if (t1->base_type == HLSL_TYPE_SAMPLER && t1->sampler_dim != t2->sampler_dim)
         return FALSE;
-    if (t1->modifiers != t2->modifiers)
+    if ((t1->modifiers & HLSL_MODIFIERS_COMPARISON_MASK)
+            != (t2->modifiers & HLSL_MODIFIERS_COMPARISON_MASK))
         return FALSE;
     if (t1->dimx != t2->dimx)
         return FALSE;
-- 
1.7.8.6




More information about the wine-patches mailing list