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

Reply via email to