Igalia Posts Initial OpenGL SPIR-V Patches For Mesa, Intel i965
Spanish development outfit Igalia has posted their initial work on wiring up the OpenGL 4.6 ARB_gl_spirv and ARB_spirv_extensions into core Mesa and the i965 OpenGL driver.
Igalia developers based some of their initial ARB_gl_spirv / ARB_spirv_extensions work on code started by Nicolai Hähnle of AMD from several months back. Nicolai has been working from the RadeonSI side on supporting these extensions, including the needed NIR back-end for RadeonSI. Intel developers have also been working on some associated Mesa SPIR-V code, with recent patches sent out by Ian Romanick.
As a reminder, these new extensions mandated by OpenGL 4.6 are for allowing the SPIR-V intermediate representation to be consumed by the OpenGL drivers and let GLSL be a source language for creating SPIR-V modules. SPIR-V, of course, being the intermediate representation of Vulkan as well as OpenCL 2.1+.
The 24 patches mailed out today by Igalia's Eduardo Lima Mitev complete the ARB_spirv_extensions work while the main ARB_gl_spirv extension is still being used. With the Intel code wired in they are generating the driver's NIR IR out of each SPIR-V shader.
One big area remaining for this SPIR-V integration is Mesa's current linker being tied tightly with GLSL IR. For that there is the less than ideal but quicker path of turning SPIR-V into GLSL IR so the existing linker could be used or the bigger task of writing a new Mesa linker designed for SPIR-V. That route is still being decided but they might end up developing this new SPIR-V linker if there is support and agreement across the multiple driver teams.
These early ARB_gl_spirv patches for Mesa can be found via the Mesa mailing list. This work is the last main blocker before Intel i965 and RadeonSI can declare OpenGL 4.6 support. It will be interesting to see if they can achieve this in time for Mesa 18.0 due out in mid-to-late Q1.
Igalia developers based some of their initial ARB_gl_spirv / ARB_spirv_extensions work on code started by Nicolai Hähnle of AMD from several months back. Nicolai has been working from the RadeonSI side on supporting these extensions, including the needed NIR back-end for RadeonSI. Intel developers have also been working on some associated Mesa SPIR-V code, with recent patches sent out by Ian Romanick.
As a reminder, these new extensions mandated by OpenGL 4.6 are for allowing the SPIR-V intermediate representation to be consumed by the OpenGL drivers and let GLSL be a source language for creating SPIR-V modules. SPIR-V, of course, being the intermediate representation of Vulkan as well as OpenCL 2.1+.
The 24 patches mailed out today by Igalia's Eduardo Lima Mitev complete the ARB_spirv_extensions work while the main ARB_gl_spirv extension is still being used. With the Intel code wired in they are generating the driver's NIR IR out of each SPIR-V shader.
One big area remaining for this SPIR-V integration is Mesa's current linker being tied tightly with GLSL IR. For that there is the less than ideal but quicker path of turning SPIR-V into GLSL IR so the existing linker could be used or the bigger task of writing a new Mesa linker designed for SPIR-V. That route is still being decided but they might end up developing this new SPIR-V linker if there is support and agreement across the multiple driver teams.
These early ARB_gl_spirv patches for Mesa can be found via the Mesa mailing list. This work is the last main blocker before Intel i965 and RadeonSI can declare OpenGL 4.6 support. It will be interesting to see if they can achieve this in time for Mesa 18.0 due out in mid-to-late Q1.
Add A Comment