[Mesa-dev] [PATCH 48/57] i965/vec4: Change opt_vector_float to keep track of the last offset seen in bytes.

Francisco Jerez currojerez at riseup.net
Thu Sep 8 01:49:15 UTC 2016


This simplifies things slightly and makes the pass more correct in
presence of sub-GRF offsets.
---
 src/mesa/drivers/dri/i965/brw_vec4.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index 49f3a32..dc484ba 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -365,7 +365,7 @@ vec4_visitor::opt_vector_float()
    bool progress = false;
 
    foreach_block(block, cfg) {
-      int last_reg = -1, last_reg_offset = -1;
+      int last_reg = -1, last_offset = -1;
       enum brw_reg_file last_reg_file = BAD_FILE;
 
       uint8_t imm[4] = { 0 };
@@ -405,7 +405,7 @@ vec4_visitor::opt_vector_float()
           * sequence.  Combine anything we've accumulated so far.
           */
          if (last_reg != inst->dst.nr ||
-             last_reg_offset != inst->dst.offset / REG_SIZE ||
+             last_offset != inst->dst.offset ||
              last_reg_file != inst->dst.file ||
              (vf > 0 && dest_type != need_type)) {
 
@@ -449,7 +449,7 @@ vec4_visitor::opt_vector_float()
             imm_inst[inst_count++] = inst;
 
             last_reg = inst->dst.nr;
-            last_reg_offset = inst->dst.offset / REG_SIZE;
+            last_offset = inst->dst.offset;
             last_reg_file = inst->dst.file;
             if (vf > 0)
                dest_type = need_type;
-- 
2.9.0



More information about the mesa-dev mailing list