mesa: Fix test for optimistic coloring being necessary.
authorEric Anholt <eric@anholt.net>
Mon, 6 May 2013 20:47:27 +0000 (13:47 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 29 May 2013 17:16:44 +0000 (10:16 -0700)
i965 and radeon use ra_set_node_reg() to force payload registers to
specific registers while exposing those registers to the allocator still.
We were treating those register nodes as unsuccessfully allocated in the
ra_simplify() step, leading to walking the registers again to do
optimistic coloring even if there was nothing left ot do.

Acked-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/program/register_allocate.c

index b8472a210938e15a34eafa6c2c561a60eb2b1f64..16739fd3982617a235d66e1eafab008c23db5706 100644 (file)
@@ -437,7 +437,7 @@ ra_simplify(struct ra_graph *g)
    }
 
    for (i = 0; i < g->count; i++) {
-      if (!g->nodes[i].in_stack)
+      if (!g->nodes[i].in_stack && g->nodes[i].reg == -1)
         return GL_FALSE;
    }