diff options
author | Marek Olšák <[email protected]> | 2020-06-16 14:53:03 -0400 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-06-30 10:56:41 +0000 |
commit | 90cf741d316d231bdc8a67dce8ef1c84a80eeec8 (patch) | |
tree | 79da2a2a360f762395172da3263b2b39c449e9e8 | |
parent | 9049e39804c876e58b3f9496afed7c055a67e9ee (diff) |
radeonsi: always use Wave64 for HS/GS/VS shader stages (except GS fast launch)
Acked-by: Pierre-Eric Pelloux-Prayer <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5524>
-rw-r--r-- | src/gallium/drivers/radeonsi/si_pipe.c | 12 |
1 files changed, 8 insertions, 4 deletions
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)) |