From 0a4b7c974d978f968e651b9c712875340c05b0be Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 8 Oct 2008 17:34:51 +0200 Subject: wined3d: Correct some swizzles and write masks in arb_program_shader. Looks like this code was never tested when it was written, even though we've got a test case for it. --- dlls/wined3d/arb_program_shader.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 233098b..3258e3e 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -722,9 +722,9 @@ static void gen_color_correction(SHADER_BUFFER *buffer, const char *reg, const c /* Swap y and z (U and L), and do a sign conversion on x and the new y(V and U) */ shader_addline(buffer, "MOV TMP.g, %s.%c;\n", reg, writemask[2]); - shader_addline(buffer, "MAD %s.%c%c, %s.%c%c, %s, -%s;\n", - reg, writemask[1], writemask[1], - reg, writemask[1], writemask[3], + shader_addline(buffer, "MAD %s.%c%c, %s.%c%c%c%c, %s, -%s;\n", + reg, writemask[1], writemask[2], + reg, writemask[3], writemask[1], writemask[3], writemask[1], two, one); shader_addline(buffer, "MOV %s.%c, TMP.g;\n", reg, writemask[3]); @@ -2820,6 +2820,7 @@ static GLuint gen_arbfp_ffp_shader(struct ffp_settings *settings, IWineD3DStateB } shader_addline(&buffer, "PARAM const = {1, 2, 4, 0.5};\n"); + shader_addline(&buffer, "TEMP TMP;\n"); shader_addline(&buffer, "TEMP ret;\n"); if(tempreg_used || settings->sRGB_write) shader_addline(&buffer, "TEMP tempreg;\n"); shader_addline(&buffer, "TEMP arg0;\n"); -- 1.5.6.4