i965/fs: Fix lower_load_payload() not to use an incorrect half for immediates and...
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 5 Feb 2015 10:20:03 +0000 (12:20 +0200)
committerFrancisco Jerez <currojerez@riseup.net>
Mon, 23 Feb 2015 18:55:40 +0000 (20:55 +0200)
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/mesa/drivers/dri/i965/brw_fs.cpp

index 4fa679017577d8a8e3d63745ae0e358e69a2b76e..9df16507125a2fe90d6ad62d575b317fcab8d13b 100644 (file)
@@ -3173,6 +3173,14 @@ fs_visitor::lower_load_payload()
                                 inst->src[i].reg_offset;
                   mov->force_sechalf = metadata[src_reg].force_sechalf;
                   mov->force_writemask_all = metadata[src_reg].force_writemask_all;
+               } else {
+                  /* We don't have any useful metadata for immediates or
+                   * uniforms.  Assume that any of the channels of the
+                   * destination may be used.
+                   */
+                  assert(inst->src[i].file == IMM ||
+                         inst->src[i].file == UNIFORM);
+                  mov->force_writemask_all = true;
                }
 
                if (dst.file == GRF) {