On Tue, Jul 26, 2016 at 10:20 PM, Timothy Arceri
<timothy.arc...@collabora.com> wrote:
> The ultimate goal is to be able to convert to NIR and make use of its
> optimisations before assigning varying and uniform locations. This
> should allow us to start removing some of the GLSL IR optimisation
> passes.

I'm very excited about this!

> This series falls short of making use of NIR because lower_packed_varyings()
> modifies the IR after we assign varying locations. I can see two ways
> around this, listing them in increasing difficultly level they would be:
>
> - replacing the current packing pass with one that follows the packing
> rules of ARB_enhanced_layouts this would mean we can no longer pack
> across slots and matrix and array packing effectivness would be slightly
> decreased.
> - write a NIR packing pass.

Specifically a NIR implementation of lower_packed_varyings(), right?

>
> Even without converting to NIR this series solves a number of the other
> problems with converting to NIR earlier and provides a nice shader-db
> improvement on its own.
>
> Broadwell shader-db results:
>
> total instructions in shared programs: 8651650 -> 8644415 (-0.08%)
> instructions in affected programs:     38754 -> 31519 (-18.67%)
> total loops in shared programs:        2085 -> 2085 (0.00%)
> helped:                                320
> HURT:                                  0
> GAINED:                                0

Impressive.

> Ivybridge reported no difference.

I suspect that's because Ivybridge's vertex shader is vec4, and we
don't dead code eliminate individual *components* of varyings, whereas
on Broadwell with scalar vertex shaders we're able to eliminate those
dead components.

Thanks so much for working on this!
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to