radv/aco,nir/lower_subgroups: don't lower elect
ACO can implement this better. fossil-db (Navi): Totals from 33 (0.02% of 135946) affected shaders: SGPRs: 1736 -> 1744 (+0.46%) VGPRs: 1680 -> 1656 (-1.43%) CodeSize: 246160 -> 245916 (-0.10%); split: -0.14%, +0.04% MaxWaves: 449 -> 461 (+2.67%) Instrs: 48301 -> 48266 (-0.07%); split: -0.12%, +0.05% Cycles: 469740 -> 469240 (-0.11%); split: -0.18%, +0.08% Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6558>
This commit is contained in:
@@ -4440,6 +4440,7 @@ typedef struct nir_lower_subgroups_options {
|
||||
bool lower_quad:1;
|
||||
bool lower_quad_broadcast_dynamic:1;
|
||||
bool lower_quad_broadcast_dynamic_to_const:1;
|
||||
bool lower_elect:1;
|
||||
} nir_lower_subgroups_options;
|
||||
|
||||
bool nir_lower_subgroups(nir_shader *shader,
|
||||
|
||||
@@ -550,6 +550,9 @@ lower_subgroups_instr(nir_builder *b, nir_instr *instr, void *_options)
|
||||
}
|
||||
|
||||
case nir_intrinsic_elect: {
|
||||
if (!options->lower_elect)
|
||||
return NULL;
|
||||
|
||||
nir_intrinsic_instr *first =
|
||||
nir_intrinsic_instr_create(b->shader,
|
||||
nir_intrinsic_first_invocation);
|
||||
|
||||
Reference in New Issue
Block a user