aco: fix vgpr alloc granule with wave32
We still need to increase the number of physical vgprs Totals from affected shaders: SGPRS: 671976 -> 675288 (0.49 %) VGPRS: 550112 -> 562596 (2.27 %) Spilled SGPRs: 0 -> 0 (0.00 %) Spilled VGPRs: 0 -> 0 (0.00 %) Code Size: 27621660 -> 27606532 (-0.05 %) bytes Max Waves: 81083 -> 87833 (8.32 %) Instructions: 5391560 -> 5389031 (-0.05 %) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
This commit is contained in:
committed by
Timur Kristóf
parent
01ccd7839c
commit
afe1a8ff5b
@@ -800,11 +800,13 @@ setup_isel_context(Program* program,
|
||||
program->lds_alloc_granule = args->options->chip_class >= GFX7 ? 512 : 256;
|
||||
program->lds_limit = args->options->chip_class >= GFX7 ? 65536 : 32768;
|
||||
program->vgpr_limit = 256;
|
||||
program->vgpr_alloc_granule = 3;
|
||||
|
||||
if (args->options->chip_class >= GFX10) {
|
||||
program->physical_sgprs = 2560; /* doesn't matter as long as it's at least 128 * 20 */
|
||||
program->sgpr_alloc_granule = 127;
|
||||
program->sgpr_limit = 106;
|
||||
program->vgpr_alloc_granule = program->wave_size == 32 ? 7 : 3;
|
||||
} else if (program->chip_class >= GFX8) {
|
||||
program->physical_sgprs = 800;
|
||||
program->sgpr_alloc_granule = 15;
|
||||
|
||||
Reference in New Issue
Block a user