mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 20:08:06 +02:00
aco: Reset scratch_rsrc on blocks without predecessors
Fixes hangs with raytracing in Hellblade: Senua's Sacrifice. Fixes:3d4f6a00b('aco/spill: allow for disconnected CFG') Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23586> (cherry picked from commit7f3cfcc96a)
This commit is contained in:
parent
20448890ff
commit
69df6917c0
2 changed files with 6 additions and 1 deletions
|
|
@ -2308,7 +2308,7 @@
|
|||
"description": "aco: Reset scratch_rsrc on blocks without predecessors",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "3d4f6a00b8e8710bbc265f8a5e3050d0550e1491"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1747,6 +1747,11 @@ assign_spill_slots(spill_ctx& ctx, unsigned spills_to_vgpr)
|
|||
last_top_level_block_idx = block.index;
|
||||
|
||||
end_unused_spill_vgprs(ctx, block, vgpr_spill_temps, slots, ctx.spills_entry[block.index]);
|
||||
|
||||
/* If the block has no predecessors (for example in RT resume shaders),
|
||||
* we cannot reuse the current scratch_rsrc temp because its definition is unreachable */
|
||||
if (block.linear_preds.empty())
|
||||
ctx.scratch_rsrc = Temp();
|
||||
}
|
||||
|
||||
std::vector<aco_ptr<Instruction>>::iterator it;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue