From 0cb5ea512f49fa711f54ac07fd4fc040786c77d5 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Sat, 12 Nov 2022 21:24:08 +0800 Subject: [PATCH] ac/nir/ngg: gs use u_foreach_bit64 to loop all output slots MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Timur Kristóf Signed-off-by: Qiang Yu Part-of: --- src/amd/common/ac_nir_lower_ngg.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/amd/common/ac_nir_lower_ngg.c b/src/amd/common/ac_nir_lower_ngg.c index f794e1853e8..4fd9120cf72 100644 --- a/src/amd/common/ac_nir_lower_ngg.c +++ b/src/amd/common/ac_nir_lower_ngg.c @@ -2559,7 +2559,7 @@ lower_ngg_gs_emit_vertex_with_counter(nir_builder *b, nir_intrinsic_instr *intri nir_ssa_def *current_vtx_per_prim = intrin->src[1].ssa; nir_ssa_def *gs_emit_vtx_addr = ngg_gs_emit_vertex_addr(b, gs_emit_vtx_idx, s); - for (unsigned slot = 0; slot < VARYING_SLOT_MAX; ++slot) { + u_foreach_bit64(slot, b->shader->info.outputs_written) { unsigned packed_location = util_bitcount64((b->shader->info.outputs_written & BITFIELD64_MASK(slot))); gs_output_info *info = &s->output_info[slot]; @@ -2742,10 +2742,7 @@ ngg_gs_export_vertices(nir_builder *b, nir_ssa_def *max_num_out_vtx, nir_ssa_def unsigned num_outputs = 0; vs_output outputs[64]; - for (unsigned slot = 0; slot < VARYING_SLOT_MAX; ++slot) { - if (!(b->shader->info.outputs_written & BITFIELD64_BIT(slot))) - continue; - + u_foreach_bit64(slot, b->shader->info.outputs_written) { gs_output_info *info = &s->output_info[slot]; unsigned mask = gs_output_component_mask_with_stream(info, 0); if (!mask)