i965/vec4: Use UD rather than D for uniform indirects
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 8 Apr 2016 17:49:02 +0000 (10:49 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 14 Apr 2016 21:25:01 +0000 (14:25 -0700)
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_vec4_nir.cpp
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp

index d24cdea50ebb785236a81f41f10531fad6bc0914..80845dc97cc6b74f6905388eccce79e80cd39cb3 100644 (file)
@@ -709,7 +709,7 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr)
          assert(const_offset->u32[0] % 16 == 0);
          src.reg_offset = const_offset->u32[0] / 16;
       } else {
-         src_reg tmp = get_nir_src(instr->src[0], BRW_REGISTER_TYPE_D, 1);
+         src_reg tmp = get_nir_src(instr->src[0], BRW_REGISTER_TYPE_UD, 1);
          src.reladdr = new(mem_ctx) src_reg(tmp);
       }
 
index a06d696a5e4ab9c633a58dd6f25d5720333f68af..c7cf33ff6b43a4c3cc0d96fa0012e17c12f5ee72 100644 (file)
@@ -758,7 +758,7 @@ vec4_visitor::emit_pull_constant_load_reg(dst_reg dst,
       pull->mlen = 2;
       pull->header_size = 1;
    } else if (devinfo->gen >= 7) {
-      dst_reg grf_offset = dst_reg(this, glsl_type::int_type);
+      dst_reg grf_offset = dst_reg(this, glsl_type::uint_type);
 
       grf_offset.type = offset_reg.type;
 
@@ -1594,14 +1594,14 @@ vec4_visitor::emit_pull_constant_load(bblock_t *block, vec4_instruction *inst,
 
    src_reg offset;
    if (orig_src.reladdr) {
-      offset = src_reg(this, glsl_type::int_type);
+      offset = src_reg(this, glsl_type::uint_type);
 
       emit_before(block, inst, ADD(dst_reg(offset), *orig_src.reladdr,
-                                   brw_imm_d(reg_offset * 16)));
+                                   brw_imm_ud(reg_offset * 16)));
    } else if (devinfo->gen >= 8) {
       /* Store the offset in a GRF so we can send-from-GRF. */
-      offset = src_reg(this, glsl_type::int_type);
-      emit_before(block, inst, MOV(dst_reg(offset), brw_imm_d(reg_offset * 16)));
+      offset = src_reg(this, glsl_type::uint_type);
+      emit_before(block, inst, MOV(dst_reg(offset), brw_imm_ud(reg_offset * 16)));
    } else {
       offset = brw_imm_d(reg_offset * 16);
    }