aco/ra: fix repeated compact_linear_vgprs() in get_reg()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Fixes: b7738de4f9 ("aco/ra: rework linear VGPR allocation")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13431
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35838>
This commit is contained in:
Rhys Perry
2025-06-30 17:12:49 +01:00
committed by Marge Bot
parent e2a2663638
commit dce1d4ad4c
+4 -2
View File
@@ -1934,12 +1934,14 @@ get_reg(ra_ctx& ctx, const RegisterFile& reg_file, Temp temp,
compact_linear_vgprs(ctx, reg_file, pc)) {
parallelcopies.insert(parallelcopies.end(), pc.begin(), pc.end());
/* We don't need to fill the copy definitions in because we don't care about the linear VGPR
* space here. */
RegisterFile tmp_file(reg_file);
for (parallelcopy& copy : pc)
tmp_file.clear(copy.op);
/* Block these registers in case we try compacting linear VGPRs in the recursive get_reg(). */
for (parallelcopy& copy : pc)
tmp_file.block(copy.def.physReg(), copy.def.regClass());
return get_reg(ctx, tmp_file, temp, parallelcopies, instr, operand_index);
}