aco/spill: Fix spilling of Phi operands
By adding the renamed variable, phi operands got spilled twice at the precessors. Fixes: dEQP-VK.ray_query.misc.dynamic_indexing Closes: #7493 Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19109>
This commit is contained in:

committed by
Marge Bot

parent
829f769e60
commit
ebf7f7a182
@@ -8,6 +8,3 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_8.mu
|
||||
dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.gpu.access_sbt_read,Crash
|
||||
dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.gpu.stage_all_transfer,Crash
|
||||
dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.gpu.stage_as_copy_bit,Crash
|
||||
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7493
|
||||
dEQP-VK.ray_query.misc.dynamic_indexing,Crash
|
||||
|
@@ -9,6 +9,3 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_8.mu
|
||||
dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.gpu.access_sbt_read,Crash
|
||||
dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.gpu.stage_all_transfer,Crash
|
||||
dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.gpu.stage_as_copy_bit,Crash
|
||||
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7493
|
||||
dEQP-VK.ray_query.misc.dynamic_indexing,Crash
|
||||
|
@@ -8,6 +8,3 @@ dEQP-VK.rasterization.rasterization_order_attachment_access.stencil.samples_8.mu
|
||||
dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.gpu.access_sbt_read,Crash
|
||||
dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.gpu.stage_all_transfer,Crash
|
||||
dEQP-VK.ray_tracing_pipeline.acceleration_structures.copy_within_pipeline.gpu.stage_as_copy_bit,Crash
|
||||
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7493
|
||||
dEQP-VK.ray_query.misc.dynamic_indexing,Crash
|
||||
|
@@ -920,8 +920,10 @@ add_coupling_code(spill_ctx& ctx, Block* block, unsigned block_idx)
|
||||
pred.instructions[idx]->opcode != aco_opcode::p_logical_end);
|
||||
std::vector<aco_ptr<Instruction>>::iterator it = std::next(pred.instructions.begin(), idx);
|
||||
pred.instructions.insert(it, std::move(spill));
|
||||
|
||||
/* Add the original name to predecessor's spilled variables */
|
||||
if (spill_op.isTemp())
|
||||
ctx.spills_exit[pred_idx][spill_op.getTemp()] = spill_id;
|
||||
ctx.spills_exit[pred_idx][phi->operands[i].getTemp()] = spill_id;
|
||||
}
|
||||
|
||||
/* remove phi from instructions */
|
||||
|
Reference in New Issue
Block a user