Geometry Shader Support For RadeonSI's NIR Back-End
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.
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.
13 Comments