wined3d: Allow both SM4 parameter modifiers simultaneously.

It seems that negate and abs are the only source parameter modifiers
allowed in SM 4 and 5.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia 2016-01-18 21:16:44 +01:00 committed by Alexandre Julliard
parent 0fb543bb71
commit 9adf1c21b6
1 changed files with 4 additions and 3 deletions

View File

@ -621,9 +621,6 @@ static BOOL shader_sm4_read_param(struct wined3d_sm4_data *priv, const DWORD **p
{ {
DWORD m = *(*ptr)++; DWORD m = *(*ptr)++;
/* FIXME: This will probably break down at some point. The SM4
* modifiers look like flags, while wined3d currently has an enum
* with possible combinations, e.g. WINED3DSPSM_ABSNEG. */
switch (m) switch (m)
{ {
case 0x41: case 0x41:
@ -634,6 +631,10 @@ static BOOL shader_sm4_read_param(struct wined3d_sm4_data *priv, const DWORD **p
*modifier = WINED3DSPSM_ABS; *modifier = WINED3DSPSM_ABS;
break; break;
case 0xc1:
*modifier = WINED3DSPSM_ABSNEG;
break;
default: default:
FIXME("Skipping modifier 0x%08x.\n", m); FIXME("Skipping modifier 0x%08x.\n", m);
*modifier = WINED3DSPSM_NONE; *modifier = WINED3DSPSM_NONE;