[PATCH 5/5] wined3d: Initialize WINED3DTA_TEMP.

Stefan Dösinger stefan at codeweavers.com
Wed Mar 11 04:33:46 CDT 2015


test_3dc_formats makes use of this to load 0.0 into the fixed function
fragment processing setup. This patch fixes this test on r300g.
---
 dlls/wined3d/arb_program_shader.c | 3 +++
 dlls/wined3d/glsl_shader.c        | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 688bdb7..e7ee1c1 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -6298,6 +6298,9 @@ static GLuint gen_arbfp_ffp_shader(const struct ffp_frag_settings *settings, con
     if (lowest_disabled_stage < 7 && settings->emul_clipplanes)
         shader_addline(&buffer, "KIL fragment.texcoord[7];\n");
 
+    if (tempreg_used || settings->sRGB_write)
+        shader_addline(&buffer, "MOV tempreg, 0.0;\n");
+
     /* Generate texture sampling instructions) */
     for (stage = 0; stage < MAX_TEXTURES && settings->op[stage].cop != WINED3D_TOP_DISABLE; ++stage)
     {
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 0804997..0b239f9 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -5413,7 +5413,7 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct wined3d_shader_buf
     shader_addline(buffer, "vec4 tmp0, tmp1;\n");
     shader_addline(buffer, "vec4 ret;\n");
     if (tempreg_used || settings->sRGB_write)
-        shader_addline(buffer, "vec4 temp_reg;\n");
+        shader_addline(buffer, "vec4 temp_reg = vec4(0.0);\n");
     shader_addline(buffer, "vec4 arg0, arg1, arg2;\n");
 
     for (stage = 0; stage < MAX_TEXTURES; ++stage)
-- 
2.3.0




More information about the wine-patches mailing list