Geometry Shader Support For RadeonSI's NIR Back-End
Written by Michael Larabel in Radeon on 10 November 2017 at 06:27 AM EST. 13 Comments
AMD this year has been developing a NIR back-end for the RadeonSI Gallium3D driver in part for supporting the ARB_gl_spirv extension in being able to re-use/share some code with the RADV Vulkan driver that obviously already deals with SPIR-V and relies on NIR for its intermediate representation. Now support for geometry shaders is coming to RadeonSI NIR.

If enabling the NIR back-end for RadeonSI (right now via R600_DEBUG=nir), only OpenGL 3.1 support has been exposed since geometry and tessellation shaders have not been supported with this back-end. But now Timothy Arceri of Valve has been working on geometry shader support for RadeonSI's NIR code in scratching another item off the TODO list.

This NIR back-end merged this summer into Mesa Git but as mentioned is disabled by default for now and the ARB_gl_spirv support is yet to be implemented for RadeonSI. This SPIR-V ingestion support remains the lone major feature not yet supported by the Intel/Radeon OpenGL drivers within Mesa for OpenGL 4.6 support.

In the future RadeonSI may switch to NIR completely but obviously the driver's current code isn't good enough yet, but supporting geometry shaders (GS) is another step in that direction.

The tentative geometry shader code for RadeonSI NIR can be found on Mesa-dev but for now its currently a work-in-progress, including the need for more changes for RX Vega support.
Related News
About The Author
Author picture

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 or contacted via

Popular News This Week