[Mesa-dev] Call i965 GLSL IR backend optimisation from the common linker

Timothy Arceri timothy.arceri at collabora.com
Wed Jul 27 05:20:41 UTC 2016


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.



More information about the mesa-dev mailing list