On Thu, Jul 31, 2014 at 1:05 PM, Eric Anholt <e...@anholt.net> wrote: > Connor Abbott <cwabbo...@gmail.com> writes: >> That's not necessarily true - you could want to spill a trivially >> colored register that interferes with a non trivially colored >> register, especially if the spill cost of the non trivially colored >> register is higher than that of the trivially colored register because >> e.g. the non trivially colored register is used in a loop. Especially, >> I ran into trouble with the varying packing tests in piglit which >> after a few rounds of spilling looked something like: > > If it's trivially colorable, then when you're trying to get a > non-conflicting color for a difficult neighbor (an optimistic-coloring > one near the top of the stack that's triggering the need for spilling), > it's out consideration because it's deeper in the stack.
Right... so in that case, can't we just ignore everything on the stack below the node that couldn't be colored in ra_select()? Anyways, I don't think that's the reason for the regression... I tried doing what I had suggested (that considers even less things for spilling) and it regresses the same shader even worse (sigh...). So I think the strategy the old code was doing just happened to work out, and it's impossible to choose a good spilling candidate every time with only the limited information the allocator has about the shader itself. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev