From 0e4e19697908b0cc39d79310fb0fa2314984a303 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 12 Oct 2010 13:40:04 +0200 Subject: [PATCH] wined3d: Skip SM4 source register modifiers. --- dlls/wined3d/shader_sm4.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dlls/wined3d/shader_sm4.c b/dlls/wined3d/shader_sm4.c index 2bcd3d303d0..d893b053e3d 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;