Jason Green : wined3d: Fix D3DSIO_M#X# instruction for both ARB and GLSL shaders.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jul 6 10:44:09 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 3529e0ceeb633a3dbc2335f2c74727734468e23e
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=3529e0ceeb633a3dbc2335f2c74727734468e23e

Author: Jason Green <jave27 at gmail.com>
Date:   Wed Jul  5 22:35:56 2006 -0400

wined3d: Fix D3DSIO_M#X# instruction for both ARB and GLSL shaders.

This instruction was being handled incorrectly in the case where the
2nd src argument contained a relatively addressed constant.

---

 dlls/wined3d/arb_program_shader.c |    1 +
 dlls/wined3d/glsl_shader.c        |    2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 47791bc..e4d7e4d 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -809,6 +809,7 @@ void vshader_hw_mnxn(SHADER_OPCODE_ARG* 
     tmpArg.buffer      = arg->buffer;
     tmpArg.src[0]      = arg->src[0];
     tmpArg.src_addr[0] = arg->src_addr[0];
+    tmpArg.src_addr[1] = arg->src_addr[1];
     tmpArg.reg_maps = arg->reg_maps;
 
     switch(arg->opcode->opcode) {
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index d15874c..d7ec6a2 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -995,6 +995,7 @@ void shader_glsl_mnxn(SHADER_OPCODE_ARG*
     tmpArg.buffer      = arg->buffer;
     tmpArg.src[0]      = arg->src[0];
     tmpArg.src_addr[0] = arg->src_addr[0];
+    tmpArg.src_addr[1] = arg->src_addr[1];
     tmpArg.reg_maps = arg->reg_maps; 
     
     switch(arg->opcode->opcode) {
@@ -1025,7 +1026,6 @@ void shader_glsl_mnxn(SHADER_OPCODE_ARG*
     for (i = 0; i < nComponents; i++) {
         tmpArg.dst = ((arg->dst) & ~D3DSP_WRITEMASK_ALL)|(D3DSP_WRITEMASK_0<<i);
         tmpArg.src[1]      = arg->src[1]+i;
-	tmpArg.src_addr[1] = arg->src[1]+i;
         shader_glsl_dot(&tmpArg);
     }
 }




More information about the wine-cvs mailing list