brw: Force allow_spilling when spill_all is set

This ensures that g0 is reserved for spilling since there is going to be
spilling.

Fixes: 8bca7e520c ("intel/brw: Only force g0's liveness to be the whole program if spilling")
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37827>
(cherry picked from commit 1fc2f52d36)
This commit is contained in:
Ian Romanick 2025-11-03 11:11:53 -08:00 committed by Eric Engestrom
parent c31904ab25
commit 53e9ba2b61
2 changed files with 7 additions and 1 deletions

View file

@ -2114,7 +2114,7 @@
"description": "brw: Force allow_spilling when spill_all is set",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "8bca7e520ce01a59292c982f3b992bd4a2b3547e",
"notes": null

View file

@ -1388,6 +1388,12 @@ brw_reg_alloc::assign_regs(bool allow_spilling, bool spill_all)
bool
brw_assign_regs(brw_shader &s, bool allow_spilling, bool spill_all)
{
/* Ensure that g0 is reserved for spilling since there is going to be
* spilling.
*/
if (spill_all)
allow_spilling = true;
brw_reg_alloc alloc(&s);
bool success = alloc.assign_regs(allow_spilling, spill_all);
if (!success && allow_spilling) {