Mesa (master): freedreno/ir3: fix infinite recursion in sched

Rob Clark robclark at kemper.freedesktop.org
Wed Mar 18 14:48:59 UTC 2015


Module: Mesa
Branch: master
Commit: aee26d292f165438577426f5e62a62ec2a1514c9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=aee26d292f165438577426f5e62a62ec2a1514c9

Author: Rob Clark <robclark at freedesktop.org>
Date:   Wed Mar 18 09:51:57 2015 -0400

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 <robclark at freedesktop.org>

---

 src/gallium/drivers/freedreno/ir3/ir3_sched.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/ir3/ir3_sched.c b/src/gallium/drivers/freedreno/ir3/ir3_sched.c
index c1921d0..94237c3 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)




More information about the mesa-commit mailing list