[PATCH 4/5] wined3d: Skip SM4 source register modifiers.

Henri Verbeet hverbeet at codeweavers.com
Tue Oct 12 06:40:04 CDT 2010


---
 dlls/wined3d/shader_sm4.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/shader_sm4.c b/dlls/wined3d/shader_sm4.c
index 2bcd3d3..d893b05 100644
--- a/dlls/wined3d/shader_sm4.c
+++ b/dlls/wined3d/shader_sm4.c
@@ -28,6 +28,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d_shader);
 
 #define WINED3D_SM4_OPCODE_MASK                 0xff
 
+#define WINED3D_SM4_REGISTER_MODIFIER           (1 << 31)
+
 #define WINED3D_SM4_REGISTER_ORDER_SHIFT        20
 #define WINED3D_SM4_REGISTER_ORDER_MASK         (0x3 << WINED3D_SM4_REGISTER_ORDER_SHIFT)
 
@@ -345,6 +347,12 @@ static void shader_sm4_read_src_param(void *data, const DWORD **ptr, struct wine
         src_param->reg.type = register_type_table[register_type];
     }
 
+    if (token & WINED3D_SM4_REGISTER_MODIFIER)
+    {
+        DWORD modifier = *(*ptr)++;
+        FIXME("Skipping modifier 0x%08x.\n", modifier);
+    }
+
     order = (token & WINED3D_SM4_REGISTER_ORDER_MASK) >> WINED3D_SM4_REGISTER_ORDER_SHIFT;
 
     if (order < 1) src_param->reg.idx = ~0U;
-- 
1.7.2.2




More information about the wine-patches mailing list