mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 01:28:07 +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>
This commit is contained in:
parent
67a0f2532f
commit
7f3cfcc96a
1 changed files with 5 additions and 0 deletions
|
|
@ -1755,6 +1755,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