wined3d: Fix regression from register maps switch for ARB shaders

Jason Green jave27 at gmail.com
Fri Jun 9 17:28:00 CDT 2006


I missed a register mask in the move to share the shader_hw_def()
function between pixel and vertex shaders for ARB shaders.  Fixed
that, and made the GLSL version use the same mask for consistency.
-------------- next part --------------
diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c
index 8d1f759..47e1ba8 100644
--- a/dlls/wined3d/baseshader.c
+++ b/dlls/wined3d/baseshader.c
@@ -767,10 +767,10 @@ void shader_dump_ins_modifiers(const DWO
  * float constant, and stores it's usage on the regmaps. */
 void shader_hw_def(SHADER_OPCODE_ARG* arg) {
 
-    DWORD reg = arg->dst;
+    DWORD reg = arg->dst & D3DSP_REGNUM_MASK;
 
     shader_addline(arg->buffer, 
-                   "PARAM C%lu = { %f, %f, %f, %f };\n", reg & 0xFF,
+                   "PARAM C%lu = { %f, %f, %f, %f };\n", reg,
                    *((const float *)(arg->src + 0)),
                    *((const float *)(arg->src + 1)),
                    *((const float *)(arg->src + 2)),
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index a04fbbd..6d1b106 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -690,7 +690,7 @@ void shader_glsl_def(SHADER_OPCODE_ARG* 
     DWORD reg = arg->dst & D3DSP_REGNUM_MASK;
 
     shader_addline(arg->buffer, 
-                   "const vec4 C%lu = { %f, %f, %f, %f };\n", reg & 0xFF,
+                   "const vec4 C%lu = { %f, %f, %f, %f };\n", reg,
                    *((const float *)(arg->src + 0)),
                    *((const float *)(arg->src + 1)),
                    *((const float *)(arg->src + 2)),


More information about the wine-patches mailing list