aco: fix voffset missing when buffer store base >=4096
Regression on test:
dEQP-GLES31.functional.geometry_shading.basic.output_256
voffset is missing if buffer store base >=4096, we need to
re-calculate offen after resolve_excess_vmem_const_offset().
Fixes: cdaf269924
("aco: inline store_vmem_mubuf/emit_single_mubuf_store")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32767>
This commit is contained in:
@@ -7092,6 +7092,9 @@ visit_store_buffer(isel_context* ctx, nir_intrinsic_instr* intrin)
|
||||
unsigned const_offset = resolve_excess_vmem_const_offset(
|
||||
bld, write_voffset, offsets[i] + nir_intrinsic_base(intrin));
|
||||
|
||||
/* write_voffset may be updated in resolve_excess_vmem_const_offset(). */
|
||||
offen = write_voffset.id();
|
||||
|
||||
Operand vaddr_op(v1);
|
||||
if (offen && idxen)
|
||||
vaddr_op = bld.pseudo(aco_opcode::p_create_vector, bld.def(v2), idx, write_voffset);
|
||||
|
Reference in New Issue
Block a user