diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index d871fc978b2..6c7416996df 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -850,6 +850,14 @@ static void shader_arb_get_src_param(const struct wined3d_shader_instruction *in shader_addline(buffer, "RCP T%c, %s.w;\n", 'A' + tmpreg, regstr); shader_addline(buffer, "MUL T%c, %s, T%c;\n", 'A' + tmpreg, regstr, 'A' + tmpreg); break; + case WINED3DSPSM_ABS: + shader_addline(buffer, "ABS T%c, %s;\n", 'A' + tmpreg, regstr); + break; + case WINED3DSPSM_ABSNEG: + shader_addline(buffer, "ABS T%c, %s;\n", 'A' + tmpreg, regstr); + sprintf(outregstr, "-T%c%s", 'A' + tmpreg, swzstr); + insert_line = 0; + break; default: sprintf(outregstr, "%s%s", regstr, swzstr); insert_line = 0;