Connor Abbott <cwabbo...@gmail.com> writes:

> Before, we would only consider nodes for spilling if they were
> optimistically pushed onto the stack. But the logic for this was
> complicated, and duplicated some things; also, we might want to spill
> nodes that are not optimistically colored if our heuristic says we
> should. This becomes a problem especially after the next commit, where
> duplicating the current behavior of only spilling optimistically colored
> nodes can sometimes leave the backend in a position where it has no
> registers to spill. So just drop the original logic, and consider
> everything that has its spill cost set for spilling.
>
> HURT:   shaders/steam/dungeon-defenders/5008.shader_test SIMD8: 434 -> 439 
> (1.15%)
>
> total instructions in shared programs: 4547617 -> 4547622 (0.00%)
> instructions in affected programs:     434 -> 439 (1.15%)
> GAINED:                                0
> LOST:                                  0

Interesting.  Is this our only shader that's spilling in the db?
(though, also, something spilling that's only 434 instructions long?  I
don't think I've ever seen that.  Wow.).  Sometimes for poking at this
kind of stuff I'll just reduce the maximum number of registers I let the
allocator handle, so that I have more spilling shaders to look at.

I think this change is a bad idea.  If the register was trivially
colorable, then you don't want to spill it -- it won't help solve your
inability to color whatever node you failed to allocate last time.

Attachment: pgpM_L60nK_Uc.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to