radv/nir: lower nir_intrinsic_load_xfb_state_address_gfx12_amd

This intrinsic returns a 64-bit address that points to the streamout
state buffer.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29676>
This commit is contained in:
Samuel Pitoiset
2024-05-29 14:46:32 +02:00
committed by Marge Bot
parent a9b8320031
commit aa9dfcad50

View File

@@ -415,7 +415,10 @@ lower_abi_instr(nir_builder *b, nir_intrinsic_instr *intrin, void *state)
case nir_intrinsic_load_streamout_offset_amd:
replacement = ac_nir_load_arg(b, &s->args->ac, s->args->ac.streamout_offset[nir_intrinsic_base(intrin)]);
break;
case nir_intrinsic_load_xfb_state_address_gfx12_amd:
replacement = nir_pack_64_2x32_split(b, ac_nir_load_arg(b, &s->args->ac, s->args->streamout_state),
nir_imm_int(b, s->address32_hi));
break;
case nir_intrinsic_load_lds_ngg_gs_out_vertex_base_amd:
if (s->info->merged_shader_compiled_separately) {
replacement = GET_SGPR_FIELD_NIR(s->args->ngg_lds_layout, NGG_LDS_LAYOUT_GS_OUT_VERTEX_BASE);