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