Module: Mesa
Branch: 11.0
Commit: 0f98683c83d92a4b430ee61b654625a435932b2e
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0f98683c83d92a4b430ee61b654625a435932b2e

Author: Emil Velikov <[email protected]>
Date:   Sat Dec 19 00:19:14 2015 +0000

Revert "i965/vec4: Use byte offsets for UBO pulls on Sandy Bridge"

This reverts commit 34cbde2e6320a55f54180e7f9f68db435b58e542.

As mentioned in the beginning of this revert series - let's pull the lot
out, as they cause regressions.

Additionally they are bugfixes (as opposed to regression fixes), which
if needed will need to be reworked.

---

 src/mesa/drivers/dri/i965/brw_vec4_generator.cpp |   17 ++---------------
 src/mesa/drivers/dri/i965/brw_vec4_nir.cpp       |   18 +++++-------------
 src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp   |    6 +++---
 3 files changed, 10 insertions(+), 31 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp 
b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
index 1b2ce15..92050b9 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp
@@ -996,21 +996,8 @@ 
vec4_generator::generate_pull_constant_load(vec4_instruction *inst,
 
    gen6_resolve_implied_move(p, &header, inst->base_mrf);
 
-   if (devinfo->gen >= 6) {
-      if (offset.file == BRW_IMMEDIATE_VALUE) {
-         brw_MOV(p, retype(brw_message_reg(inst->base_mrf + 1),
-                           BRW_REGISTER_TYPE_D),
-                 brw_imm_d(offset.dw1.ud >> 4));
-      } else {
-         brw_SHR(p, retype(brw_message_reg(inst->base_mrf + 1),
-                           BRW_REGISTER_TYPE_D),
-                 offset, brw_imm_d(4));
-      }
-   } else {
-      brw_MOV(p, retype(brw_message_reg(inst->base_mrf + 1),
-                        BRW_REGISTER_TYPE_D),
-              offset);
-   }
+   brw_MOV(p, retype(brw_message_reg(inst->base_mrf + 1), BRW_REGISTER_TYPE_D),
+          offset);
 
    uint32_t msg_type;
 
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp 
b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
index b2adb9a..23b2fab 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
@@ -660,20 +660,12 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr 
*instr)
       unsigned const_offset = instr->const_index[0];
       src_reg offset;
 
-      if (devinfo->gen <= 6) {
-         if (!has_indirect)  {
-            offset = src_reg(const_offset & ~15);
-         } else {
-            offset = get_nir_src(instr->src[1], nir_type_int, 1);
-         }
+      if (!has_indirect)  {
+         offset = src_reg(const_offset / 16);
       } else {
-         if (!has_indirect)  {
-            offset = src_reg(const_offset & ~15);
-         } else {
-            offset = src_reg(this, glsl_type::uint_type);
-            emit(SHR(dst_reg(offset), get_nir_src(instr->src[1], nir_type_int, 
1),
-                     src_reg(4u)));
-         }
+         offset = src_reg(this, glsl_type::uint_type);
+         emit(SHR(dst_reg(offset), get_nir_src(instr->src[1], nir_type_int, 1),
+                  src_reg(4u)));
       }
 
       src_reg packed_consts = src_reg(this, glsl_type::vec4_type);
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp 
b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
index 005c8b1..9062bcc 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
@@ -3432,10 +3432,10 @@ vec4_visitor::get_pull_constant_offset(bblock_t * 
block, vec4_instruction *inst,
       emit_before(block, inst, ADD(dst_reg(index), *reladdr,
                                    src_reg(reg_offset)));
 
-      /* Pre-gen7, the message header uses byte offsets instead of vec4
+      /* Pre-gen6, the message header uses byte offsets instead of vec4
        * (16-byte) offset units.
        */
-      if (devinfo->gen < 7) {
+      if (devinfo->gen < 6) {
          emit_before(block, inst, MUL(dst_reg(index), index, src_reg(16)));
       }
 
@@ -3446,7 +3446,7 @@ vec4_visitor::get_pull_constant_offset(bblock_t * block, 
vec4_instruction *inst,
       emit_before(block, inst, MOV(dst_reg(offset), src_reg(reg_offset)));
       return offset;
    } else {
-      int message_header_scale = devinfo->gen < 7 ? 16 : 1;
+      int message_header_scale = devinfo->gen < 6 ? 16 : 1;
       return src_reg(reg_offset * message_header_scale);
    }
 }

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to