aco: allow spilling to LDS in RT shaders without stack pointer
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

No Foz-DB changes because most RT shaders use function calls now.

Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36367>
This commit is contained in:
Georg Lehmann 2025-10-15 14:54:14 +02:00 committed by Marge Bot
parent 133ef9f94b
commit ae2968c4ec

View file

@ -1887,8 +1887,9 @@ spill(Program* program)
* Limit to single wave workgroups, to avoid needing the wave_id for the offset.
* If we have a scratch stack pointer, don't use LDS at all.
*/
if (program->stage == compute_cs && program->workgroup_size <= program->wave_size &&
!program->stack_ptr.id() && program->gfx_level >= GFX9) {
if ((program->stage == compute_cs || program->stage == raytracing_cs) &&
program->workgroup_size <= program->wave_size && !program->stack_ptr.id() &&
program->gfx_level >= GFX9) {
int used_lds = program->config->lds_size;
unsigned allocated_vgprs = ALIGN_NPOT(limit.vgpr, program->dev.vgpr_alloc_granule);