mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-30 07:10:27 +01:00
ir3: restore interval_offset after liveness recalculation in shared RA
This value is usually set by ir3_merge_regs. Since we don't need to call this again after shared RA, we have to copy it manually to the new liveness struct. Fixes:fa22b0901a("ir3/ra: Add specialized shared register RA/spilling") Signed-off-by: Job Noorman <jnoorman@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29497> (cherry picked from commitdc04fd8e62)
This commit is contained in:
parent
903f291c9d
commit
4e9a52ffc7
2 changed files with 5 additions and 1 deletions
|
|
@ -144,7 +144,7 @@
|
|||
"description": "ir3: restore interval_offset after liveness recalculation in shared RA",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "fa22b0901af548d5e1433ad4cdbda314182137c5",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -1423,9 +1423,13 @@ ir3_ra_shared(struct ir3_shader_variant *v, struct ir3_liveness **live_ptr)
|
|||
/* Recalculate liveness and register pressure now that additional values have
|
||||
* been added.
|
||||
* TODO we should only do this if any values have been spilled/reloaded.
|
||||
* Note: since we don't have to recreate merge sets, we have to manually copy
|
||||
* interval_offset to the new liveness struct.
|
||||
*/
|
||||
unsigned interval_offset = live->interval_offset;
|
||||
void *live_mem_ctx = ralloc_parent(live);
|
||||
ralloc_free(live);
|
||||
*live_ptr = ir3_calc_liveness(live_mem_ctx, v->ir);
|
||||
(*live_ptr)->interval_offset = interval_offset;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue