The Slang shading language and compiler is a proven open-source technology empowering real-time graphics developers with flexible, innovative features that complement existing shading languages, including neural computation inside graphics shaders. Slang’s support for modular code significantly simplifies the development and maintenance of large codebases, while its compiler enables smooth migration paths for existing HLSL and GLSL shaders. The Slang compiler also supports multiple backend targets for portable code deployment across diverse APIs and platforms.
View the Slang Launch DeckDiscover the continuously evolving benefits of Slang.
Slang can automatically generate both forward and backward derivative propagation code for complex functions that involve arbitrary control flow and dynamic dispatch. This allows existing rendering codebases to easily become differentiable, or for Slang to serve as the kernel language in a PyTorch-driven machine learning framework via slangtorch.
Automatic DifferentiationSlang provides a module system that enables logical organization of code for separate compilation. Slang modules can be independently compiled offline to a custom IR (with optional obfuscation) and then linked at runtime to generate code in formats such as DXIL or SPIR-V.
Module systemSlang supports generics and interfaces (a.k.a. type traits/protocols), allowing for clear expression of shader specialization without the need for preprocessor techniques or string-pasting. Unlike C++ templates, Slang’s generics are pre-checked and don’t produce cascading error messages that are difficult to diagnose. The same generic shader can be specialized for a variety of different types to produce specialized code ahead of time, or on the fly, entirely under application control.
Generics and InterfacesSlang’s syntax is similar to HLSL, and most existing HLSL code can be compiled with the Slang compiler out-of-the-box, or with just minor modifications. This allows existing shader codebases to immediately benefit from Slang without requiring a complete rewrite or port. Slang provides a compatibility module that enables the use of most GLSL intrinsic functions and GLSL’s parameter binding syntax.
Port from HLSLSlang comes with full support of IntelliSense editing features in Visual Studio Code and Visual Studio through the Language Server Protocol. Full debugging capabilities are also available through RenderDoc and SPIR-V based tools.
ToolsSlang is now hosted as a Khronos Group open-source project, fostering industry-wide collaboration to propel its ongoing growth and evolution. While Slang has been available as open source for a while, establishing multi-company governance is essential to build industry trust by ensuring that Slang remains independent and not controlled by, or dependent on, single entity. This trust empowers the graphics industry to collaboratively invest in and depend on Slang for business-critical applications.