Usage:
slangc [options...] [--] <input files>
# For help
slangc -h
# To generate this file
slangc -help-style markdown -h
- General
- Target
- Downstream
- Debugging
- Repro
- Experimental
- Internal
- Deprecated
- compiler
- language
- archive-type
- line-directive-mode
- debug-info-format
- fp-mode
- help-style
- optimization-level
- debug-level
- file-system-type
- source-embed-style
- target
- stage
- vulkan-shift
- capability
- file-extension
General options
-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 <path>
Save the source file dependency list in a file.
-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 <typename>
Specialize the last entrypoint with <typename>.
Emit IR typically as a '.slang-module' when outputting to a container.
-h or -h <help-category>
Print this message, or help in specified category.
-help-style <help-style>
Help formatting style
-I<path>, -I <path>
Add a path to be used in resolving '#include' and 'import' operations.
-lang <language>
Set the language for the following input files.
Set the default matrix layout to column-major.
Set the default matrix layout to row-major.
Do not warn or error if capabilities are violated
-module-name <name>
Set the module name to use when compiling multiple .slang source files into a single module.
-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>.
id="reflection-json"
-reflection-json <path>
Specify a path where program reflection data should be written in JSON format.
-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>
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>
Specifies the format in which code should be generated.
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'.
-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 <id>[,<id>...]
Disable specific warning ids.
-W<id>
Enable a warning with the specified id.
-Wno-<id>
Disable warning with <id>
Dump to output list of warning diagnostic numeric and name ids.
Treat the rest of the command line as input files.
Reports the time spent in the downstream compiler.
Reports compiler performance benchmark results.
Skips spirv validation.
-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 <name>
The name used as the basis for variables output for source embedding.
-source-embed-language <language>
The language to be used for source embedding. Defaults to C/C++. Currently only C/C++ are supported
Disable short-circuiting for "&&" and "||" operations
Target code generation options
-capability <capability>[+<capability>...]
Add optional capabilities to a code generation target. See Capabilities below.
Set the format of R/W images with unspecified format to 'unknown'. Otherwise try to guess the format.
Disables generating dynamic dispatch code.
Disables generics and specialization pass.
-fp-mode <fp-mode>, -floating-point-mode <fp-mode>
Control floating point optimizations
-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>
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.
Set the optimization level.
Remove all source file information from outputs.
Make data accessed through ConstantBuffer, ParameterBlock, StructuredBuffer, ByteAddressBuffer and general pointers follow the 'scalar' layout when targeting GLSL or SPIRV.
-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-num ber-assignment)
-
[GLSL wiki](https://github.com/KhronosGroup/glslang/wiki/HLSL-FAQ#auto-mapped-binding-numbers)
-fvk-bind-globals <N> <descriptor-set>
Places the $Globals cbuffer at descriptor set <descriptor-set> and binding <N>.
Negates (additively inverts) SV_Position.y before writing to stage output.
Reciprocates (multiplicatively inverts) SV_Position.w after reading from stage input. For use in fragment shaders only.
Uses the entrypoint name from the source instead of 'main' in the spirv output.
Use std430 layout instead of D3D buffer layout for raw buffer load/stores.
Use FXC buffer packing rules with SPIRV targets. GLSL is not suported. Slang's ParameterBlock will follow ConstantBuffer packing rules.
Include reflection decorations in the resulting SPIRV for shader parameters.
Enables support for legacy effect annotation syntax.
Generate SPIR-V output by compiling generated GLSL with glslang
Generate SPIR-V output direclty (default)
A path to a specific spirv.core.grammar.json to use when generating SPIR-V output
Allow generating code from incomplete libraries with unresolved external functions
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
-<compiler>-path <path>
Specify path to a downstream <compiler> executable or library.
-default-downstream-compiler <language> <compiler>
Set a default compiler for the given language. See -lang for the list of languages.
-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 <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
Compiler debugging/instrumentation options
Dump the AST to a .slang-ast file next to the input.
-dump-intermediate-prefix <prefix>
File name prefix for -dump-intermediates outputs, default is 'slang-dump-'
Dump intermediate outputs for debugging.
Dump the IR for debugging.
Dump the IDs with -dump-ir (debug builds only)
Output the preprocessing result and exit.
Skip the code generation step, just check the code and generate layout.
Print the hierarchy of the processed source files.
Serialize the IR between front-end and back-end.
Skip the code generation phase.
Validate the IR between the phases.
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 IR in the front-end.
Slang repro system related
Dump .slang-repro
file on any compilation error.
-extract-repro <name>
Extract the repro files into a folder.
-load-repro-directory <path>
Use repro along specified path
-load-repro <name>
Load repro
-repro-file-system <name>
Use a repro as a file system
Dump a .slang-repro
file that can be used to reproduce a compilation on another machine.
**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 options (use at your own risk)
-file-system <file-system-type>
Set the filesystem hook to use for a compile request.
Output heterogeneity-related code.
Do as little mangling of names as possible.
Do not include explicit parameter binding semantics in the output HLSL code,except for parameters that has explicit bindings in the input source.
Do not pack elements of constant buffers into structs in the output HLSL code.
Perform uniformity validation analysis.
Enable GLSL as an input language.
Internal-use options (use at your own risk)
-archive-type <archive-type>
Set the archive type for -save-stdlib. Default is zip.
Compile the StdLib from embedded sources. Will return a failure if there is already a StdLib available.
Write documentation for -compile-stdlib
-ir-compression <type>
Set compression for IR and AST outputs.
Accepted compression types: none, lite
-load-stdlib <filename>
Load the StdLib from file.
-r <name>
reference module <name>
-save-stdlib <filename>
Save the StdLib modules to an archive file.
-save-stdlib-bin-source <filename>
Same as -save-stdlib but output the data as a C array.
Enable liveness tracking. Places SLANG_LIVE_START, and SLANG_LIVE_END in output source to indicate value liveness.
Deprecated options (allowed but ignored; may be removed in future)
Parameter blocks will use register spaces
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 compiler
Language
c
,C
: C languagecpp
,c++
,C++
,cxx
: C++ languageslang
: Slang languageglsl
: GLSL languagehlsl
: HLSL languagecu
,cuda
: CUDA
Archive Type
riff-deflate
: Slang RIFF using deflate compressionriff-lz4
: Slang RIFF using LZ4 compressionzip
: Zip fileriff
: Slang RIFF without compression
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
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
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
Help Style
text
: Text suitable for output to a terminalmarkdown
: Markdownno-link-markdown
: Markdown without links
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
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
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
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
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 source codeglsl-vulkan
: GLSL Vulkan source codeglsl-vulkan-one-desc
: 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 BytecodeMetal Library Bytecode assembly
Stage
vertex
hull
domain
geometry
pixel
,fragment
compute
raygeneration
intersection
anyhit
closesthit
miss
callable
mesh
amplification
Vulkan Shift
b
: Constant buffer views
: Samplert
: Shader resource viewu
: Unorderd access view
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 versionInvalid
textualTarget
hlsl
glsl
c
cpp
cuda
metal
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
vertex
fragment
compute
hull
domain
geometry
raygen
intersection
anyhit
closesthit
miss
mesh
amplification
callable
hlsl_nvapi
SOURCE_EXT_GL_NV_compute_shader_derivatives
SPV_EXT_fragment_shader_interlock
: enables the SPV_EXT_fragment_shader_interlock extensionSPV_KHR_fragment_shader_barycentric
: enables the SPV_KHR_fragment_shader_barycentric 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_KHR_non_semantic_info
: enables the SPV_KHR_non_semantic_info extensionSPV_NV_shader_subgroup_partitioned
: enables the SPV_NV_shader_subgroup_partitioned extensionSPV_NV_ray_tracing_motion_blur
: enables the SPV_NV_ray_tracing_motion_blur extensionSPV_EXT_mesh_shader
: enables the SPV_EXT_mesh_shader 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_NV_shader_invocation_reorder
: enables the SPV_NV_shader_invocation_reorder extensionSPV_KHR_shader_clock
: enables the SPV_KHR_shader_clock extensionSPV_NV_shader_image_footprint
: enables the SPV_NV_shader_image_footprint extensionSPV_GOOGLE_user_type
: enables the SPV_GOOGLE_user_type extensionSPV_NV_compute_shader_derivatives
: enables the SPV_NV_compute_shader_derivatives extensionspvAtomicFloat32AddEXT
spvAtomicFloat16AddEXT
spvInt64Atomics
spvAtomicFloat32MinMaxEXT
spvAtomicFloat16MinMaxEXT
spvDerivativeControl
spvImageQuery
spvImageGatherExtended
spvImageFootprintNV
spvMinLod
spvFragmentShaderPixelInterlockEXT
spvFragmentBarycentricKHR
spvFragmentFullyCoveredEXT
spvGroupNonUniformBallot
spvGroupNonUniformShuffle
spvGroupNonUniformArithmetic
spvGroupNonUniformQuad
spvGroupNonUniformVote
spvGroupNonUniformPartitionedNV
spvRayTracingMotionBlurNV
spvMeshShadingEXT
spvRayTracingKHR
spvRayTracingPositionFetchKHR
spvRayQueryKHR
spvRayQueryPositionFetchKHR
spvShaderInvocationReorderNV
spvShaderClockKHR
spvShaderNonUniform
spirv
spirv_latest
any_target
any_textual_target
any_gfx_target
any_cpp_target
cpp_cuda
cpp_cuda_glsl_spirv
cpp_cuda_glsl_hlsl
cpp_cuda_glsl_hlsl_spirv
cpp_cuda_glsl_hlsl_metal_spirv
cpp_cuda_hlsl
cpp_glsl
cpp_glsl_hlsl_spirv
cpp_hlsl
cuda_glsl_hlsl
cuda_glsl_hlsl_spirv
cuda_glsl_spirv
cuda_hlsl
cuda_hlsl_spirv
glsl_hlsl_spirv
glsl_spirv
hlsl_spirv
pixel
raygeneration
tesscontrol
tesseval
amplification_mesh
raytracing_stages
intersection
raygen
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
GL_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_sparse_texture_clamp
: enables the GL_ARB_sparse_texture_clamp extensionGL_EXT_texture_query_lod
: enables the GL_EXT_texture_query_lod extensionGL_ARB_texture_query_levels
: enables the GL_ARB_texture_query_levels extensionGL_ARB_texture_cube_map
: enables the GL_ARB_texture_cube_map extensionGL_ARB_texture_gather
: enables the GL_ARB_texture_gather 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_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
: 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_float2
: enables the GL_EXT_shader_atomic_float2 extensionGL_EXT_shader_atomic_int64
: enables the GL_EXT_shader_atomic_int64 extensionGL_EXT_shader_atomic_float_min_max
: enables the GL_EXT_shader_atomic_float_min_max 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_shadow_lod
: enables the GL_EXT_texture_shadow_lod 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_basic
: enables the GL_KHR_shader_subgroup_basic extensionGL_KHR_shader_subgroup_ballot
: enables the GL_KHR_shader_subgroup_ballot extensionGL_KHR_shader_subgroup_clustered
: enables the GL_KHR_shader_subgroup_clustered 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_quad
: enables the GL_KHR_shader_subgroup_quad extensionGL_NV_compute_shader_derivatives
: enables the GL_NV_compute_shader_derivatives extensionGL_ARB_shader_image_size
: enables the GL_ARB_shader_image_size extensionGL_ARB_shader_texture_image_samples
: enables the GL_ARB_shader_texture_image_samples extensionGL_NV_shader_atomic_fp16_vector
: enables the GL_NV_shader_atomic_fp16_vector extensionGL_NV_shader_subgroup_partitioned
: enables the GL_NV_shader_subgroup_partitioned extensionGL_NV_ray_tracing_motion_blur
: enables the GL_NV_ray_tracing_motion_blur extensionGL_NV_shader_invocation_reorder
: enables the GL_NV_shader_invocation_reorder extensionGL_NV_shader_texture_footprint
: enables the GL_NV_shader_texture_footprint extensionGL_NV_fragment_shader_barycentric
: enables the GL_NV_fragment_shader_barycentric extensionGL_NV_ray_tracing
: enables the GL_NV_ray_tracing extensionnvapi
raytracing
ser
motionblur
rayquery
raytracing_motionblur
ser_motion
shaderclock
_meshshading
meshshading
fragmentshaderinterlock
atomic64
atomicfloat
atomicfloat2
groupnonuniform
fragmentshaderbarycentric
shadermemorycontrol
shadermemorycontrol_compute
subpass
subgroup_basic
subgroup_basic_ballot
subgroup_vote
subgroup_arithmetic
subgroup_ballot
subgroup_shuffle
subgroup_shufflerelative
subgroup_clustered
subgroup_quad
subgroup_partitioned
shaderinvocationgroup
waveprefix
bufferreference
bufferreference_int64
sm_4_0
sm_4_1
sm_5_0
sm_5_1
sm_6_0
sm_6_1
sm_6_2
sm_6_3
sm_6_4
sm_6_5
sm_6_6
sm_6_7
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 extensionDX_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
METAL_2_3
METAL_2_4
sm_4_0_version
appendstructuredbuffer
atomic_hlsl
atomic_hlsl_nvapi
atomic_hlsl_sm_6_6
byteaddressbuffer
byteaddressbuffer_rw
consumestructuredbuffer
fragmentprocessing
fragmentprocessing_derivativecontrol
getattributeatvertex
memorybarrier
structuredbuffer
structuredbuffer_rw
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
texture_shadowlod_cube
texture_cube
texture_querylevels_cube
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
atomic_glsl_hlsl_cuda
atomic_glsl_hlsl_nvapi_cuda_float1
atomic_glsl_hlsl_cuda_float2
atomic_glsl_hlsl_cuda2_int64
atomic_glsl_hlsl_nvapi_cuda5_int64
atomic_glsl_hlsl_nvapi_cuda6_int64
atomic_glsl_hlsl_cuda9_int64
breakpoint
rayobject
raytracing_allstages
raytracing_anyhit
raytracing_intersection
raytracing_anyhit_closesthit
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
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)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