About Slang

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 Deck
View All News & Events

What's New

#

Khronos Hosts Open Source Slang Shading Language and Compiler

21 Nov 2024
Read News Item
#

There’s a lot going on with Slang!

21 Nov 2024
Read Blog
#

Using Slang with Vulkan

31 Aug 2024
Read More

Why Slang?

Discover the continuously evolving benefits of Slang.

Proven

Slang is an open-source shading language compiler leveraged by industry-leading organizations on real-world, production projects and codebases.

Open and Accessible

Slang moving from NVIDIA to Khronos Group hosted multi-vendor governance encourages deeper collaboration with the open-source community and wider ecosystem adoption.

Flexible

Slang is a fast-moving language designed specifically to meet the evolving needs of real-time rendering applications, including the leveraging of neural graphics techniques.

Productive

Slang streamlines the development and maintenance of large, complex shader codebases, with a proactive vision for shader language evolution. The Slang compiler also provides onramps for existing HLSL and GLSL codebases.

Portable

Slang supports multiple backends, enabling shader code to be written once to run almost anywhere.

Performant

Slang's modular compilation support drives down overall compile times, delivering more reusable modules and dynamic shader linking.

Write Shaders Once, Run Anywhere

The Slang compiler can generate code for a wide variety of targets: D3D12, Vulkan, Metal, D3D11, OpenGL, CUDA, WebGPU and even generate code to run on a CPU. For textual targets, such as Metal Shading Language (MSL) and CUDA, Slang produces readable code that preserves original identifier names, as well as the type and call structure, making it easier to debug.

Access the Latest GPU Features

Slang code is highly portable, but can still leverage unique platform capabilities, including the latest features in Direct3D and Vulkan. For example, developers can make full use of pointers when generating SPIR-V. Slang's capability system helps applications manage feature set differences across target platforms by ensuring code only uses available features during the type-checking step, before generating final code. Additionally, Slang provides flexible interop features to enable directly embedding target code or SPIR-V into generated shaders.

Leverage Neural Graphics with Automatic Differentiation

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 Differentiation

Scalable Software Development with Modules

Slang 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 system

Code Specialization that Works with Modules

Slang 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 Interfaces

Easy On-ramp for HLSL and GLSL Codebases

Slang’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 HLSL

Comprehensive Tooling Support

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

Tools

Open Governance

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