From: Marek Olšák Date: Tue, 16 Jun 2020 18:53:03 +0000 (-0400) Subject: radeonsi: always use Wave64 for HS/GS/VS shader stages (except GS fast launch) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=90cf741d316d231bdc8a67dce8ef1c84a80eeec8;p=mesa.git radeonsi: always use Wave64 for HS/GS/VS shader stages (except GS fast launch) Acked-by: Pierre-Eric Pelloux-Prayer Part-of: --- diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 7364277c962..27b3e9200a5 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -1215,11 +1215,15 @@ static struct pipe_screen *radeonsi_screen_create_impl(struct radeon_winsys *ws, sscreen->compute_wave_size = 64; if (sscreen->info.chip_class >= GFX10) { - /* Pixels shaders: Wave64 is recommended. - * Compute shaders: There are piglit failures with Wave32. + /* Pixel shaders: Wave64 is always fastest. + * Vertex shaders: Wave64 is probably better, because: + * - greater chance of L0 cache hits, because more threads are assigned + * to the same CU + * - scalar instructions are only executed once for 64 threads instead of twice + * - VGPR allocation granularity is half of Wave32, so 1 Wave64 can + * sometimes use fewer VGPRs than 2 Wave32 + * - TessMark X64 with NGG culling is faster with Wave64 */ - sscreen->ge_wave_size = 32; - if (sscreen->debug_flags & DBG(W32_GE)) sscreen->ge_wave_size = 32; if (sscreen->debug_flags & DBG(W32_PS))