radeonsi: always use Wave64 for HS/GS/VS shader stages (except GS fast launch)

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5524>
This commit is contained in:
Marek Olšák 2020-06-16 14:53:03 -04:00 committed by Marge Bot
parent 9049e39804
commit 90cf741d31
1 changed files with 8 additions and 4 deletions

View File

@ -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))