mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 07:20:10 +01:00
radeonsi: deduplicate min_esverts code in gfx10_ngg_calculate_subgroup_info
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13829>
This commit is contained in:
parent
9d7ac70ffb
commit
cdeecadcb6
1 changed files with 5 additions and 14 deletions
|
|
@ -2204,7 +2204,8 @@ bool gfx10_ngg_calculate_subgroup_info(struct si_shader *shader)
|
|||
unsigned gsprim_lds_size = 0;
|
||||
|
||||
/* All these are per subgroup: */
|
||||
const unsigned min_esverts = gs_sel->screen->info.chip_class >= GFX10_3 ? 29 : 24;
|
||||
const unsigned min_esverts =
|
||||
gs_sel->screen->info.chip_class >= GFX10_3 ? 29 : (24 - 1 + max_verts_per_prim);
|
||||
bool max_vert_out_per_gs_instance = false;
|
||||
unsigned max_gsprims_base = gs_sel->screen->ngg_subgroup_size; /* default prim group size clamp */
|
||||
unsigned max_esverts_base = gs_sel->screen->ngg_subgroup_size;
|
||||
|
|
@ -2290,9 +2291,6 @@ retry_select_mode:
|
|||
max_esverts = MIN2(max_esverts, max_gsprims * max_verts_per_prim);
|
||||
|
||||
/* Hardware restriction: minimum value of max_esverts */
|
||||
if (gs_sel->screen->info.chip_class == GFX10)
|
||||
max_esverts = MAX2(max_esverts, min_esverts - 1 + max_verts_per_prim);
|
||||
else
|
||||
max_esverts = MAX2(max_esverts, min_esverts);
|
||||
|
||||
max_gsprims = align(max_gsprims, wavesize);
|
||||
|
|
@ -2311,15 +2309,8 @@ retry_select_mode:
|
|||
} while (orig_max_esverts != max_esverts || orig_max_gsprims != max_gsprims);
|
||||
|
||||
/* Verify the restriction. */
|
||||
if (gs_sel->screen->info.chip_class == GFX10)
|
||||
assert(max_esverts >= min_esverts - 1 + max_verts_per_prim);
|
||||
else
|
||||
assert(max_esverts >= min_esverts);
|
||||
} else {
|
||||
/* Hardware restriction: minimum value of max_esverts */
|
||||
if (gs_sel->screen->info.chip_class == GFX10)
|
||||
max_esverts = MAX2(max_esverts, min_esverts - 1 + max_verts_per_prim);
|
||||
else
|
||||
max_esverts = MAX2(max_esverts, min_esverts);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue