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.
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. 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 Ivybridge reported no difference. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev