Services > Shader Compiler Services

Your One Stop for Shader Compiler Development and Shader Compiler Optimization

Is an off-the-shelf compiler not meeting your workflow requirements? Could you use size, performance, or other custom optimizations? If so, read on for some background information about shaders.

A shader is simply a program that runs in the graphics pipeline and tells the computer how to render each pixel. These programs are called shaders because they’re often used to control lighting and shading effects, but there’s no reason they can’t handle other special effects. Shaders can be complex, performing many advanced effects for each pixel for every frame drawn. Here’s an example of a GLSL fragment shader being applied to an image. Note how shading is used to add reflections of the trees and the sky on the water, enhancing the realism of the scene.

Original
GLSL fragment shader applied to the water

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

Our Extensive Shader Compiler Experience

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™.

Shader Compiler Services

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.

A Few Reasons to Choose LunarG

  • Our ability to upstream open source, create open standards or proprietary solutions, and tailor our solutions and support to meet your needs
  • Our extensive shader-compiler, software engineering, and project management experience
  • Our ability to leverage open source software to create customized solutions
  • Our quality and timeliness
  • Our professionalism

Benefits of Using Our Services

  • Allows you to quickly tap into extensive shader-compiler language and technology expertise to complete your projects
  • Saves your team significant time by not having to figure everything out yourself
White Paper

SPIR-V Legalization and Size Reduction Using spirv-opt

Learn how to use SPIR-V Opt to reduce SPIR-V size.

Download White Paper

Need Help with
3D Graphics Software?

Interested in LunarG software services or have a unique need that you don't see represented here? Let's talk about your project...