aco/cssa: reset equal_anc_out if merging fails

try_merge_merge_set() expects equal_anc_out to be Temp() in the beginning,
so we need to reset it in case it's used again.

Fixes compilation of metro_exodus/163b3b895730d37b with
VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 18ba93e673 ("aco/cssa: rewrite lower_to_cssa pass")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28248>
This commit is contained in:
Rhys Perry 2024-03-15 11:57:50 +00:00 committed by Marge Bot
parent f72cd2eae7
commit 0c0819f0da

View file

@ -305,8 +305,11 @@ try_merge_merge_set(cssa_ctx& ctx, Temp dst, merge_set& set_b)
while (!dom.empty() && !dominates(ctx, dom.back(), current))
dom.pop_back(); /* not the desired parent, remove */
if (!dom.empty() && interference(ctx, current, dom.back()))
if (!dom.empty() && interference(ctx, current, dom.back())) {
for (Temp t : union_set)
ctx.merge_node_table[t.id()].equal_anc_out = Temp();
return false; /* intersection detected */
}
dom.emplace_back(current); /* otherwise, keep checking */
if (current != dst)