diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index cd156ba7e24..a7a79c190f4 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -1173,7 +1173,7 @@ static void pshader_hw_tex(const struct wined3d_shader_instruction *ins) } else if (shader_version < WINED3DPS_VERSION(2,0)) { - DWORD src_mod = ins->src[0].token & WINED3DSP_SRCMOD_MASK; + DWORD src_mod = ins->src[0].modifiers; if (src_mod == WINED3DSPSM_DZ) { projected = TRUE; } else if(src_mod == WINED3DSPSM_DW) { diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c index 8ae6a19f4f6..e0cedbc3507 100644 --- a/dlls/wined3d/baseshader.c +++ b/dlls/wined3d/baseshader.c @@ -229,6 +229,7 @@ static void shader_parse_src_param(DWORD param, DWORD addr_param, struct wined3d src->register_type = ((param & WINED3DSP_REGTYPE_MASK) >> WINED3DSP_REGTYPE_SHIFT) | ((param & WINED3DSP_REGTYPE_MASK2) >> WINED3DSP_REGTYPE_SHIFT2); src->register_idx = param & WINED3DSP_REGNUM_MASK; + src->modifiers = param & WINED3DSP_SRCMOD_MASK; src->token = param; src->addr_token = addr_param; } diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 0868b6c60ef..3c8eac145d4 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -2459,7 +2459,7 @@ static void pshader_glsl_tex(const struct wined3d_shader_instruction *ins) } else if (shader_version < WINED3DPS_VERSION(2,0)) { - DWORD src_mod = ins->src[0].token & WINED3DSP_SRCMOD_MASK; + DWORD src_mod = ins->src[0].modifiers; if (src_mod == WINED3DSPSM_DZ) { sample_flags |= WINED3D_GLSL_SAMPLE_PROJECTED; @@ -2559,7 +2559,7 @@ static void pshader_glsl_texcoord(const struct wined3d_shader_instruction *ins) ins->dst[0].register_idx, dst_mask); } else { DWORD reg = ins->src[0].register_idx; - DWORD src_mod = ins->src[0].token & WINED3DSP_SRCMOD_MASK; + DWORD src_mod = ins->src[0].modifiers; char dst_swizzle[6]; shader_glsl_get_swizzle(ins->src[0].token, FALSE, write_mask, dst_swizzle); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 9a476bc0902..11d69f30aeb 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -466,6 +466,7 @@ struct wined3d_shader_src_param { WINED3DSHADER_PARAM_REGISTER_TYPE register_type; UINT register_idx; + DWORD modifiers; DWORD token; DWORD addr_token; };