aco: Fix RT VGPR limit on Navi31/32, GFX11.5, GFX12
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Since 128 is not a multiple of the VGPR allocation granule, we will
actually allocate 134 VGPRs. No reason not to use the extra 6.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34265>
This commit is contained in:
Natalie Vock 2025-02-17 18:42:47 +01:00 committed by Marge Bot
parent c0be0a845d
commit d1ff9e951a

View file

@ -95,7 +95,7 @@ init_program(Program* program, Stage stage, const struct aco_shader_info* info,
/* apparently gfx702 also has 16-bank LDS but I can't find a family for that */
program->dev.has_16bank_lds = family == CHIP_KABINI || family == CHIP_STONEY;
program->dev.vgpr_limit = stage == raytracing_cs ? 128 : 256;
program->dev.vgpr_limit = 256;
program->dev.physical_vgprs = 256;
program->dev.vgpr_alloc_granule = 4;
@ -128,6 +128,9 @@ init_program(Program* program, Stage stage, const struct aco_shader_info* info,
program->dev.sgpr_limit = 104;
}
if (program->stage == raytracing_cs)
program->dev.vgpr_limit = util_align_npot(128, program->dev.vgpr_alloc_granule);
program->dev.scratch_alloc_granule = gfx_level >= GFX11 ? 256 : 1024;
program->dev.max_waves_per_simd = 10;