broadcom/compiler: fix DAG pre-remove for merged instructions
When selecting an instruction to merge, we want to pre-remove that instruction from the DAG, not the one we are merging it in, which we had already pre-removed right before. The reason this was not causing problems before is that the consequence of this bug is we will choose the same instruction again in the merge loop and trying to merge that instruction twice will fail and we would break out of the merge loop and move on. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9304>
This commit is contained in:
@@ -1512,7 +1512,7 @@ schedule_instructions(struct v3d_compile *c,
|
||||
scoreboard,
|
||||
chosen))) {
|
||||
time = MAX2(merge->unblocked_time, time);
|
||||
pre_remove_head(scoreboard->dag, chosen);
|
||||
pre_remove_head(scoreboard->dag, merge);
|
||||
list_addtail(&merge->link, &merged_list);
|
||||
(void)qpu_merge_inst(devinfo, inst,
|
||||
inst, &merge->inst->qpu);
|
||||
|
Reference in New Issue
Block a user