Module: Mesa Branch: master Commit: e44845472a4e04e7b6a82ab6c768f9648729d7e9 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e44845472a4e04e7b6a82ab6c768f9648729d7e9
Author: Rob Clark <robcl...@freedesktop.org> Date: Sun Jul 5 20:17:56 2015 -0400 freedreno/ir3/sched: fixup new instr's block If we split addr/pred, the original instruction could have originated from a different block. If we don't fixup the block ptr we hit asserts later (in debug builds). NOTE: perhaps we don't want to try to preserve addr/pred reg's across block boundaries.. this at least needs some thought in case addr/pred writes end up inside a conditional block.. Signed-off-by: Rob Clark <robcl...@freedesktop.org> --- src/gallium/drivers/freedreno/ir3/ir3_sched.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gallium/drivers/freedreno/ir3/ir3_sched.c b/src/gallium/drivers/freedreno/ir3/ir3_sched.c index 0cb1589..2ee3255 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_sched.c +++ b/src/gallium/drivers/freedreno/ir3/ir3_sched.c @@ -477,6 +477,10 @@ sched_block(struct ir3_sched_ctx *ctx, struct ir3_block *block) if (new_instr) { list_del(&new_instr->node); list_addtail(&new_instr->node, &unscheduled_list); + /* the original instr that wrote addr/pred may have + * originated from a different block: + */ + new_instr->block = block; } } else { _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit