Mesa (master): i965/fs: Fix lower_load_payload() not to use an incorrect half for immediates and uniforms.

Francisco Jerez currojerez at kemper.freedesktop.org
Mon Feb 23 18:55:50 UTC 2015


Module: Mesa
Branch: master
Commit: 34c93fd7f119fa824062e05377de849b8a2da0e6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=34c93fd7f119fa824062e05377de849b8a2da0e6

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Feb  5 12:20:03 2015 +0200

i965/fs: Fix lower_load_payload() not to use an incorrect half for immediates and uniforms.

Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>

---

 src/mesa/drivers/dri/i965/brw_fs.cpp |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 4fa6790..9df1650 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -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) {




More information about the mesa-commit mailing list