From eefe6346a9640bd42147281472d800f075720cf7 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Mon, 26 Nov 2012 22:52:40 +0100 Subject: [PATCH] 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 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index a5df3c3f0cb..85c8437af5c 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);