Etnaviv Gallium3D Switches Over To NIR By Default

Written by Michael Larabel in Mesa on 8 November 2021 at 03:30 AM EST. 6 Comments
It's been a while since last having any major progress to report on Etnaviv, the open-source Mesa Gallium3D driver supporting Vivante graphics IP. But a rather fundamental change was made this past week in that Etnaviv is now (finally) using NIR by default.

Emma Anholt made the change so that Etnaviv Gallium3D is now using NIR by default rather than TGSI as Gallium3D's long-standing intermediate representation.

Using NIR by default will allow Etnaviv to share more optimizations with other modern Mesa drivers as well as having performance/efficiency gains compared to the TGSI code path. Most Gallium3D drivers have been working on moving over to NIR by default while now this reverse-engineered Vivante driver is comfortable enough having it too be the default.

Already there are plans to drop Etnaviv's TGSI path to exclusively rely on NIR. With this change for Etnaviv, Emma Anholt for her part has been motivated by this 10 month old merge request for replacing the glsl_to_tgsi() call with glsl_to_nir() and nir_to_gsi(), which that route would eliminate around 17k lines of code from Mesa and improve the code in the process.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week