Vulkan Shading IR (SPIR-V)
A few examples of different types of shading include:
Vertex Shading – For positioning vertices and tagging them with attributes to interpolate across triangles
Tessellation and Geometry Shading – For refining triangle geometry and values to interpolate
Fragment (or pixel) Shading – For coloring individual pixels based on the interpolated values, texturing, and programmed procedures
Shaders are typically written in a C-like language, known as GLSL (GLslang) for OpenGL® and HLSL (High-Level Shader Language) for DirectX D3D. SPIR-V™ is a binary intermediate representation for graphical-shader stages and compute kernels. With Vulkan®, an application can still write its shaders in a high-level shading language such as GLSL or HLSL. However a SPIR-V binary is needed when using vkCreateShaderModule in Vulkan. This is why there are multiple front-end compilers for GLSL and HLSL to convert to SPIR-V.
LunarG has extensive shader compiler language and technology experience which comes from years of working on shader compiler stacks for clients and our own open-source and proprietary development projects. Our team has contributed to improvements in SPIR-V Opt and GLslang. We have also created a number of innovative shader‐compiler components, including LunarGLASS™, LunarGOO™, and Glassy Mesa™.
Developing and Optimizing Shader Compilers
LunarG offers engineering services for shader compiler development, optimization, bug fixes, and integration for:
Vulkan Shading IR (SPIR-V)
OpenGL® Shading Language (GLSL)
OpenGL ES Shading Language (ESSL)
High-Level Shading Language (HLSL)
We also provide optional support and warranties for our services, so you can rest assured your solution will continue to work smoothly after launch.
Learn how to use SPIR-V Opt to reduce SPIR-V size.
Download White PaperInterested in LunarG software services or have a unique need that you don't see represented here? Let's talk about your project...