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.

Types of Shaders

Original
GLSL fragment shader applied to the water

A few examples of different types of shading include:

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 created SPIR-V optimization passes in SPIRV-Opt and GLslang. In addition, LunarG is the curator/maintainer of the glslang project.

Shader Compiler Services

Developing and Optimizing Shader Compilers

LunarG offers engineering services for shader compiler development, optimization, bug fixes, and integration for:

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.

Partner with LunarG to do impossible things.

The complexity of GPU software development is relentless, but every “unsolvable” problem that comes up is really an opportunity to create a stronger product.

We believe collaboration is one of the great benefits and opportunities of being part of the visual computing community, and our strength is in our shared expertise. While we focus on your GPU coding issues, you can focus on creating unforgettable visual experiences.

Together, we’ll unlock the full power and potential of today’s GPU’s to surpass your customers’ expectations. 
Successful Software Project