diff --git a/src/intel/compiler/brw/brw_from_nir.cpp b/src/intel/compiler/brw/brw_from_nir.cpp index 217c167d63e..db6bdb0f9c4 100644 --- a/src/intel/compiler/brw/brw_from_nir.cpp +++ b/src/intel/compiler/brw/brw_from_nir.cpp @@ -5164,10 +5164,9 @@ brw_from_nir_emit_intrinsic(nir_to_brw_state &ntb, unsigned base_offset = nir_intrinsic_base(instr); assert(base_offset % 4 == 0 || base_offset % brw_type_size_bytes(dest.type) == 0); - brw_reg src = brw_uniform_reg( - instr->intrinsic == nir_intrinsic_load_inline_data_intel ? - BRW_INLINE_PARAM_REG : (base_offset / REG_SIZE), - dest.type); + unsigned nr = base_offset / REG_SIZE; + nr += instr->intrinsic == nir_intrinsic_load_inline_data_intel ? BRW_INLINE_PARAM_REG : 0; + brw_reg src = brw_uniform_reg(nr, dest.type); if (nir_src_is_const(instr->src[0])) { unsigned load_offset = nir_src_as_uint(instr->src[0]); diff --git a/src/intel/compiler/brw/brw_shader.cpp b/src/intel/compiler/brw/brw_shader.cpp index 5241365964a..0a9ebd38958 100644 --- a/src/intel/compiler/brw/brw_shader.cpp +++ b/src/intel/compiler/brw/brw_shader.cpp @@ -327,8 +327,9 @@ brw_shader::assign_curb_setup() continue; struct brw_reg brw_reg; - if (inst->src[i].nr == BRW_INLINE_PARAM_REG) { + if (inst->src[i].nr >= BRW_INLINE_PARAM_REG) { brw_reg = cs_payload().inline_parameter; + brw_reg.nr += inst->src[i].nr - BRW_INLINE_PARAM_REG; } else { assert(inst->src[i].nr < 64); used |= BITFIELD64_BIT(inst->src[i].nr);