Slang Command Line Options
Usage:
slangc [options...] [--] <input files>
# For help
slangc -h
# To generate this file
slangc -help-style markdown -h
Quick Links
- General
- Target
- Downstream
- Debugging
- Repro
- Experimental
- Internal
- Deprecated
- compiler
- language
- language-version
- archive-type
- line-directive-mode
- debug-info-format
- fp-mode
- fp-denormal-mode
- help-style
- optimization-level
- debug-level
- file-system-type
- source-embed-style
- target
- stage
- vulkan-shift
- capability
- file-extension
- help-category
General
General options
-D
-D<name>[=<value>], -D <name>[=<value>]
Insert a preprocessor macro.
The space between - D and <name> is optional. If no <value> is specified, Slang will define the macro with an empty value.
-depfile
-depfile <path>
Save the source file dependency list in a file.
-entry
-entry <name>
Specify the name of an entry-point function.
When compiling from a single file, this defaults to main if you specify a stage using -stage.
Multiple -entry options may be used in a single invocation. When they do, the file associated with the entry point will be the first one found when searching to the left in the command line.
If no -entry options are given, compiler will use [shader(…)] attributes to detect entry points.
-specialize
-specialize <typename>
Specialize the last entrypoint with <typename>.
-emit-ir
Emit IR typically as a ‘.slang-module’ when outputting to a container.
-h, -help, –help
-h or -h <help-category>
Print this message, or help in specified category.
-help-style
-help-style <help-style>
Help formatting style
-I
-I<path>, -I <path>
Add a path to be used in resolving ‘#include’ and ‘import’ operations.
-lang
-lang <language>
Set the language for the following input files.
-matrix-layout-column-major
Set the default matrix layout to column-major.
-matrix-layout-row-major
Set the default matrix layout to row-major.
-restrictive-capability-check
Many capability warnings will become an error.
-ignore-capabilities
Do not warn or error if capabilities are violated
-minimum-slang-optimization
Perform minimum code optimization in Slang to favor compilation time.
-disable-non-essential-validations
Disable non-essential IR validations such as use of uninitialized variables.
-disable-source-map
Disable source mapping in the Obfuscation.
-module-name
-module-name <name>
Set the module name to use when compiling multiple .slang source files into a single module.
-o
-o <path>
Specify a path where generated output should be written.
If no -target or -stage is specified, one may be inferred from file extension (see <file-extension>). If multiple -target options and a single -entry are present, each -o associates with the first -target to its left. Otherwise, if multiple -entry options are present, each -o associates with the first -entry to its left, and with the -target that matches the one inferred from <path>.
-profile
-profile <profile>[+<capability>…]
Specify the shader profile for code generation.
Accepted profiles are:
-
sm_{4_0,4_1,5_0,5_1,6_0,6_1,6_2,6_3,6_4,6_5,6_6}
-
glsl_{110,120,130,140,150,330,400,410,420,430,440,450,460}
Additional profiles that include -stage information:
- {vs,hs,ds,gs,ps}_<version>
See -capability for information on <capability>
When multiple -target options are present, each -profile associates with the first -target to its left.
-stage
-stage <stage>
Specify the stage of an entry-point function.
When multiple -entry options are present, each -stage associated with the first -entry to its left.
May be omitted if entry-point function has a [shader(…)] attribute; otherwise required for each -entry option.
-target
-target <target>
Specifies the format in which code should be generated.
-v, -version
Display the build version. This is the contents of git describe –tags.
It is typically only set from automated builds(such as distros available on github).A user build will by default be ‘unknown’.
-std
-std <language-version>
Specifies the language standard that should be used.
-warnings-as-errors
-warnings-as-errors all or -warnings-as-errors <id>[,<id>…]
all - Treat all warnings as errors.
<id>[,<id>…]: Treat specific warning ids as errors.
-warnings-disable
-warnings-disable <id>[,<id>…]
Disable specific warning ids.
-W
-W<id>
Enable a warning with the specified id.
-Wno-
-Wno-<id>
Disable warning with <id>
-dump-warning-diagnostics
Dump to output list of warning diagnostic numeric and name ids.
–
Treat the rest of the command line as input files.
-report-downstream-time
Reports the time spent in the downstream compiler.
-report-perf-benchmark
Reports compiler performance benchmark results.
-report-checkpoint-intermediates
Reports information about checkpoint contexts used for reverse-mode automatic differentiation.
-skip-spirv-validation
Skips spirv validation.
-source-embed-style
-source-embed-style <source-embed-style>
If source embedding is enabled, defines the style used. When enabled (with any style other than none
), will write compile results into embeddable source for the target language. If no output file is specified, the output is written to stdout. If an output file is specified it is written either to that file directly (if it is appropriate for the target language), or it will be output to the filename with an appropriate extension.
Note for C/C++ with u16/u32/u64 types it is necessary to have “#include <stdint.h>” before the generated file.
-source-embed-name
-source-embed-name <name>
The name used as the basis for variables output for source embedding.
-source-embed-language
-source-embed-language <language>
The language to be used for source embedding. Defaults to C/C++. Currently only C/C++ are supported
-disable-short-circuit
Disable short-circuiting for “&&” and “||” operations
-unscoped-enum
Treat enums types as unscoped by default.
-preserve-params
Preserve all resource parameters in the output code, even if they are not used by the shader.
-conformance
-conformance <typeName>:<interfaceName>[=<sequentialID>]
Include additional type conformance during linking for dynamic dispatch.
-reflection-json
-reflection-json <path>
Emit reflection data in JSON format to a file.
-msvc-style-bitfield-packing
Pack bitfields according to MSVC rules (msb first, new field when underlying type size changes) rather than gcc-style (lsb first)
Target
Target code generation options
-capability
-capability <capability>[+<capability>…]
Add optional capabilities to a code generation target. See Capabilities below.
-default-image-format-unknown
Set the format of R/W images with unspecified format to ‘unknown’. Otherwise try to guess the format.
-disable-dynamic-dispatch
Disables generating dynamic dispatch code.
-disable-specialization
Disables generics and specialization pass.
-fp-mode, -floating-point-mode
-fp-mode <fp-mode>, -floating-point-mode <fp-mode>
Control floating point optimizations
-denorm-mode-fp16
-denorm-mode-fp16 <fp-denormal-mode>
Control handling of 16-bit denormal floating point values in SPIR-V (any, preserve, ftz)
-denorm-mode-fp32
-denorm-mode-fp32 <fp-denormal-mode>
Control handling of 32-bit denormal floating point values in SPIR-V and DXIL (any, preserve, ftz)
-denorm-mode-fp64
-denorm-mode-fp64 <fp-denormal-mode>
Control handling of 64-bit denormal floating point values in SPIR-V (any, preserve, ftz)
-g
-g, -g<debug-info-format>, -g<debug-level>
Include debug information in the generated code, where possible.
<debug-level> is the amount of information, 0..3, unspecified means 2
<debug-info-format> specifies a debugging info format
It is valid to have multiple -g options, such as a <debug-level> and a <debug-info-format>
-line-directive-mode
-line-directive-mode <line-directive-mode>
Sets how the #line
directives should be produced. Available options are:
If not specified, default behavior is to use C-style #line
directives for HLSL and C/C++ output, and traditional GLSL-style #line
directives for GLSL output.
-O
Set the optimization level.
-obfuscate
Remove all source file information from outputs.
-force-glsl-scalar-layout, -fvk-use-scalar-layout
Make data accessed through ConstantBuffer, ParameterBlock, StructuredBuffer, ByteAddressBuffer and general pointers follow the ‘scalar’ layout when targeting GLSL or SPIRV.
-fvk-use-dx-layout
Pack members using FXCs member packing rules when targeting GLSL or SPIRV.
-fvk-use-c-layout
Make data accessed through ConstantBuffer, ParameterBlock, StructuredBuffer, ByteAddressBuffer and general pointers follow the C/C++ structure layout rules when targeting SPIRV.
-fvk-b-shift, -fvk-s-shift, -fvk-t-shift, -fvk-u-shift
-fvk-<vulkan-shift>-shift <N> <space>
For example ‘-fvk-b-shift <N> <space>’ shifts by N the inferred binding numbers for all resources in ‘b’ registers of space <space>. For a resource attached with :register(bX, <space>) but not [vk::binding(…)], sets its Vulkan descriptor set to <space> and binding number to X + N. If you need to shift the inferred binding numbers for more than one space, provide more than one such option. If more than one such option is provided for the same space, the last one takes effect. If you need to shift the inferred binding numbers for all sets, use ‘all’ as <space>.
-
[DXC description](https://github.com/Microsoft/DirectXShaderCompiler/blob/main/docs/SPIR-V.rst#implicit-binding-number-assignment)
-
[GLSL wiki](https://github.com/KhronosGroup/glslang/wiki/HLSL-FAQ#auto-mapped-binding-numbers)
-fvk-bind-globals
-fvk-bind-globals <N> <descriptor-set>
Places the $Globals cbuffer at descriptor set <descriptor-set> and binding <N>.
It lets you specify the descriptor for the source at a certain register.
- [DXC description](https://github.com/Microsoft/DirectXShaderCompiler/blob/main/docs/SPIR-V.rst#implicit-binding-number-assignment)
-fvk-invert-y
Negates (additively inverts) SV_Position.y before writing to stage output.
-fvk-use-dx-position-w
Reciprocates (multiplicatively inverts) SV_Position.w after reading from stage input. For use in fragment shaders only.
-fvk-use-entrypoint-name
Uses the entrypoint name from the source instead of ‘main’ in the spirv output.
-fvk-use-gl-layout
Use std430 layout instead of D3D buffer layout for raw buffer load/stores.
-fspv-reflect
Include reflection decorations in the resulting SPIRV for shader parameters.
-enable-effect-annotations
Enables support for legacy effect annotation syntax.
-emit-spirv-via-glsl
Generate SPIR-V output by compiling generated GLSL with glslang
-emit-spirv-directly
Generate SPIR-V output directly (default)
-spirv-core-grammar
A path to a specific spirv.core.grammar.json to use when generating SPIR-V output
-incomplete-library
Allow generating code from incomplete libraries with unresolved external functions
-bindless-space-index
-bindless-space-index <index>
Specify the space index for the system defined global bindless resource array.
-separate-debug-info
Emit debug data to a separate file, and strip it from the main output file.
Downstream
Downstream compiler options
-none-path, -fxc-path, -dxc-path, -glslang-path, -spirv-dis-path, -clang-path, -visualstudio-path, -gcc-path, -genericcpp-path, -nvrtc-path, -llvm-path, -spirv-opt-path, -metal-path, -tint-path
-<compiler>-path <path>
Specify path to a downstream <compiler> executable or library.
-default-downstream-compiler
-default-downstream-compiler <language> <compiler>
Set a default compiler for the given language. See -lang for the list of languages.
-X
-X<compiler> <option> -X<compiler>… <options> -X.
Pass arguments to downstream <compiler>. Just -X<compiler> passes just the next argument to the downstream compiler. -X<compiler>… options -X. will pass all of the options inbetween the opening -X and -X. to the downstream compiler.
-pass-through
-pass-through <compiler>
Pass the input through mostly unmodified to the existing compiler <compiler>.
These are intended for debugging/testing purposes, when you want to be able to see what these existing compilers do with the “same” input and options
Debugging
Compiler debugging/instrumentation options
-dump-ast
Dump the AST to a .slang-ast file next to the input.
-dump-intermediate-prefix
-dump-intermediate-prefix <prefix>
File name prefix for -dump-intermediates outputs, default is no prefix
-dump-intermediates
Dump intermediate outputs for debugging.
-dump-ir
Dump the IR for debugging.
-dump-ir-ids
Dump the IDs with -dump-ir (debug builds only)
-E, -output-preprocessor
Output the preprocessing result and exit.
-no-codegen
Skip the code generation step, just check the code and generate layout.
-output-includes
Print the hierarchy of the processed source files.
-serial-ir
[REMOVED] Serialize the IR between front-end and back-end.
-skip-codegen
Skip the code generation phase.
-validate-ir
Validate the IR between the phases.
-verbose-paths
When displaying diagnostic output aim to display more detailed path information. In practice this is typically the complete ‘canonical’ path to the source file used.
-verify-debug-serial-ir
Verify IR in the front-end.
-dump-module
Disassemble and print the module IR.
-get-module-info
Print the name and version of a serialized IR Module
-get-supported-module-versions
Print the minimum and maximum module versions this compiler supports
Repro
Slang repro system related
-dump-repro-on-error
Dump .slang-repro
file on any compilation error.
-extract-repro
-extract-repro <name>
Extract the repro files into a folder.
-load-repro-directory
-load-repro-directory <path>
Use repro along specified path
-load-repro
-load-repro <name>
Load repro
-repro-file-system
-repro-file-system <name>
Use a repro as a file system
-dump-repro
Dump a .slang-repro
file that can be used to reproduce a compilation on another machine.
-repro-fallback-directory
*Specify a directory to use if a file isn’t found in a repro. Should be specified *before any repro usage such as load-repro
.
There are two special directories:
- ‘none:’ indicates no fallback, so if the file isn’t found in the repro compliation will fail
- ‘default:’ is the default (which is the OS file system)**
Experimental
Experimental options (use at your own risk)
-file-system
-file-system <file-system-type>
Set the filesystem hook to use for a compile request.
-heterogeneous
Output heterogeneity-related code.
-no-mangle
Do as little mangling of names as possible.
-no-hlsl-binding
Do not include explicit parameter binding semantics in the output HLSL code,except for parameters that has explicit bindings in the input source.
-no-hlsl-pack-constant-buffer-elements
Do not pack elements of constant buffers into structs in the output HLSL code.
-validate-uniformity
Perform uniformity validation analysis.
-allow-glsl
Enable GLSL as an input language.
-enable-experimental-passes
Enable experimental compiler passes
-enable-experimental-dynamic-dispatch
Enable experimental dynamic dispatch features
-embed-downstream-ir
Embed downstream IR into emitted slang IR
Internal
Internal-use options (use at your own risk)
-archive-type
-archive-type <archive-type>
Set the archive type for -save-core-module. Default is zip.
-compile-core-module
Compile the core module from embedded sources. Will return a failure if there is already a core module available.
-doc
Write documentation for -compile-core-module
-ir-compression
-ir-compression <type>
Set compression for IR and AST outputs.
Accepted compression types: none, lite
-load-core-module
-load-core-module <filename>
Load the core module from file.
-r
-r <name>
reference module <name>
-save-core-module
-save-core-module <filename>
Save the core module to an archive file.
-save-core-module-bin-source
-save-core-module-bin-source <filename>
Same as -save-core-module but output the data as a C array.
-save-glsl-module-bin-source
-save-glsl-module-bin-source <filename>
Save the serialized glsl module as a C array.
-track-liveness
Enable liveness tracking. Places SLANG_LIVE_START, and SLANG_LIVE_END in output source to indicate value liveness.
-loop-inversion
Enable loop inversion in the code-gen optimization. Default is off
Deprecated
Deprecated options (allowed but ignored; may be removed in future)
-parameter-blocks-use-register-spaces
Parameter blocks will use register spaces
-zero-initialize
Initialize all variables to zero.Structs will set all struct-fields without an init expression to 0.All variables will call their default constructor if not explicitly initialized as usual.
compiler
Downstream Compilers (aka Pass through)
none
: Unknownfxc
: FXC HLSL compilerdxc
: DXC HLSL compilerglslang
: GLSLANG GLSL compilerspirv-dis
: spirv-tools SPIRV disassemblerclang
: Clang C/C++ compilervisualstudio
,vs
: Visual Studio C/C++ compilergcc
: GCC C/C++ compilergenericcpp
,c
,cpp
: A generic C++ compiler (can be any one of visual studio, clang or gcc depending on system and availability)nvrtc
: NVRTC CUDA compilerllvm
: LLVM/Clangslang-llvm
spirv-opt
: spirv-tools SPIRV optimizermetal
: Metal shader compilertint
: Tint compiler
language
Language
c
,C
: C languagecpp
,c++
,C++
,cxx
: C++ languageslang
: Slang languageglsl
: GLSL languagehlsl
: HLSL languagecu
,cuda
: CUDA
language-version
Language Version
legacy
,default
,2018
: Legacy Slang language2025
: Slang language rules for 2025 and older2026
,latest
: Slang language rules for 2026 and newer
archive-type
Archive Type
riff-deflate
: Slang RIFF using deflate compressionriff-lz4
: Slang RIFF using LZ4 compressionzip
: Zip fileriff
: Slang RIFF without compression
line-directive-mode
Line Directive Mode
none
: Don’t emit#line
directives at allsource-map
: Use source map to track line associations (doen’t emit #line)default
: Default behaviorstandard
: Emit standard C-style#line
directives.glsl
: Emit GLSL-style directives with file number instead of name.
debug-info-format
Debug Info Format
default-format
: Use the default debugging format for the targetc7
: CodeView C7 format (typically means debugging infomation is embedded in the binary)pdb
: Program databasestabs
: STABS debug formatcoff
: COFF debug formatdwarf
: DWARF debug format
fp-mode
Floating Point Mode
precise
: Disable optimization that could change the output of floating-point computations, including around infinities, NaNs, denormalized values, and negative zero. Prefer the most precise versions of special functions supported by the target.fast
: Allow optimizations that may change results of floating-point computations. Prefer the fastest version of special functions supported by the target.default
: Default floating point mode
fp-denormal-mode
Floating Point Denormal Handling Mode
any
: Use any denormal handling mode (default). The mode used is implementation defined.preserve
: Preserve denormal valuesftz
: Flush denormals to zero
help-style
Help Style
text
: Text suitable for output to a terminalmarkdown
: Markdownno-link-markdown
: Markdown without links
optimization-level
Optimization Level
0
,none
: Disable all optimizations1
,default
: Enable a default level of optimization.This is the default if no -o options are used.2
,high
: Enable aggressive optimizations for speed.3
,maximal
: Enable further optimizations, which might have a significant impact on compile time, or involve unwanted tradeoffs in terms of code size.
debug-level
Debug Level
0
,none
: Don’t emit debug information at all.1
,minimal
: Emit as little debug information as possible, while still supporting stack traces.2
,standard
: Emit whatever is the standard level of debug information for each target.3
,maximal
: Emit as much debug information as possible for each target.
file-system-type
File System Type
default
: Default file system.load-file
: Just implements loadFile interface, so will be wrapped with CacheFileSystem internally.os
: Use the OS based file system directly (without file system caching)
source-embed-style
Source Embed Style
none
: No source level embeddingdefault
: The default embedding for the type to be embeddedtext
: Embed as text. May change line endings. If output isn’t text will use ‘default’. Size will not contain terminating 0.binary-text
: Embed as text assuming contents is binary.u8
: Embed as unsigned bytes.u16
: Embed as uint16_t.u32
: Embed as uint32_t.u64
: Embed as uint64_t.
target
Target
unknown
none
hlsl
: HLSL source codedxbc
: DirectX shader bytecode binarydxbc-asm
,dxbc-assembly
: DirectX shader bytecode assemblydxil
: DirectX Intermediate Language binarydxil-asm
,dxil-assembly
: DirectX Intermediate Language assemblyglsl
: GLSL(Vulkan) source codespirv
: SPIR-V binaryspirv-asm
,spirv-assembly
: SPIR-V assemblyc
: C source codecpp
,c++
,cxx
: C++ source codetorch
,torch-binding
,torch-cpp
,torch-cpp-binding
: C++ for pytorch bindinghost-cpp
,host-c++
,host-cxx
: C++ source for host executionexe
,executable
: Executable binaryshader-sharedlib
,shader-sharedlibrary
,shader-dll
: Shared library/Dll for shader kernelsharedlib
,sharedlibrary
,dll
: Shared library/Dll for host executioncuda
,cu
: CUDA source codeptx
: PTX assemblycuobj
,cubin
: CUDA binaryhost-callable
,callable
: Host callableobject-code
: Object codehost-host-callable
: Host callable for host executionmetal
: Metal shader sourcemetallib
: Metal Library Bytecodemetallib-asm
: Metal Library Bytecode assemblywgsl
: WebGPU shading language sourcewgsl-spirv-asm
,wgsl-spirv-assembly
: SPIR-V assembly via WebGPU shading languagewgsl-spirv
: SPIR-V via WebGPU shading languageslangvm
,slang-vm
: Slang VM byte code
stage
Stage
vertex
hull
,tesscontrol
domain
,tesseval
geometry
pixel
,fragment
compute
raygeneration
intersection
anyhit
closesthit
miss
callable
mesh
amplification
,task
dispatch
vulkan-shift
Vulkan Shift
b
: Constant buffer views
: Samplert
: Shader resource viewu
: Unorderd access view
capability
A capability describes an optional feature that a target may or may not support. When a -capability is specified, the compiler may assume that the target supports that capability, and generate code accordingly.
spirv_1_{ 0
,1
,2
,3
,4
,5 }
: minimum supported SPIR - V versiontextualTarget
hlsl
glsl
c
cpp
cuda
metal
spirv
wgsl
slangvm
glsl_spirv_1_0
glsl_spirv_1_1
glsl_spirv_1_2
glsl_spirv_1_3
glsl_spirv_1_4
glsl_spirv_1_5
glsl_spirv_1_6
metallib_2_3
metallib_2_4
metallib_3_0
metallib_3_1
hlsl_nvapi
hlsl_2018
hlsl_coopvec_poc
optix_coopvec
vertex
fragment
compute
hull
domain
geometry
dispatch
SPV_EXT_fragment_shader_interlock
: enables the SPV_EXT_fragment_shader_interlock extensionSPV_EXT_physical_storage_buffer
: enables the SPV_EXT_physical_storage_buffer extensionSPV_EXT_fragment_fully_covered
: enables the SPV_EXT_fragment_fully_covered extensionSPV_EXT_descriptor_indexing
: enables the SPV_EXT_descriptor_indexing extensionSPV_EXT_shader_atomic_float_add
: enables the SPV_EXT_shader_atomic_float_add extensionSPV_EXT_shader_atomic_float16_add
: enables the SPV_EXT_shader_atomic_float16_add extensionSPV_EXT_shader_atomic_float_min_max
: enables the SPV_EXT_shader_atomic_float_min_max extensionSPV_EXT_mesh_shader
: enables the SPV_EXT_mesh_shader extensionSPV_EXT_demote_to_helper_invocation
: enables the SPV_EXT_demote_to_helper_invocation extensionSPV_KHR_maximal_reconvergence
: enables the SPV_KHR_maximal_reconvergence extensionSPV_KHR_quad_control
: enables the SPV_KHR_quad_control extensionSPV_KHR_fragment_shader_barycentric
: enables the SPV_KHR_fragment_shader_barycentric extensionSPV_KHR_non_semantic_info
: enables the SPV_KHR_non_semantic_info extensionSPV_KHR_device_group
: enables the SPV_KHR_device_group extensionSPV_KHR_ray_tracing
: enables the SPV_KHR_ray_tracing extensionSPV_KHR_ray_query
: enables the SPV_KHR_ray_query extensionSPV_KHR_ray_tracing_position_fetch
: enables the SPV_KHR_ray_tracing_position_fetch extensionSPV_KHR_shader_clock
: enables the SPV_KHR_shader_clock extensionSPV_NV_shader_subgroup_partitioned
: enables the SPV_NV_shader_subgroup_partitioned extensionSPV_KHR_subgroup_rotate
: enables the SPV_KHR_subgroup_rotate extensionSPV_NV_ray_tracing_motion_blur
: enables the SPV_NV_ray_tracing_motion_blur extensionSPV_NV_shader_invocation_reorder
: enables the SPV_NV_shader_invocation_reorder extensionSPV_NV_cluster_acceleration_structure
: enables the SPV_NV_cluster_acceleration_structure extensionSPV_NV_linear_swept_spheres
: enables the SPV_NV_linear_swept_spheres extensionSPV_NV_shader_image_footprint
: enables the SPV_NV_shader_image_footprint extensionSPV_KHR_compute_shader_derivatives
: enables the SPV_KHR_compute_shader_derivatives extensionSPV_GOOGLE_user_type
: enables the SPV_GOOGLE_user_type extensionSPV_EXT_replicated_composites
: enables the SPV_EXT_replicated_composites extensionSPV_KHR_vulkan_memory_model
: enables the SPV_KHR_vulkan_memory_model extensionSPV_NV_cooperative_vector
: enables the SPV_NV_cooperative_vector extensionSPV_KHR_cooperative_matrix
: enables the SPV_KHR_cooperative_matrix extensionSPV_NV_tensor_addressing
: enables the SPV_NV_tensor_addressing extensionSPV_NV_cooperative_matrix2
: enables the SPV_NV_cooperative_matrix2 extensionspvDeviceGroup
spvAtomicFloat32AddEXT
spvAtomicFloat16AddEXT
spvAtomicFloat64AddEXT
spvInt64Atomics
spvAtomicFloat32MinMaxEXT
spvAtomicFloat16MinMaxEXT
spvAtomicFloat64MinMaxEXT
spvDerivativeControl
spvImageQuery
spvImageGatherExtended
spvSparseResidency
spvImageFootprintNV
spvMinLod
spvFragmentShaderPixelInterlockEXT
spvFragmentBarycentricKHR
spvFragmentFullyCoveredEXT
spvGroupNonUniformBallot
spvGroupNonUniformShuffle
spvGroupNonUniformArithmetic
spvGroupNonUniformQuad
spvGroupNonUniformVote
spvGroupNonUniformPartitionedNV
spvGroupNonUniformRotateKHR
spvRayTracingMotionBlurNV
spvMeshShadingEXT
spvRayTracingKHR
spvRayTracingPositionFetchKHR
spvRayQueryKHR
spvRayQueryPositionFetchKHR
spvShaderInvocationReorderNV
spvRayTracingClusterAccelerationStructureNV
spvRayTracingLinearSweptSpheresGeometryNV
spvShaderClockKHR
spvShaderNonUniformEXT
spvShaderNonUniform
spvDemoteToHelperInvocationEXT
spvDemoteToHelperInvocation
spvReplicatedCompositesEXT
spvCooperativeVectorNV
spvCooperativeVectorTrainingNV
spvCooperativeMatrixKHR
spvCooperativeMatrixReductionsNV
spvCooperativeMatrixConversionsNV
spvCooperativeMatrixPerElementOperationsNV
spvCooperativeMatrixTensorAddressingNV
spvCooperativeMatrixBlockLoadsNV
spvTensorAddressingNV
spvMaximalReconvergenceKHR
spvQuadControlKHR
spvVulkanMemoryModelKHR
spvVulkanMemoryModelDeviceScopeKHR
metallib_latest
dxil_lib
any_target
any_textual_target
any_gfx_target
any_cpp_target
cpp_cuda
cpp_cuda_spirv
cpp_cuda_metal_spirv
cuda_spirv
cpp_cuda_glsl_spirv
cpp_cuda_glsl_hlsl
cpp_cuda_glsl_hlsl_spirv
cpp_cuda_glsl_hlsl_spirv_wgsl
cpp_cuda_glsl_hlsl_metal_spirv
cpp_cuda_glsl_hlsl_metal_spirv_wgsl
cpp_cuda_hlsl
cpp_cuda_hlsl_spirv
cpp_cuda_hlsl_metal_spirv
cpp_glsl
cpp_glsl_hlsl_spirv
cpp_glsl_hlsl_spirv_wgsl
cpp_glsl_hlsl_metal_spirv
cpp_glsl_hlsl_metal_spirv_wgsl
cpp_hlsl
cuda_glsl_hlsl
cuda_hlsl_metal_spirv
cuda_glsl_hlsl_spirv
cuda_glsl_hlsl_spirv_wgsl
cuda_glsl_hlsl_metal_spirv
cuda_glsl_hlsl_metal_spirv_wgsl
cuda_glsl_spirv
cuda_glsl_metal_spirv
cuda_glsl_metal_spirv_wgsl
cuda_hlsl
cuda_hlsl_spirv
glsl_hlsl_spirv
glsl_hlsl_spirv_wgsl
glsl_hlsl_metal_spirv
glsl_hlsl_metal_spirv_wgsl
glsl_metal_spirv
glsl_metal_spirv_wgsl
glsl_spirv
glsl_spirv_wgsl
hlsl_spirv
SPV_NV_compute_shader_derivatives
: enables the SPV_NV_compute_shader_derivatives extensionGL_EXT_buffer_reference
: enables the GL_EXT_buffer_reference extensionGL_EXT_buffer_reference_uvec2
: enables the GL_EXT_buffer_reference_uvec2 extensionGL_EXT_debug_printf
: enables the GL_EXT_debug_printf extensionGL_EXT_demote_to_helper_invocation
: enables the GL_EXT_demote_to_helper_invocation extensionGL_EXT_maximal_reconvergence
: enables the GL_EXT_maximal_reconvergence extensionGL_EXT_shader_quad_control
: enables the GL_EXT_shader_quad_control extensionGL_EXT_device_group
: enables the GL_EXT_device_group extensionGL_EXT_fragment_shader_barycentric
: enables the GL_EXT_fragment_shader_barycentric extensionGL_EXT_mesh_shader
: enables the GL_EXT_mesh_shader extensionGL_EXT_nonuniform_qualifier
: enables the GL_EXT_nonuniform_qualifier extensionGL_EXT_ray_query
: enables the GL_EXT_ray_query extensionGL_EXT_ray_tracing
: enables the GL_EXT_ray_tracing extensionGL_EXT_ray_tracing_position_fetch_ray_tracing
: enables the GL_EXT_ray_tracing_position_fetch_ray_tracing extensionGL_EXT_ray_tracing_position_fetch_ray_query
: enables the GL_EXT_ray_tracing_position_fetch_ray_query extensionGL_EXT_ray_tracing_position_fetch
: enables the GL_EXT_ray_tracing_position_fetch extensionGL_EXT_samplerless_texture_functions
: enables the GL_EXT_samplerless_texture_functions extensionGL_EXT_shader_atomic_float
: enables the GL_EXT_shader_atomic_float extensionGL_EXT_shader_atomic_float_min_max
: enables the GL_EXT_shader_atomic_float_min_max extensionGL_EXT_shader_atomic_float2
: enables the GL_EXT_shader_atomic_float2 extensionGL_EXT_shader_atomic_int64
: enables the GL_EXT_shader_atomic_int64 extensionGL_EXT_shader_explicit_arithmetic_types
: enables the GL_EXT_shader_explicit_arithmetic_types extensionGL_EXT_shader_explicit_arithmetic_types_int64
: enables the GL_EXT_shader_explicit_arithmetic_types_int64 extensionGL_EXT_shader_image_load_store
: enables the GL_EXT_shader_image_load_store extensionGL_EXT_shader_realtime_clock
: enables the GL_EXT_shader_realtime_clock extensionGL_EXT_texture_query_lod
: enables the GL_EXT_texture_query_lod extensionGL_EXT_texture_shadow_lod
: enables the GL_EXT_texture_shadow_lod extensionGL_ARB_derivative_control
: enables the GL_ARB_derivative_control extensionGL_ARB_fragment_shader_interlock
: enables the GL_ARB_fragment_shader_interlock extensionGL_ARB_gpu_shader5
: enables the GL_ARB_gpu_shader5 extensionGL_ARB_shader_image_load_store
: enables the GL_ARB_shader_image_load_store extensionGL_ARB_shader_image_size
: enables the GL_ARB_shader_image_size extensionGL_ARB_texture_multisample
: enables the GL_ARB_texture_multisample extensionGL_ARB_shader_texture_image_samples
: enables the GL_ARB_shader_texture_image_samples extensionGL_ARB_sparse_texture
: enables the GL_ARB_sparse_texture extensionGL_ARB_sparse_texture2
: enables the GL_ARB_sparse_texture2 extensionGL_ARB_sparse_texture_clamp
: enables the GL_ARB_sparse_texture_clamp extensionGL_ARB_texture_gather
: enables the GL_ARB_texture_gather extensionGL_ARB_texture_query_levels
: enables the GL_ARB_texture_query_levels extensionGL_ARB_shader_clock
: enables the GL_ARB_shader_clock extensionGL_ARB_shader_clock64
: enables the GL_ARB_shader_clock64 extensionGL_ARB_gpu_shader_int64
: enables the GL_ARB_gpu_shader_int64 extensionGL_KHR_memory_scope_semantics
: enables the GL_KHR_memory_scope_semantics extensionGL_KHR_shader_subgroup_arithmetic
: enables the GL_KHR_shader_subgroup_arithmetic extensionGL_KHR_shader_subgroup_ballot
: enables the GL_KHR_shader_subgroup_ballot extensionGL_KHR_shader_subgroup_basic
: enables the GL_KHR_shader_subgroup_basic extensionGL_KHR_shader_subgroup_clustered
: enables the GL_KHR_shader_subgroup_clustered extensionGL_KHR_shader_subgroup_quad
: enables the GL_KHR_shader_subgroup_quad extensionGL_KHR_shader_subgroup_shuffle
: enables the GL_KHR_shader_subgroup_shuffle extensionGL_KHR_shader_subgroup_shuffle_relative
: enables the GL_KHR_shader_subgroup_shuffle_relative extensionGL_KHR_shader_subgroup_vote
: enables the GL_KHR_shader_subgroup_vote extensionGL_KHR_shader_subgroup_rotate
: enables the GL_KHR_shader_subgroup_rotate extensionGL_NV_compute_shader_derivatives
: enables the GL_NV_compute_shader_derivatives extensionGL_NV_fragment_shader_barycentric
: enables the GL_NV_fragment_shader_barycentric extensionGL_NV_gpu_shader5
: enables the GL_NV_gpu_shader5 extensionGL_NV_ray_tracing
: enables the GL_NV_ray_tracing extensionGL_NV_ray_tracing_motion_blur
: enables the GL_NV_ray_tracing_motion_blur extensionGL_NV_shader_atomic_fp16_vector
: enables the GL_NV_shader_atomic_fp16_vector extensionGL_NV_shader_invocation_reorder
: enables the GL_NV_shader_invocation_reorder extensionGL_NV_shader_subgroup_partitioned
: enables the GL_NV_shader_subgroup_partitioned extensionGL_NV_shader_texture_footprint
: enables the GL_NV_shader_texture_footprint extensionGL_NV_cluster_acceleration_structure
: enables the GL_NV_cluster_acceleration_structure extensionGL_NV_cooperative_vector
: enables the GL_NV_cooperative_vector extensionnvapi
raytracing
ser
motionblur
rayquery
raytracing_motionblur
ser_motion
shaderclock
fragmentshaderinterlock
atomic64
atomicfloat
atomicfloat2
fragmentshaderbarycentric
shadermemorycontrol
bufferreference
bufferreference_int64
cooperative_vector
cooperative_vector_training
cooperative_matrix
cooperative_matrix_reduction
cooperative_matrix_conversion
cooperative_matrix_map_element
cooperative_matrix_tensor_addressing
cooperative_matrix_block_load
tensor_addressing
cooperative_matrix_2
vk_mem_model
pixel
tesscontrol
tesseval
raygen
raygeneration
intersection
anyhit
closesthit
callable
miss
mesh
task
amplification
any_stage
amplification_mesh
raytracing_stages
anyhit_closesthit
raygen_closesthit_miss
anyhit_closesthit_intersection
anyhit_closesthit_intersection_miss
raygen_closesthit_miss_callable
compute_tesscontrol_tesseval
compute_fragment
compute_fragment_geometry_vertex
domain_hull
raytracingstages_fragment
raytracingstages_compute
raytracingstages_compute_amplification_mesh
raytracingstages_compute_fragment
raytracingstages_compute_fragment_geometry_vertex
meshshading
shadermemorycontrol_compute
subpass
spirv_latest
SPIRV_1_0
SPIRV_1_1
SPIRV_1_2
SPIRV_1_3
SPIRV_1_4
SPIRV_1_5
SPIRV_1_6
sm_4_0_version
sm_4_0
sm_4_1_version
sm_4_1
sm_5_0_version
sm_5_0
sm_5_1_version
sm_5_1
sm_6_0_version
sm_6_0
sm_6_1_version
sm_6_1
sm_6_2_version
sm_6_2
sm_6_3_version
sm_6_3
sm_6_4_version
sm_6_4
sm_6_5_version
sm_6_5
sm_6_6_version
sm_6_6
sm_6_7_version
sm_6_7
sm_6_8_version
sm_6_8
sm_6_9_version
sm_6_9
DX_4_0
DX_4_1
DX_5_0
DX_5_1
DX_6_0
DX_6_1
DX_6_2
DX_6_3
DX_6_4
DX_6_5
DX_6_6
DX_6_7
DX_6_8
DX_6_9
GLSL_130
: enables the GLSL_130 extensionGLSL_140
: enables the GLSL_140 extensionGLSL_150
: enables the GLSL_150 extensionGLSL_330
: enables the GLSL_330 extensionGLSL_400
: enables the GLSL_400 extensionGLSL_410
: enables the GLSL_410 extensionGLSL_420
: enables the GLSL_420 extensionGLSL_430
: enables the GLSL_430 extensionGLSL_440
: enables the GLSL_440 extensionGLSL_450
: enables the GLSL_450 extensionGLSL_460
: enables the GLSL_460 extensionGLSL_410_SPIRV_1_0
: enables the GLSL_410_SPIRV_1_0 extensionGLSL_420_SPIRV_1_0
: enables the GLSL_420_SPIRV_1_0 extensionGLSL_430_SPIRV_1_0
: enables the GLSL_430_SPIRV_1_0 extensioncuda_sm_1_0
cuda_sm_2_0
cuda_sm_3_0
cuda_sm_3_5
cuda_sm_4_0
cuda_sm_5_0
cuda_sm_6_0
cuda_sm_7_0
cuda_sm_8_0
cuda_sm_9_0
METAL_2_3
METAL_2_4
METAL_3_0
METAL_3_1
appendstructuredbuffer
atomic_hlsl
atomic_hlsl_nvapi
atomic_hlsl_sm_6_6
byteaddressbuffer
byteaddressbuffer_rw
consumestructuredbuffer
structuredbuffer
structuredbuffer_rw
fragmentprocessing
fragmentprocessing_derivativecontrol
getattributeatvertex
memorybarrier
texture_sm_4_0
texture_sm_4_1
texture_sm_4_1_samplerless
texture_sm_4_1_compute_fragment
texture_sm_4_0_fragment
texture_sm_4_1_clamp_fragment
texture_sm_4_1_vertex_fragment_geometry
texture_gather
image_samples
image_size
texture_size
texture_querylod
texture_querylevels
texture_shadowlod
atomic_glsl_float1
atomic_glsl_float2
atomic_glsl_halfvec
atomic_glsl
atomic_glsl_int64
GLSL_430_SPIRV_1_0_compute
: enables the GLSL_430_SPIRV_1_0_compute extensionimage_loadstore
nonuniformqualifier
printf
texturefootprint
texturefootprintclamp
shader5_sm_4_0
shader5_sm_5_0
pack_vector
subgroup_basic
subgroup_ballot
subgroup_ballot_activemask
subgroup_basic_ballot
subgroup_vote
shaderinvocationgroup
subgroup_arithmetic
subgroup_shuffle
subgroup_shufflerelative
subgroup_clustered
subgroup_quad
subgroup_partitioned
subgroup_rotate
atomic_glsl_hlsl_nvapi_cuda_metal_float1
atomic_glsl_hlsl_nvapi_cuda5_int64
atomic_glsl_hlsl_nvapi_cuda6_int64
atomic_glsl_hlsl_nvapi_cuda9_int64
atomic_glsl_hlsl_cuda_metal
atomic_glsl_hlsl_cuda9_int64
helper_lane
quad_control
breakpoint
raytracing_allstages
raytracing_anyhit
raytracing_intersection
raytracing_anyhit_closesthit
raytracing_lss
raytracing_lss_ho
raytracing_anyhit_closesthit_intersection
raytracing_raygen_closesthit_miss
raytracing_anyhit_closesthit_intersection_miss
raytracing_raygen_closesthit_miss_callable
raytracing_position
raytracing_motionblur_anyhit_closesthit_intersection_miss
raytracing_motionblur_raygen_closesthit_miss
rayquery_position
ser_raygen
ser_raygen_closesthit_miss
ser_any_closesthit_intersection_miss
ser_anyhit_closesthit_intersection
ser_anyhit_closesthit
ser_motion_raygen_closesthit_miss
ser_motion_raygen
all
file-extension
A <language>, <format>, and/or <stage> may be inferred from the extension of an input or -o path
hlsl
,fx
: hlsldxbc
dxbc-asm
: dxbc-assemblydxil
dxil-asm
: dxil-assemblyglsl
vert
: glsl (vertex)frag
: glsl (fragment)geom
: glsl (geoemtry)tesc
: glsl (hull)tese
: glsl (domain)comp
: glsl (compute)mesh
: glsl (mesh)task
: glsl (amplification)slang
spv
: SPIR-Vspv-asm
: SPIR-V assemblyc
cpp
,c++
,cxx
: C++exe
: executabledll
,so
: sharedlibrary/dllcu
: CUDAptx
: PTXobj
,o
: object-codezip
: containerslang-module
,slang-library
: Slang Module/Librarydir
: Container as a directory
help-category
Available help categories for the -h option
General
: General optionsTarget
: Target code generation optionsDownstream
: Downstream compiler optionsDebugging
: Compiler debugging/instrumentation optionsRepro
: Slang repro system relatedExperimental
: Experimental options (use at your own risk)Internal
: Internal-use options (use at your own risk)Deprecated
: Deprecated options (allowed but ignored; may be removed in future)compiler
: Downstream Compilers (aka Pass through)language
: Languagelanguage-version
: Language Versionarchive-type
: Archive Typeline-directive-mode
: Line Directive Modedebug-info-format
: Debug Info Formatfp-mode
: Floating Point Modefp-denormal-mode
: Floating Point Denormal Handling Modehelp-style
: Help Styleoptimization-level
: Optimization Leveldebug-level
: Debug Levelfile-system-type
: File System Typesource-embed-style
: Source Embed Styletarget
: Targetstage
: Stagevulkan-shift
: Vulkan Shiftcapability
: A capability describes an optional feature that a target may or may not support. When a -capability is specified, the compiler may assume that the target supports that capability, and generate code accordingly.file-extension
: A <language>, <format>, and/or <stage> may be inferred from the extension of an input or -o pathhelp-category
: Available help categories for the -h option