Henri Verbeet : wined3d: Properly handle scalar destinations in shader_glsl_conditional_move().

Alexandre Julliard julliard at winehq.org
Tue Nov 27 14:30:47 CST 2012


Module: wine
Branch: master
Commit: eefe6346a9640bd42147281472d800f075720cf7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=eefe6346a9640bd42147281472d800f075720cf7

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Mon Nov 26 22:52:40 2012 +0100

wined3d: Properly handle scalar destinations in shader_glsl_conditional_move().

In particular, we modify dst.write_mask in the code further down in order to
mask out unused channels, but the writemask is ignored for scalar registers.
Since all that code is redundant anyway for scalar destinations, we can just
reuse the special case for scalar src0.

---

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

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index a5df3c3..85c8437 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -2878,7 +2878,7 @@ static void shader_glsl_conditional_move(const struct wined3d_shader_instruction
             break;
     }
 
-    if (shader_is_scalar(&ins->src[0].reg))
+    if (shader_is_scalar(&ins->dst[0].reg) || shader_is_scalar(&ins->src[0].reg))
     {
         write_mask = shader_glsl_append_dst(ins->ctx->buffer, ins);
         shader_glsl_add_src_param(ins, &ins->src[0], write_mask, &src0_param);




More information about the wine-cvs mailing list