diff options
author | Timothy Arceri <[email protected]> | 2018-02-21 12:30:30 +1100 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2018-02-22 09:31:00 +1100 |
commit | 79dc94828aedd0edc6085911321e6e7597815478 (patch) | |
tree | b94cd297aab10ccbe93230a1885b4ae0c54626b0 /src/gallium | |
parent | e6269ffc2e15ef98e86c472834ee1a7d9fa52b1e (diff) |
radeonsi/nir: disable GLSL IR loop unrolling
Delaying unrolling and allowing NIR to do it instead has been shown
to result in better code in drivers such as i965. shader-db results
appear to show the same is true for radeonsi.
The other advantage is that using NIR unrolling improves compile
times significantly.
Totals from affected shaders:
SGPRS: 9624 -> 10016 (4.07 %)
VGPRS: 6800 -> 6464 (-4.94 %)
Spilled SGPRs: 0 -> 2 (0.00 %)
Spilled VGPRs: 0 -> 0 (0.00 %)
Private memory VGPRs: 0 -> 0 (0.00 %)
Scratch size: 0 -> 0 (0.00 %) dwords per thread
Code Size: 359176 -> 332264 (-7.49 %) bytes
LDS: 0 -> 0 (0.00 %) blocks
Max Waves: 1355 -> 1432 (5.68 %)
Wait states: 0 -> 0 (0.00 %)
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_get.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_get.c b/src/gallium/drivers/radeonsi/si_get.c index ea1ac1134cf..19426334fb6 100644 --- a/src/gallium/drivers/radeonsi/si_get.c +++ b/src/gallium/drivers/radeonsi/si_get.c @@ -441,6 +441,8 @@ static int si_get_shader_param(struct pipe_screen* pscreen, case PIPE_SHADER_CAP_MAX_SHADER_IMAGES: return SI_NUM_IMAGES; case PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT: + if (sscreen->debug_flags & DBG(NIR)) + return 0; return 32; case PIPE_SHADER_CAP_PREFERRED_IR: if (sscreen->debug_flags & DBG(NIR)) |