i965/vec4: Override destination register writemask in sampler message send.
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 12 Feb 2015 08:20:49 +0000 (10:20 +0200)
committerFrancisco Jerez <currojerez@riseup.net>
Mon, 16 Feb 2015 11:51:08 +0000 (13:51 +0200)
This line was removed by accident in commit
16b911257440afbd77a6eb762e28df62e3c19bc7 causing a regression in the
ES3-CTS.gtf.GL3Tests.shadow.shadow_execution_vert Khronos conformance
test.  It's necessary because the swizzle_result() code below expects
all four components of the vector to be valid.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89094
Tested-by: Lu Hua <huax.lu@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp

index c4c134f3d275b47b5cb279bf30b429d58990402d..faae2c9bb6920f30a9da35a41b88cf599bd86814 100644 (file)
@@ -2613,6 +2613,7 @@ vec4_visitor::visit(ir_texture *ir)
       is_high_sampler(brw, sampler_reg);
    inst->base_mrf = 2;
    inst->mlen = inst->header_present + 1; /* always at least one */
+   inst->dst.writemask = WRITEMASK_XYZW;
    inst->shadow_compare = ir->shadow_comparitor != NULL;
 
    inst->src[1] = sampler_reg;