Gallium Nine Is Working On NIR Support So It Can Be Used With Intel Iris, Zink Vulkan

Written by Michael Larabel in Mesa on 8 February 2019 at 07:26 AM EST. 16 Comments
Developers working on the "Gallium Nine" Direct3D 9 state tracker are working on supporting the NIR intermediate representation as an alternative option to the default TGSI IR used traditionally by Gallium3D drivers. In supporting NIR, Gallium Nine opens up to some interesting new possibilities.

The work isn't complete, but there are patches pending that further along their goal of supporting NIR as an alternative to TGSI with this Gallium3D state tracker. So far they are testing Gallium Nine's NIR support with the NIR back-end option in RadeonSI, but by supporting NIR there are a few interesting scenarios:

- Their primary motivation in supporting NIR by Gallium Nine is for allowing this Direct3D 9 support for Wine-based gaming to work with Intel's in-development "Iris" Gallium3D driver. Iris is the future OpenGL driver for Intel Broadwell graphics hardware and newer. Iris is designed to use NIR rather than TGSI, so for Nine to work on it, this NIR support needs to be in place.

- An interesting possibility too in Gallium Nine supporting NIR is that it may eventually work with Zink, the months old effort for running OpenGL on top of Vulkan. But with Zink's approach leveraging Gallium3D and translating the Gallium3D calls from the Mesa OpenGL state tracker to Vulkan, it could be possible to change this upper-layer for Nine instead. In other words, the Direct3D 9 support with Gallium Nine in Gallium3D then running on top of Zink for using Vulkan drivers for rendering rather than the Gallium3D/OpenGL drivers.

- Nine might also work out then with other NIR-focused Gallium3D drivers like Freedreno and Broadcom VC4/V3D. Though the performance may be another story, at least this Direct3D 9 support might work on these other Gallium3D drivers.

Gallium Nine providing Direct3D 9 support for Wine/Windows games on Linux is beginning to work with Intel's new Iris driver.

As laid out via this bug tracker, at least initially the Gallium Nine plan is to make use of TGSI-to-NIR code paths in bringing up the initial NIR support. With the experimental code, some games work or at least somewhat while other games/demos have rendering problems and glitches. At least good progress is being made and it will certainly be interesting to track its progress.
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