u_simple_shaders: fix mask handling in util_make_fragment_tex_shader_writemask
authorRoland Scheidegger <sroland@vmware.com>
Wed, 7 Feb 2018 04:03:42 +0000 (05:03 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Wed, 7 Feb 2018 16:08:24 +0000 (17:08 +0100)
The writemask handling was busted, since writing defaults to output
meant they got overwritten by the tex sampling anyway. Albeit the
affected components were undefined, so maybe with some luck it
still would have worked with some drivers - if not could as well
kill it... (This would have affected u_blitter but not u_blit since
the latter always used xyzw mask.)

Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/util/u_simple_shaders.c

index 967954596bbfe3f7ca0c70e40983324c84cb53da..a301c057624c242fa3095648d8ab60acc41d4a45 100644 (file)
@@ -275,7 +275,7 @@ util_make_fragment_tex_shader_writemask(struct pipe_context *pipe,
    if (writemask != TGSI_WRITEMASK_XYZW) {
       struct ureg_src imm = ureg_imm4f( ureg, 0, 0, 0, 1 );
 
-      ureg_MOV( ureg, out, imm );
+      ureg_MOV(ureg, temp, imm);
    }
 
    if (tex_target == TGSI_TEXTURE_BUFFER)