From: Jason Ekstrand Date: Fri, 8 Apr 2016 17:49:02 +0000 (-0700) Subject: i965/vec4: Use UD rather than D for uniform indirects X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cb372b39ea15729caf8491f4fd9f12c37a2840df;p=mesa.git i965/vec4: Use UD rather than D for uniform indirects Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp index d24cdea50eb..80845dc97cc 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp @@ -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); } diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index a06d696a5e4..c7cf33ff6b4 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -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); }