radeonsi/gfx11: prefer Wave64 for VS/TCS/TES/GS because it's slightly faster

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26307>
This commit is contained in:
Marek Olšák 2023-11-24 19:26:14 -05:00 committed by Marge Bot
parent 257f07f499
commit c77bcf00a3

View file

@ -75,12 +75,16 @@ unsigned si_determine_wave_size(struct si_screen *sscreen, struct si_shader *sha
if (sscreen->info.gfx_level < GFX11 && stage == MESA_SHADER_FRAGMENT && !info->num_inputs)
return 32;
/* There are a few very rare cases where VS is better with Wave32, and there are no known
* cases where Wave64 is better.
/* Gfx10: There are a few very rare cases where VS is better with Wave32, and there are no
* known cases where Wave64 is better.
*
* Wave32 is disabled for GFX10 when culling is active as a workaround for #6457. I don't
* know why this helps.
*
* Gfx11: Prefer Wave64 because it's slightly better than Wave32.
*/
if (stage <= MESA_SHADER_GEOMETRY &&
(sscreen->info.gfx_level == GFX10 || sscreen->info.gfx_level == GFX10_3) &&
!(sscreen->info.gfx_level == GFX10 && shader && shader->key.ge.opt.ngg_culling))
return 32;