summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/freedreno
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2015-03-18 09:51:57 -0400
committerRob Clark <[email protected]>2015-03-18 10:42:33 -0400
commitaee26d292f165438577426f5e62a62ec2a1514c9 (patch)
tree2c263cc03bb3bb22dc4d65a4c5e8c5e750a221da /src/gallium/drivers/freedreno
parent62cc003b7d2031c2321f4698bd5b97cc97261c07 (diff)
freedreno/ir3: fix infinite recursion in sched
One more case we need to handle. One of the src instructions for the indirect could also end up being ourself. Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno')
-rw-r--r--src/gallium/drivers/freedreno/ir3/ir3_sched.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3_sched.c b/src/gallium/drivers/freedreno/ir3/ir3_sched.c
index c1921d04e4e..94237c33ff8 100644
--- a/src/gallium/drivers/freedreno/ir3/ir3_sched.c
+++ b/src/gallium/drivers/freedreno/ir3/ir3_sched.c
@@ -283,7 +283,7 @@ static int trysched(struct ir3_sched_ctx *ctx,
* on ourself (ie. avoid infinite recursion):
*/
foreach_ssa_src(src, indirect) {
- if (src == instr)
+ if ((src == instr) || (src->address == instr))
continue;
delay = trysched(ctx, src);
if (delay)