[Mesa-dev] [PATCH 15/24] i965/fs: Set stride = 1 for vector immediate types.

Matt Turner mattst88 at gmail.com
Mon Nov 2 16:29:25 PST 2015


The generator asserts that this is true (and presumably it's useful in
some optimization passes?) and the VF fs_reg constructors did this (by
virtue of the fact that it doesn't override what init() does).

In the next commit, calling this constructor with brw_imm_* will
generate an IMM file register rather than a HW_REG, making this change
necessary to avoid breakage with existing uses of brw_imm_v().
---
 src/mesa/drivers/dri/i965/brw_fs.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 91eaf61..92a9437 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -427,6 +427,12 @@ fs_reg::fs_reg(struct brw_reg reg) :
    this->subreg_offset = 0;
    this->reladdr = NULL;
    this->stride = 1;
+   if (this->file == IMM &&
+       (this->type != BRW_REGISTER_TYPE_V &&
+        this->type != BRW_REGISTER_TYPE_UV &&
+        this->type != BRW_REGISTER_TYPE_VF)) {
+      this->stride = 0;
+   }
 }
 
 bool
-- 
2.4.9



More information about the mesa-dev mailing list