IN THIS ARTICLE
AZSLc, The Amazon Shading Language Compiler
Amazon Shading Language Compiler (AZSLc) is the front-end compiler of the Atom Renderer shader build pipeline. AZSLc is open source, and supports Windows, macOS, and Linux. The source code for AZSLc is available on GitHub here: Amazon Shading Language Compiler .
Shader build pipeline
AZSLc serves the following two purposes:
- Transpile shaders written in Amazon Shading Language (AZSL) into high-level shader language (HLSL).
- Extracts reflection data from the
.azsl
files including the shader constants layout, resource binding information, shader variant options, and more. The result outputs into JSON files.
AZSLc, platform-specific shader compilers, shader asset builders, and Asset Processor work together to process .azsl
source assets into product assets that the engine can consume. Asset Processor automatically detects new and updated .azsl
source assets that are placed in project or Gem scan directories. Shader asset builders provide process job information about the .azsl
source assets to Asset Processor. When .azsl
source assets are processed, AZSLc transpiles the shader source to high-level shader language (HLSL). The shader product assets are compiled for the specified target platforms by DirectX Shader Compiler (DXC) and SPIRV-Cross.
For more information on the shader build pipeline, refer to Shader Build Pipeline.
Running AZSLc
The AZSLc executable is located in the \Builders\AZSLc\
directory of the Open 3D Engine (O3DE) build target directory.
There are many command line arguments that can be given to AZSLc. One of the more important optional arguments is --no-ms
which transpiles mulitsample anti-aliasing (MSAA) functions and variables to their non-MSAA counterpart.
For a complete list of available command line arguments for AZSLc, run the azslc
executable in a terminal with the --help
argument.