Slang Backend

The Slang backend covers CrossGL-to-Slang generation and Slang source import. It is selected through the slang target and source aliases.

Pipeline

CrossGL output generation is implemented by crosstl.translator.codegen.slang_codegen.SlangCodeGen. The generator emits Slang syntax from the shared translator AST, maps CrossGL types to Slang/HLSL style types, preserves stage entry points, emits constant buffers and resources, and generates helper functions for selected image and texture operations.

Reverse translation uses crosstl.backend.Slang.SlangLexer.SlangLexer and crosstl.backend.Slang.SlangParser.SlangParser to parse Slang source into the Slang backend AST. crosstl.backend.Slang.SlangCrossGLCodeGen then serializes that AST back into CrossGL syntax.

Supported Surface

The backend focuses on Slang shader authoring:

  • imports, exports, typedefs, structs, constant buffers, globals, and functions

  • vertex, fragment, and compute-style entry points represented in the AST

  • Slang/HLSL scalar, vector, matrix, sampler, texture, image, and buffer types

  • image load/store/atomic helpers and texture sampling/query helpers

  • semantics and resource attributes that align with DirectX-style shader code

Implementation Notes

Slang overlaps with the DirectX backend, but it has its own syntax surface and helper generation. Keep Slang-specific resource helper names and type mappings inside SlangCodeGen. Promote a helper to shared code only when DirectX, GLSL, or another backend needs exactly the same behavior.