yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
e4611e2e3
master
layout: user-guide
Capability Atoms
Sections:
Targets
Capabilities to specify code generation targets (glsl, spirv...)
c
Represents the C programming language code generation target.
cpp
Represents the C++ programming language code generation target.
cuda
Represents the CUDA code generation target.
glsl
Represents the GLSL code generation target.
hlsl
Represents the HLSL code generation target.
metal
Represents the Metal programming language code generation target.
slangvm
Represents the Slang VM bytecode target.
spirv
Represents the SPIR-V code generation target.
textualTarget
Represents a non-assembly code generation target.
wgsl
Represents the WebGPU shading language code generation target.
Stages
Capabilities to specify code generation stages (vertex, fragment...)
amplification
Amplification shader stage & mesh shader capabilities
anyhit
Any-Hit shader stage & ray-tracing capabilities
callable
Callable shader stage & ray-tracing capabilities
closesthit
Closest-Hit shader stage & ray-tracing capabilities
compute
Compute shader stage
dispatch
Dispatch shader stage
domain
Domain shader stage
fragment
Fragment shader stage
geometry
Geometry shader stage
hull
Hull shader stage
intersection
Intersection shader stage & ray-tracing capabilities
mesh
Mesh shader stage & mesh shader capabilities
miss
Ray-Miss shader stage & ray-tracing capabilities
pixel
Pixel shader stage
raygen
Ray-Generation shader stage & ray-tracing capabilities
raygeneration
Ray-Generation shader stage & ray-tracing capabilities
task
Task shader stage & mesh shader capabilities
tesscontrol
Tessellation Control shader stage
tesseval
Tessellation Evaluation shader stage
vertex
Vertex shader stage
Versions
Capabilities to specify versions of a code generation target (sm_5_0, GLSL_400...)
GLSL_130
GLSL 130 and related capabilities of other targets.
GLSL_140
GLSL 140 and related capabilities of other targets.
GLSL_150
GLSL 150 and related capabilities of other targets.
GLSL_330
GLSL 330 and related capabilities of other targets.
GLSL_400
GLSL 400 and related capabilities of other targets.
GLSL_410
GLSL 410 and related capabilities of other targets.
GLSL_420
GLSL 420 and related capabilities of other targets.
GLSL_430
GLSL 430 and related capabilities of other targets.
GLSL_440
GLSL 440 and related capabilities of other targets.
GLSL_450
GLSL 450 and related capabilities of other targets.
GLSL_460
GLSL 460 and related capabilities of other targets.
cuda_sm_1_0
cuda 1.0 and related capabilities of other targets.
cuda_sm_2_0
cuda 2.0 and related capabilities of other targets.
cuda_sm_3_0
cuda 3.0 and related capabilities of other targets.
cuda_sm_3_5
cuda 3.5 and related capabilities of other targets.
cuda_sm_4_0
cuda 4.0 and related capabilities of other targets.
cuda_sm_5_0
cuda 5.0 and related capabilities of other targets.
cuda_sm_6_0
cuda 6.0 and related capabilities of other targets.
cuda_sm_7_0
cuda 7.0 and related capabilities of other targets.
cuda_sm_8_0
cuda 8.0 and related capabilities of other targets.
cuda_sm_9_0
cuda 9.0 and related capabilities of other targets.
dxil_lib
Represents capabilities required for DXIL Library compilation.
glsl_spirv_1_0
Represents SPIR-V 1.0 through glslang.
glsl_spirv_1_1
Represents SPIR-V 1.1 through glslang.
glsl_spirv_1_2
Represents SPIR-V 1.2 through glslang.
glsl_spirv_1_3
Represents SPIR-V 1.3 through glslang.
glsl_spirv_1_4
Represents SPIR-V 1.4 through glslang.
glsl_spirv_1_5
Represents SPIR-V 1.5 through glslang.
glsl_spirv_1_6
Represents SPIR-V 1.6 through glslang.
hlsl_2018
Represent HLSL compatibility support.
hlsl_coopvec_poc
Represent compatibility support for the deprecated POC DXC
hlsl_nvapi
Represents HLSL NVAPI support.
metallib_2_3
Represents MetalLib 2.3.
metallib_2_4
Represents MetalLib 2.4.
metallib_3_0
Represents MetalLib 3.0.
metallib_3_1
Represents MetalLib 3.1.
metallib_latest
Represents the latest MetalLib version.
sm_4_0
HLSL shader model 4.0 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_4_0_version
HLSL shader model 4.0 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_4_1
HLSL shader model 4.1 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_4_1_version
HLSL shader model 4.1 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_5_0
HLSL shader model 5.0 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_5_0_version
HLSL shader model 5.0 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_5_1
HLSL shader model 5.1 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_5_1_version
HLSL shader model 5.1 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_0
HLSL shader model 6.0 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_0_version
HLSL shader model 6.0 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_1
HLSL shader model 6.1 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_1_version
HLSL shader model 6.1 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_2
HLSL shader model 6.2 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_2_version
HLSL shader model 6.2 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_3
HLSL shader model 6.3 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_3_version
HLSL shader model 6.3 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_4
HLSL shader model 6.4 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_4_version
HLSL shader model 6.4 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_5
HLSL shader model 6.5 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_5_version
HLSL shader model 6.5 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_6
HLSL shader model 6.6 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_6_version
HLSL shader model 6.6 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_7
HLSL shader model 6.7 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_7_version
HLSL shader model 6.7 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_8
HLSL shader model 6.8 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_8_version
HLSL shader model 6.8 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
sm_6_9
HLSL shader model 6.9 and related capabilities of other targets. Includes related GLSL/SPIRV extensions.
sm_6_9_version
HLSL shader model 6.9 and related capabilities of other targets. Does not include related GLSL/SPIRV extensions.
spirv_1_0
Represents SPIR-V 1.0 version.
spirv_1_1
Represents SPIR-V 1.1 version, which includes SPIR-V 1.0.
spirv_1_2
Represents SPIR-V 1.2 version, which includes SPIR-V 1.1.
spirv_1_3
Represents SPIR-V 1.3 version, which includes SPIR-V 1.2.
spirv_1_4
Represents SPIR-V 1.4 version, which includes SPIR-V 1.3.
spirv_1_5
Represents SPIR-V 1.5 version, which includes SPIR-V 1.4 and additional extensions.
spirv_1_6
Represents SPIR-V 1.6 version, which includes SPIR-V 1.5 and additional extensions.
spirv_latest
Represents the latest SPIR-V version.
Extensions
Capabilities to specify extensions (GL_EXT, SPV_EXT...)
GL_ARB_derivative_control
Represents the GL_ARB_derivative_control extension.
GL_ARB_fragment_shader_interlock
Represents the GL_ARB_fragment_shader_interlock extension.
GL_ARB_gpu_shader5
Represents the GL_ARB_gpu_shader5 extension.
GL_ARB_gpu_shader_int64
Represents the GL_ARB_gpu_shader_int64 extension.
GL_ARB_shader_clock
Represents the GL_ARB_shader_clock extension.
GL_ARB_shader_clock64
Represents the GL_ARB_shader_clock64 extension.
GL_ARB_shader_image_load_store
Represents the GL_ARB_shader_image_load_store extension.
GL_ARB_shader_image_size
Represents the GL_ARB_shader_image_size extension.
GL_ARB_shader_texture_image_samples
Represents the GL_ARB_shader_texture_image_samples extension.
GL_ARB_sparse_texture
Represents the GL_ARB_sparse_texture extension.
GL_ARB_sparse_texture2
Represents the GL_ARB_sparse_texture2 extension.
GL_ARB_sparse_texture_clamp
Represents the GL_ARB_sparse_texture_clamp extension.
GL_ARB_texture_gather
Represents the GL_ARB_texture_gather extension.
GL_ARB_texture_multisample
Represents the GL_ARB_texture_multisample extension.
GL_ARB_texture_query_levels
Represents the GL_ARB_texture_query_levels extension.
GL_EXT_buffer_reference
Represents the GL_EXT_buffer_reference extension.
GL_EXT_buffer_reference_uvec2
Represents the GL_EXT_buffer_reference_uvec2 extension.
GL_EXT_debug_printf
Represents the GL_EXT_debug_printf extension.
GL_EXT_demote_to_helper_invocation
Represents the GL_EXT_demote_to_helper_invocation extension.
GL_EXT_device_group
Represents the GL_EXT_device_group extension.
GL_EXT_fragment_shader_barycentric
Represents the GL_EXT_fragment_shader_barycentric extension.
GL_EXT_maximal_reconvergence
Represents the GL_EXT_maximal_reconvergence extension.
GL_EXT_mesh_shader
Represents the GL_EXT_mesh_shader extension.
GL_EXT_nonuniform_qualifier
Represents the GL_EXT_nonuniform_qualifier extension.
GL_EXT_ray_query
Represents the GL_EXT_ray_query extension.
GL_EXT_ray_tracing
Represents the GL_EXT_ray_tracing extension.
GL_EXT_ray_tracing_position_fetch
Represents the GL_EXT_ray_tracing_position_fetch extension.
GL_EXT_ray_tracing_position_fetch_ray_query
Represents the GL_EXT_ray_tracing_position_fetch_ray_query extension.
GL_EXT_ray_tracing_position_fetch_ray_tracing
Represents the GL_EXT_ray_tracing_position_fetch_ray_tracing extension.
GL_EXT_samplerless_texture_functions
Represents the GL_EXT_samplerless_texture_functions extension.
GL_EXT_shader_atomic_float
Represents the GL_EXT_shader_atomic_float extension.
GL_EXT_shader_atomic_float2
Represents the GL_EXT_shader_atomic_float2 extension.
GL_EXT_shader_atomic_float_min_max
Represents the GL_EXT_shader_atomic_float_min_max extension.
GL_EXT_shader_atomic_int64
Represents the GL_EXT_shader_atomic_int64 extension.
GL_EXT_shader_explicit_arithmetic_types
Represents the GL_EXT_shader_explicit_arithmetic_types extension.
GL_EXT_shader_explicit_arithmetic_types_int64
Represents the GL_EXT_shader_explicit_arithmetic_types_int64 extension.
GL_EXT_shader_image_load_store
Represents the GL_EXT_shader_image_load_store extension.
GL_EXT_shader_quad_control
Represents the GL_EXT_shader_quad_control extension.
GL_EXT_shader_realtime_clock
Represents the GL_EXT_shader_realtime_clock extension.
GL_EXT_texture_query_lod
Represents the GL_EXT_texture_query_lod extension.
GL_EXT_texture_shadow_lod
Represents the GL_EXT_texture_shadow_lod extension.
GL_KHR_memory_scope_semantics
Represents the GL_KHR_memory_scope_semantics extension.
GL_KHR_shader_subgroup_arithmetic
Represents the GL_KHR_shader_subgroup_arithmetic extension.
GL_KHR_shader_subgroup_ballot
Represents the GL_KHR_shader_subgroup_ballot extension.
GL_KHR_shader_subgroup_basic
Represents the GL_KHR_shader_subgroup_basic extension.
GL_KHR_shader_subgroup_clustered
Represents the GL_KHR_shader_subgroup_clustered extension.
GL_KHR_shader_subgroup_quad
Represents the GL_KHR_shader_subgroup_quad extension.
GL_KHR_shader_subgroup_rotate
Represents the GL_KHR_shader_subgroup_rotate extension.
GL_KHR_shader_subgroup_shuffle
Represents the GL_KHR_shader_subgroup_shuffle extension.
GL_KHR_shader_subgroup_shuffle_relative
Represents the GL_KHR_shader_subgroup_shuffle_relative extension.
GL_KHR_shader_subgroup_vote
Represents the GL_KHR_shader_subgroup_vote extension.
GL_NV_cluster_acceleration_structure
Represents the GL_NV_cluster_acceleration_structure extension.
GL_NV_compute_shader_derivatives
Represents the GL_NV_compute_shader_derivatives extension.
GL_NV_cooperative_vector
Represents the GL_NV_cooperative_vector extension.
GL_NV_fragment_shader_barycentric
Represents the GL_NV_fragment_shader_barycentric extension.
GL_NV_gpu_shader5
Represents the GL_NV_gpu_shader5 extension.
GL_NV_ray_tracing
Represents the GL_NV_ray_tracing extension.
GL_NV_ray_tracing_motion_blur
Represents the GL_NV_ray_tracing_motion_blur extension.
GL_NV_shader_atomic_fp16_vector
Represents the GL_NV_shader_atomic_fp16_vector extension.
GL_NV_shader_invocation_reorder
Represents the GL_NV_shader_invocation_reorder extension.
GL_NV_shader_subgroup_partitioned
Represents the GL_NV_shader_subgroup_partitioned extension.
GL_NV_shader_texture_footprint
Represents the GL_NV_shader_texture_footprint extension.
SPV_EXT_demote_to_helper_invocation
Represents the SPIR-V extension for demoting to helper invocation.
SPV_EXT_descriptor_indexing
Represents the SPIR-V extension for descriptor indexing.
SPV_EXT_fragment_fully_covered
Represents the SPIR-V extension for SPV_EXT_fragment_fully_covered.
SPV_EXT_fragment_shader_interlock
Represents the SPIR-V extension for fragment shader interlock operations.
SPV_EXT_mesh_shader
Represents the SPIR-V extension for mesh shaders.
SPV_EXT_physical_storage_buffer
Represents the SPIR-V extension for physical storage buffer.
SPV_EXT_replicated_composites
Represents the SPIR-V extension for SPV_EXT_replicated_composites.
SPV_EXT_shader_atomic_float16_add
Represents the SPIR-V extension for atomic float16 add operations.
SPV_EXT_shader_atomic_float_add
Represents the SPIR-V extension for atomic float add operations.
SPV_EXT_shader_atomic_float_min_max
Represents the SPIR-V extension for atomic float min/max operations.
SPV_GOOGLE_user_type
Represents the SPIR-V extension for SPV_GOOGLE_user_type.
SPV_KHR_compute_shader_derivatives
Represents the SPIR-V extension for compute shader derivatives.
SPV_KHR_cooperative_matrix
Represents the SPIR-V extension for SPV_KHR_cooperative_matrix.
SPV_KHR_device_group
Represents the SPIR-V extension for device-group information.
SPV_KHR_fragment_shader_barycentric
Represents the SPIR-V extension for fragment shader barycentric.
SPV_KHR_maximal_reconvergence
Represents the SPIR-V extension for maximal reconvergence.
SPV_KHR_non_semantic_info
Represents the SPIR-V extension for non-semantic information.
SPV_KHR_quad_control
Represents the SPIR-V extension for quad group control.
SPV_KHR_ray_query
Represents the SPIR-V extension for ray queries.
SPV_KHR_ray_tracing
Represents the SPIR-V extension for ray tracing.
SPV_KHR_ray_tracing_position_fetch
Represents the SPIR-V extension for ray tracing position fetch. Should be used with either SPV_KHR_ray_query or SPV_KHR_ray_tracing.
SPV_KHR_shader_clock
Represents the SPIR-V extension for shader clock.
SPV_KHR_subgroup_rotate
Represents the SPIR-V extension enables rotating values across invocations within a subgroup.
SPV_KHR_vulkan_memory_model
Represents the SPIR-V extension for SPV_KHR_vulkan_memory_model.
SPV_NV_bindless_texture
Represents the SPIR-V extension for SPV_NV_bindless_texture.
SPV_NV_cluster_acceleration_structure
Represents the SPIR-V extension for cluster acceleration structure.
SPV_NV_compute_shader_derivatives
Represents the SPIR-V extension for compute shader derivatives.
SPV_NV_cooperative_matrix2
Represents the SPIR-V extension for SPV_NV_cooperative_matrix2.
SPV_NV_cooperative_vector
Represents the SPIR-V extension for SPV_NV_cooperative_vector.
SPV_NV_linear_swept_spheres
Represents the SPIR-V extension for linear swept spheres.
SPV_NV_ray_tracing_motion_blur
Represents the SPIR-V extension for ray tracing motion blur.
SPV_NV_shader_image_footprint
Represents the SPIR-V extension for shader image footprint.
SPV_NV_shader_invocation_reorder
Represents the SPIR-V extension for shader invocation reorder. Requires SPV_KHR_ray_tracing.
SPV_NV_shader_subgroup_partitioned
Represents the SPIR-V extension for shader subgroup partitioned.
SPV_NV_tensor_addressing
Represents the SPIR-V extension for SPV_NV_tensor_addressing.
spvAtomicFloat16AddEXT
Represents the SPIR-V capability for atomic float 16 add operations.
spvAtomicFloat16MinMaxEXT
Represents the SPIR-V capability for atomic float 16 min/max operations.
spvAtomicFloat32AddEXT
Represents the SPIR-V capability for atomic float 32 add operations.
spvAtomicFloat32MinMaxEXT
Represents the SPIR-V capability for atomic float 32 min/max operations.
spvAtomicFloat64AddEXT
Represents the SPIR-V capability for atomic float 64 add operations.
spvAtomicFloat64MinMaxEXT
Represents the SPIR-V capability for atomic float 64 min/max operations.
spvBindlessTextureNV
Represents the SPIR-V capability for the bindless texture.
spvCooperativeMatrixBlockLoadsNV
Represents the SPIR-V capability for cooperative matrix 2
spvCooperativeMatrixConversionsNV
Represents the SPIR-V capability for cooperative matrix 2
spvCooperativeMatrixKHR
Represents the SPIR-V capability for cooperative matrices
spvCooperativeMatrixPerElementOperationsNV
Represents the SPIR-V capability for cooperative matrix 2
spvCooperativeMatrixReductionsNV
Represents the SPIR-V capability for cooperative matrix 2
spvCooperativeMatrixTensorAddressingNV
Represents the SPIR-V capability for cooperative matrix 2
spvCooperativeVectorNV
Represents the SPIR-V capability for cooperative vectors
spvCooperativeVectorTrainingNV
Represents the SPIR-V capability for cooperative vector training
spvDemoteToHelperInvocation
Represents the SPIR-V capability for demoting to helper invocation.
spvDemoteToHelperInvocationEXT
Represents the SPIR-V capability for demoting to helper invocation.
spvDerivativeControl
Represents the SPIR-V capability for 'derivative control' operations.
spvDeviceGroup
Represents the SPIR-V capability for DeviceGroup.
spvFragmentBarycentricKHR
Represents the SPIR-V capability for using SPV_KHR_fragment_shader_barycentric.
spvFragmentFullyCoveredEXT
Represents the SPIR-V capability for using SPV_EXT_fragment_fully_covered functionality.
spvFragmentShaderPixelInterlockEXT
Represents the SPIR-V capability for using SPV_EXT_fragment_shader_interlock.
spvGroupNonUniformArithmetic
Represents the SPIR-V capability for group non-uniform arithmetic operations.
spvGroupNonUniformBallot
Represents the SPIR-V capability for group non-uniform ballot operations.
spvGroupNonUniformPartitionedNV
Represents the SPIR-V capability for group non-uniform partitioned operations.
spvGroupNonUniformQuad
Represents the SPIR-V capability for group non-uniform quad operations.
spvGroupNonUniformRotateKHR
Represents the SPIR-V capability for group non-uniform rotate operations.
spvGroupNonUniformShuffle
Represents the SPIR-V capability for group non-uniform shuffle operations.
spvGroupNonUniformVote
Represents the SPIR-V capability for group non-uniform vote operations.
spvImageFootprintNV
Represents the SPIR-V capability for image footprint.
spvImageGatherExtended
Represents the SPIR-V capability for extended image gather operations.
spvImageQuery
Represents the SPIR-V capability for image query operations.
spvInt64Atomics
Represents the SPIR-V capability for 64-bit integer atomics.
spvMaximalReconvergenceKHR
Represents the SPIR-V capability for maximal reconvergence.
spvMeshShadingEXT
Represents the SPIR-V capability for mesh shading.
spvMinLod
Represents the SPIR-V capability for using minimum LOD operations.
spvQuadControlKHR
Represents the SPIR-V capability for quad group control.
spvRayQueryKHR
Represents the SPIR-V capability for ray query.
spvRayQueryPositionFetchKHR
Represents the SPIR-V capability for ray query position fetch.
spvRayTracingClusterAccelerationStructureNV
Represents the SPIR-V capability for cluster acceleration structure.
spvRayTracingKHR
Represents the SPIR-V capability for ray tracing.
spvRayTracingLinearSweptSpheresGeometryNV
Represents the SPIR-V capability for linear swept spheres.
spvRayTracingMotionBlurNV
Represents the SPIR-V capability for ray tracing motion blur.
spvRayTracingPositionFetchKHR
Represents the SPIR-V capability for ray tracing position fetch.
spvReplicatedCompositesEXT
Represents the SPIR-V capability for replicated composites
spvShaderClockKHR
Represents the SPIR-V capability for shader clock.
spvShaderInvocationReorderNV
Represents the SPIR-V capability for shader invocation reorder.
spvShaderNonUniform
Represents the SPIR-V capability for non-uniform resource indexing.
spvShaderNonUniformEXT
Represents the SPIR-V capability for non-uniform resource indexing.
spvSparseResidency
Represents the SPIR-V capability for sparse residency.
spvTensorAddressingNV
Represents the SPIR-V capability for tensor addressing
spvVulkanMemoryModelDeviceScopeKHR
Represents the SPIR-V capability for vulkan memory model.
spvVulkanMemoryModelKHR
Represents the SPIR-V capability for vulkan memory model.
Compound Capabilities
Capabilities to specify capabilities created by other capabilities (raytracing, meshshading...)
amplification_mesh
Collection of shader stages
any_cpp_target
All "cpp syntax" code-gen targets
any_gfx_target
All slang-gfx compatible code-gen targets
any_stage
Collection of all shader stages
any_target
All code-gen targets
any_textual_target
All non-asm code-gen targets
anyhit_closesthit
Collection of shader stages
anyhit_closesthit_intersection
Collection of shader stages
anyhit_closesthit_intersection_miss
Collection of shader stages
appendstructuredbuffer
Capabilities required to use AppendStructuredBuffer
atomic64
Capabilities needed for int64/uint64 atomic operations
atomic_glsl
(GLSL/SPIRV) Capabilities required to use GLSL-400 atomic operations
atomic_glsl_float1
(GLSL/SPIRV) Capabilities required to use GLSL-tier-1 float-atomic operations
atomic_glsl_float2
(GLSL/SPIRV) Capabilities required to use GLSL-tier-2 float-atomic operations
atomic_glsl_halfvec
(GLSL/SPIRV) Capabilities required to use NVAPI GLSL-fp16 float-atomic operations
atomic_glsl_hlsl_cuda9_int64
(All implemented targets) Capabilities required to use atomic operations (cuda_sm_9 tier atomics)
atomic_glsl_hlsl_cuda_metal
(All implemented targets) Capabilities required to use atomic operations
atomic_glsl_hlsl_nvapi_cuda5_int64
(All implemented targets) Capabilities required to use atomic operations of int64 (cuda_sm_5 tier atomics)
atomic_glsl_hlsl_nvapi_cuda6_int64
(All implemented targets) Capabilities required to use atomic operations of int64 (cuda_sm_6 tier atomics)
atomic_glsl_hlsl_nvapi_cuda9_int64
(All implemented targets) Capabilities required to use atomic operations of int64 (cuda_sm_9 tier atomics)
atomic_glsl_hlsl_nvapi_cuda_metal_float1
(All implemented targets) Capabilities required to use atomic operations of GLSL tier-1 float atomics
atomic_glsl_int64
(GLSL/SPIRV) Capabilities required to use int64/uint64 atomic operations
atomic_hlsl
(hlsl only) Capabilities required to use hlsl atomic operations
atomic_hlsl_nvapi
(hlsl only) Capabilities required to use hlsl NVAPI atomics
atomic_hlsl_sm_6_6
(hlsl only) Capabilities required to use hlsl sm_6_6 atomics
atomicfloat
Capabilities needed to use GLSL-tier-1 float-atomic operations
atomicfloat2
Capabilities needed to use GLSL-tier-2 float-atomic operations
breakpoint
Capabilities required to enable shader breakpoints
bufferreference
Capabilities needed to use GLSL buffer-reference's
bufferreference_int64
Capabilities needed to use GLSL buffer-reference's with int64
byteaddressbuffer
Capabilities required to use ByteAddressBuffer
byteaddressbuffer_rw
Capabilities required to use RWByteAddressBuffer
compute_fragment
Collection of shader stages
compute_fragment_geometry_vertex
Collection of shader stages
compute_tesscontrol_tesseval
Collection of shader stages
consumestructuredbuffer
Capabilities required to use ConsumeStructuredBuffer
cooperative_matrix
Capabilities needed to use cooperative matrices
cooperative_matrix_2
Capabilities needed to use tensor addressing
cooperative_matrix_block_load
Capabilities needed to use decodeFunc with cooperative matrix load
cooperative_matrix_conversion
Capabilities needed to convert cooperative matrices
cooperative_matrix_map_element
Capabilities needed to use MapElement operation with cooperative matrix
cooperative_matrix_reduction
Capabilities needed to use reduction operations with cooperative matrix
cooperative_matrix_tensor_addressing
Capabilities needed to load or store with tensor_addressing extension
cooperative_vector
Capabilities needed to use cooperative vectors Note that cpp and cuda are supported via a fallback non-cooperative implementation No HLSL shader model bound yet
cooperative_vector_training
Capabilities needed to train cooperative vectors
cpp_cuda
CPP and CUDA code-gen targets
cpp_cuda_glsl_hlsl
CPP, CUDA, GLSL, and HLSL code-gen targets
cpp_cuda_glsl_hlsl_metal_spirv
CPP, CUDA, GLSL, HLSL, Metal and SPIRV code-gen targets
cpp_cuda_glsl_hlsl_metal_spirv_wgsl
CPP, CUDA, GLSL, HLSL, Metal, SPIRV and WGSL code-gen targets
cpp_cuda_glsl_hlsl_spirv
CPP, CUDA, GLSL, HLSL, and SPIRV code-gen targets
cpp_cuda_glsl_hlsl_spirv_wgsl
CPP, CUDA, GLSL, HLSL, SPIRV and WGSL code-gen targets
cpp_cuda_glsl_spirv
CPP, CUDA, GLSL and SPIRV code-gen targets
cpp_cuda_hlsl
CPP, CUDA, and HLSL code-gen targets
cpp_cuda_hlsl_metal_spirv
CPP, CUDA, HLSL, Metal, and SPIRV code-gen targets
cpp_cuda_hlsl_spirv
CPP, CUDA, HLSL, and SPIRV code-gen targets
cpp_cuda_metal_spirv
CPP, CUDA, Metal, and SPIRV code-gen targets
cpp_cuda_spirv
CPP, CUDA and SPIRV code-gen targets
cpp_glsl
CPP, and GLSL code-gen targets
cpp_glsl_hlsl_metal_spirv
CPP, GLSL, HLSL, Metal, and SPIRV code-gen targets
cpp_glsl_hlsl_metal_spirv_wgsl
CPP, GLSL, HLSL, Metal, SPIRV and WGSL code-gen targets
cpp_glsl_hlsl_spirv
CPP, GLSL, HLSL, and SPIRV code-gen targets
cpp_glsl_hlsl_spirv_wgsl
CPP, GLSL, HLSL, SPIRV and WGSL code-gen targets
cpp_hlsl
CPP, and HLSL code-gen targets
cuda_glsl_hlsl
CUDA, GLSL, and HLSL code-gen targets
cuda_glsl_hlsl_metal_spirv
CUDA, GLSL, HLSL, Metal, and SPIRV code-gen targets
cuda_glsl_hlsl_metal_spirv_wgsl
CUDA, GLSL, HLSL, Metal, SPIRV and WGSL code-gen targets
cuda_glsl_hlsl_spirv
CUDA, GLSL, HLSL, and SPIRV code-gen targets
cuda_glsl_hlsl_spirv_wgsl
CUDA, GLSL, HLSL, SPIRV, and WGSL code-gen targets
cuda_glsl_metal_spirv
CUDA, GLSL, Metal, and SPIRV code-gen targets
cuda_glsl_metal_spirv_wgsl
CUDA, GLSL, Metal, SPIRV and WGSL code-gen targets
cuda_glsl_spirv
CUDA, GLSL, and SPIRV code-gen targets
cuda_hlsl
CUDA, and HLSL code-gen targets
cuda_hlsl_metal_spirv
CUDA, HLSL, Metal, and SPIRV code-gen targets
cuda_hlsl_spirv
CUDA, HLSL, SPIRV code-gen targets
cuda_spirv
CUDA and SPIRV code-gen targets
domain_hull
Collection of shader stages
fragmentprocessing
Capabilities required to use fragment derivative operations (without GLSL derivativecontrol)
fragmentprocessing_derivativecontrol
Capabilities required to use fragment derivative operations (with GLSL derivativecontrol)
fragmentshaderbarycentric
Capabilities needed to use fragment-shader-barycentric's
fragmentshaderinterlock
Capabilities needed for interlocked-fragment operations
getattributeatvertex
Capabilities required to use 'getAttributeAtVertex'
glsl_hlsl_metal_spirv
GLSL, HLSL, Metal, and SPIRV code-gen targets
glsl_hlsl_metal_spirv_wgsl
GLSL, HLSL, Metal, SPIRV and WGSL code-gen targets
glsl_hlsl_spirv
GLSL, HLSL, and SPIRV code-gen targets
glsl_hlsl_spirv_wgsl
GLSL, HLSL, SPIRV and WGSL code-gen targets
glsl_metal_spirv
GLSL, Metal, and SPIRV code-gen targets
glsl_metal_spirv_wgsl
GLSL, Metal, SPIRV and WGSL code-gen targets
glsl_spirv
GLSL, and SPIRV code-gen targets
glsl_spirv_wgsl
GLSL, SPIRV, and WGSL code-gen targets
helper_lane
Capabilities required to enable helper-lane demotion
hlsl_spirv
HLSL, and SPIRV code-gen targets
image_loadstore
(GLSL/SPIRV) Capabilities required to use image load/image store operations
image_samples
Capabilities required to query image (RWTexture) sample info
image_size
Capabilities required to query image (RWTexture) size info
memorybarrier
Capabilities required to use sm_5_0 style memory barriers
meshshading
Ccapabilities required to use mesh shading features
motionblur
Capabilities needed for raytracing-motionblur
nonuniformqualifier
Capabilities required to use NonUniform qualifier
nvapi
NVAPI capability for HLSL
pack_vector
Capabilities required to use pack/unpack intrinsics on packed vector data
printf
Capabilities required to use 'printf'
quad_control
Capabilities required to enable quad group control
raygen_closesthit_miss
Collection of shader stages
raygen_closesthit_miss_callable
Collection of shader stages
rayquery
Capabilities needed for compute-shader rayquery
rayquery_position
Collection of capabilities for rayquery + ray_tracing_position_fetch.
raytracing
Capabilities needed for minimal raytracing support
raytracing_allstages
Collection of capabilities for raytracing with all raytracing stages.
raytracing_anyhit
Collection of capabilities for raytracing with the shader stage of anyhit.
raytracing_anyhit_closesthit
Collection of capabilities for raytracing with the shader stages of anyhit and closesthit.
raytracing_anyhit_closesthit_intersection
Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, and intersection.
raytracing_anyhit_closesthit_intersection_miss
Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, intersection, and miss.
raytracing_intersection
Collection of capabilities for raytracing with the shader stage of intersection.
raytracing_lss
Collection of capabilities for linear swept spheres.
raytracing_lss_ho
hit object APIs allow raygen shaders, but not the non-hit object APIs. So we have this special capdef specifically for the hitobject variant. Collection of capabilities for linear swept spheres.
raytracing_motionblur
Capabilities needed for compute-shader rayquery and motion-blur
raytracing_motionblur_anyhit_closesthit_intersection_miss
Collection of capabilities for raytracing + motion blur and the shader stages of anyhit, closesthit, intersection, and miss.
raytracing_motionblur_raygen_closesthit_miss
Collection of capabilities for raytracing + motion blur and the shader stages of raygen, closesthit, and miss.
raytracing_position
Collection of capabilities for raytracing + ray_tracing_position_fetch and the shader stages of anyhit and closesthit.
raytracing_raygen_closesthit_miss
Collection of capabilities for raytracing with the shader stages of raygen, closesthit, and miss.
raytracing_raygen_closesthit_miss_callable
Collection of capabilities for raytracing the shader stages of raygen, closesthit, miss, and callable.
raytracing_stages
Collection of shader stages
raytracingstages_compute
Collection of shader stages
raytracingstages_compute_amplification_mesh
Collection of shader stages
raytracingstages_compute_fragment
Collection of shader stages
raytracingstages_compute_fragment_geometry_vertex
Collection of shader stages
raytracingstages_fragment
Collection of shader stages
ser
Capabilities needed for shader-execution-reordering
ser_any_closesthit_intersection_miss
Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, intersection, and miss.
ser_anyhit_closesthit
Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit and closesthit.
ser_anyhit_closesthit_intersection
Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, and intersection.
ser_motion
Capabilities needed for shader-execution-reordering and motion-blur
ser_motion_raygen
Collection of capabilities for raytracing raytracing + motion blur + shader execution reordering and the shader stage of raygen.
ser_motion_raygen_closesthit_miss
Collection of capabilities for raytracing + motion blur + shader execution reordering and the shader stages of raygen, closesthit, and miss.
ser_raygen
Collection of capabilities for raytracing + shader execution reordering and the shader stage of raygen.
ser_raygen_closesthit_miss
Collection of capabilities for raytracing + shader execution reordering and the shader stages of raygen, closesthit, and miss.
shader5_sm_4_0
Capabilities required to use sm_4_0 features apart of GL_ARB_gpu_shader5
shader5_sm_5_0
Capabilities required to use sm_5_0 features apart of GL_ARB_gpu_shader5
shaderclock
Capabilities needed for realtime clocks
shaderinvocationgroup
Capabilities required to use GLSL-style subgroup operations 'subgroup_vote'
shadermemorycontrol
(gfx targets) Capabilities needed to use memory barriers
shadermemorycontrol_compute
(gfx targets) Capabilities required to use memory barriers that only work for raytracing & compute shader stages
structuredbuffer
Capabilities required to use StructuredBuffer
structuredbuffer_rw
Capabilities required to use RWStructuredBuffer
subgroup_arithmetic
Capabilities required to use GLSL-style subgroup operations 'subgroup_arithmetic'
subgroup_ballot
Capabilities required to use GLSL-style subgroup operations 'subgroup_ballot'
subgroup_ballot_activemask
Capabilities required to use GLSL-style subgroup operations 'subgroup_ballot_activemask'
subgroup_basic
Capabilities required to use GLSL-style subgroup operations 'subgroup_basic'
subgroup_basic_ballot
Capabilities required to use GLSL-style subgroup operations 'subgroup_basic_ballot'
subgroup_clustered
Capabilities required to use GLSL-style subgroup operations 'subgroup_clustered'
subgroup_partitioned
Capabilities required to use GLSL-style subgroup operations 'subgroup_partitioned'
subgroup_quad
Capabilities required to use GLSL-style subgroup operations 'subgroup_quad'
subgroup_rotate
Capabilities required to use GLSL-style subgroup rotate operations 'subgroup_rotate'
subgroup_shuffle
Capabilities required to use GLSL-style subgroup operations 'subgroup_shuffle'
subgroup_shufflerelative
Capabilities required to use GLSL-style subgroup operations 'subgroup_shuffle_relative'
subgroup_vote
Capabilities required to use GLSL-style subgroup operations 'subgroup_vote'
subpass
Capabilities required to use Subpass-Input's
tensor_addressing
Capabilities needed to use tensor addressing
texture_gather
Capabilities required to use 'vertex/fragment/geometry shader only' texture gather operations
texture_querylevels
Capabilities required to query texture level info
texture_querylod
Capabilities required to query texture LOD info
texture_shadowlod
Capabilities required to query shadow texture lod info
texture_size
Capabilities required to query texture sample info
texture_sm_4_0
Capabilities required to use sm_4_0 texture operations
texture_sm_4_0_fragment
Capabilities required to use 'fragment shader only' texture operations
texture_sm_4_1
Capabilities required to use sm_4_1 texture operations
texture_sm_4_1_clamp_fragment
Capabilities required to use 'fragment shader only' texture clamp operations
texture_sm_4_1_compute_fragment
Capabilities required to use 'compute/fragment shader only' texture operations. We do not require 'compute'/'fragment' shader capabilities since this seems to be incorrect behavior despite what official documentation says.
texture_sm_4_1_samplerless
Capabilities required to use sm_4_1 samplerless texture operations
texture_sm_4_1_vertex_fragment_geometry
Capabilities required to use 'fragment/geometry shader only' texture clamp operations
texturefootprint
Capabilities required to use basic TextureFootprint operations
texturefootprintclamp
Capabilities required to use TextureFootprint clamp operations
vk_mem_model
Capabilities needed to use vulkan memory model
Other
Capabilities which may be deprecated
DX_4_0
Use
sm_4_0instead
DX_4_1
Use
sm_4_1instead
DX_5_0
Use
sm_5_0instead
DX_5_1
Use
sm_5_1instead
DX_6_0
Use
sm_6_0instead
DX_6_1
Use
sm_6_1instead
DX_6_2
Use
sm_6_2instead
DX_6_3
Use
sm_6_3instead
DX_6_4
Use
sm_6_4instead
DX_6_5
Use
sm_6_5instead
DX_6_6
Use
sm_6_6instead
DX_6_7
Use
sm_6_7instead
DX_6_8
Use
sm_6_8instead
DX_6_9
Use
sm_6_9instead
GLSL_410_SPIRV_1_0
User should not use this capability
GLSL_420_SPIRV_1_0
User should not use this capability
GLSL_430_SPIRV_1_0
User should not use this capability
GLSL_430_SPIRV_1_0_compute
User should not use this capability
METAL_2_3
Use
metallib_2_3instead
METAL_2_4
Use
metallib_2_4instead
METAL_3_0
Use
metallib_3_0instead
METAL_3_1
Use
metallib_3_1instead
SPIRV_1_0
Use
spirv_1_0instead
SPIRV_1_1
Use
spirv_1_1instead
SPIRV_1_2
Use
spirv_1_2instead
SPIRV_1_3
Use
spirv_1_3instead
SPIRV_1_4
Use
spirv_1_4instead
SPIRV_1_5
Use
spirv_1_5instead
SPIRV_1_6
Use
spirv_1_6instead
all
User should not use this capability
optix_coopvec
Represents capabilities required for optix cooperative vector support.
1--- 2layout : user-guide 3--- 4 5Capability Atoms 6============================ 7 8### Sections: 9 101. [Targets](#targets) 112. [Stages](#stages) 123. [Versions](#versions) 134. [Extensions](#extensions) 145. [Compound Capabilities](#compound-capabilities) 156. [Other](#other) 16 17Targets 18---------------------- 19*Capabilities to specify code generation targets (`glsl`, `spirv`...)* 20 21`c` 22> Represents the C programming language code generation target. 23 24`cpp` 25> Represents the C++ programming language code generation target. 26 27`cuda` 28> Represents the CUDA code generation target. 29 30`glsl` 31> Represents the GLSL code generation target. 32 33`hlsl` 34> Represents the HLSL code generation target. 35 36`metal` 37> Represents the Metal programming language code generation target. 38 39`slangvm` 40> Represents the Slang VM bytecode target. 41 42`spirv` 43> Represents the SPIR-V code generation target. 44 45`textualTarget` 46> Represents a non-assembly code generation target. 47 48`wgsl` 49> Represents the WebGPU shading language code generation target. 50 51Stages 52---------------------- 53*Capabilities to specify code generation stages (`vertex`, `fragment`...)* 54 55`amplification` 56> Amplification shader stage & mesh shader capabilities 57 58`anyhit` 59> Any-Hit shader stage & ray-tracing capabilities 60 61`callable` 62> Callable shader stage & ray-tracing capabilities 63 64`closesthit` 65> Closest-Hit shader stage & ray-tracing capabilities 66 67`compute` 68> Compute shader stage 69 70`dispatch` 71> Dispatch shader stage 72 73`domain` 74> Domain shader stage 75 76`fragment` 77> Fragment shader stage 78 79`geometry` 80> Geometry shader stage 81 82`hull` 83> Hull shader stage 84 85`intersection` 86> Intersection shader stage & ray-tracing capabilities 87 88`mesh` 89> Mesh shader stage & mesh shader capabilities 90 91`miss` 92> Ray-Miss shader stage & ray-tracing capabilities 93 94`pixel` 95> Pixel shader stage 96 97`raygen` 98> Ray-Generation shader stage & ray-tracing capabilities 99 100`raygeneration` 101> Ray-Generation shader stage & ray-tracing capabilities 102 103`task` 104> Task shader stage & mesh shader capabilities 105 106`tesscontrol` 107> Tessellation Control shader stage 108 109`tesseval` 110> Tessellation Evaluation shader stage 111 112`vertex` 113> Vertex shader stage 114 115Versions 116---------------------- 117*Capabilities to specify versions of a code generation target (`sm_5_0`, `GLSL_400`...)* 118 119`GLSL_130` 120> GLSL 130 and related capabilities of other targets. 121 122`GLSL_140` 123> GLSL 140 and related capabilities of other targets. 124 125`GLSL_150` 126> GLSL 150 and related capabilities of other targets. 127 128`GLSL_330` 129> GLSL 330 and related capabilities of other targets. 130 131`GLSL_400` 132> GLSL 400 and related capabilities of other targets. 133 134`GLSL_410` 135> GLSL 410 and related capabilities of other targets. 136 137`GLSL_420` 138> GLSL 420 and related capabilities of other targets. 139 140`GLSL_430` 141> GLSL 430 and related capabilities of other targets. 142 143`GLSL_440` 144> GLSL 440 and related capabilities of other targets. 145 146`GLSL_450` 147> GLSL 450 and related capabilities of other targets. 148 149`GLSL_460` 150> GLSL 460 and related capabilities of other targets. 151 152`cuda_sm_1_0` 153> cuda 1.0 and related capabilities of other targets. 154 155`cuda_sm_2_0` 156> cuda 2.0 and related capabilities of other targets. 157 158`cuda_sm_3_0` 159> cuda 3.0 and related capabilities of other targets. 160 161`cuda_sm_3_5` 162> cuda 3.5 and related capabilities of other targets. 163 164`cuda_sm_4_0` 165> cuda 4.0 and related capabilities of other targets. 166 167`cuda_sm_5_0` 168> cuda 5.0 and related capabilities of other targets. 169 170`cuda_sm_6_0` 171> cuda 6.0 and related capabilities of other targets. 172 173`cuda_sm_7_0` 174> cuda 7.0 and related capabilities of other targets. 175 176`cuda_sm_8_0` 177> cuda 8.0 and related capabilities of other targets. 178 179`cuda_sm_9_0` 180> cuda 9.0 and related capabilities of other targets. 181 182`dxil_lib` 183> Represents capabilities required for DXIL Library compilation. 184 185`glsl_spirv_1_0` 186> Represents SPIR-V 1.0 through glslang. 187 188`glsl_spirv_1_1` 189> Represents SPIR-V 1.1 through glslang. 190 191`glsl_spirv_1_2` 192> Represents SPIR-V 1.2 through glslang. 193 194`glsl_spirv_1_3` 195> Represents SPIR-V 1.3 through glslang. 196 197`glsl_spirv_1_4` 198> Represents SPIR-V 1.4 through glslang. 199 200`glsl_spirv_1_5` 201> Represents SPIR-V 1.5 through glslang. 202 203`glsl_spirv_1_6` 204> Represents SPIR-V 1.6 through glslang. 205 206`hlsl_2018` 207> Represent HLSL compatibility support. 208 209`hlsl_coopvec_poc` 210> Represent compatibility support for the deprecated POC DXC 211 212`hlsl_nvapi` 213> Represents HLSL NVAPI support. 214 215`metallib_2_3` 216> Represents MetalLib 2.3. 217 218`metallib_2_4` 219> Represents MetalLib 2.4. 220 221`metallib_3_0` 222> Represents MetalLib 3.0. 223 224`metallib_3_1` 225> Represents MetalLib 3.1. 226 227`metallib_latest` 228> Represents the latest MetalLib version. 229 230`sm_4_0` 231> HLSL shader model 4.0 and related capabilities of other targets. 232> Includes related GLSL/SPIRV extensions. 233 234`sm_4_0_version` 235> HLSL shader model 4.0 and related capabilities of other targets. 236> Does not include related GLSL/SPIRV extensions. 237 238`sm_4_1` 239> HLSL shader model 4.1 and related capabilities of other targets. 240> Includes related GLSL/SPIRV extensions. 241 242`sm_4_1_version` 243> HLSL shader model 4.1 and related capabilities of other targets. 244> Does not include related GLSL/SPIRV extensions. 245 246`sm_5_0` 247> HLSL shader model 5.0 and related capabilities of other targets. 248> Includes related GLSL/SPIRV extensions. 249 250`sm_5_0_version` 251> HLSL shader model 5.0 and related capabilities of other targets. 252> Does not include related GLSL/SPIRV extensions. 253 254`sm_5_1` 255> HLSL shader model 5.1 and related capabilities of other targets. 256> Includes related GLSL/SPIRV extensions. 257 258`sm_5_1_version` 259> HLSL shader model 5.1 and related capabilities of other targets. 260> Does not include related GLSL/SPIRV extensions. 261 262`sm_6_0` 263> HLSL shader model 6.0 and related capabilities of other targets. 264> Includes related GLSL/SPIRV extensions. 265 266`sm_6_0_version` 267> HLSL shader model 6.0 and related capabilities of other targets. 268> Does not include related GLSL/SPIRV extensions. 269 270`sm_6_1` 271> HLSL shader model 6.1 and related capabilities of other targets. 272> Includes related GLSL/SPIRV extensions. 273 274`sm_6_1_version` 275> HLSL shader model 6.1 and related capabilities of other targets. 276> Does not include related GLSL/SPIRV extensions. 277 278`sm_6_2` 279> HLSL shader model 6.2 and related capabilities of other targets. 280> Includes related GLSL/SPIRV extensions. 281 282`sm_6_2_version` 283> HLSL shader model 6.2 and related capabilities of other targets. 284> Does not include related GLSL/SPIRV extensions. 285 286`sm_6_3` 287> HLSL shader model 6.3 and related capabilities of other targets. 288> Includes related GLSL/SPIRV extensions. 289 290`sm_6_3_version` 291> HLSL shader model 6.3 and related capabilities of other targets. 292> Does not include related GLSL/SPIRV extensions. 293 294`sm_6_4` 295> HLSL shader model 6.4 and related capabilities of other targets. 296> Includes related GLSL/SPIRV extensions. 297 298`sm_6_4_version` 299> HLSL shader model 6.4 and related capabilities of other targets. 300> Does not include related GLSL/SPIRV extensions. 301 302`sm_6_5` 303> HLSL shader model 6.5 and related capabilities of other targets. 304> Includes related GLSL/SPIRV extensions. 305 306`sm_6_5_version` 307> HLSL shader model 6.5 and related capabilities of other targets. 308> Does not include related GLSL/SPIRV extensions. 309 310`sm_6_6` 311> HLSL shader model 6.6 and related capabilities of other targets. 312> Includes related GLSL/SPIRV extensions. 313 314`sm_6_6_version` 315> HLSL shader model 6.6 and related capabilities of other targets. 316> Does not include related GLSL/SPIRV extensions. 317 318`sm_6_7` 319> HLSL shader model 6.7 and related capabilities of other targets. 320> Includes related GLSL/SPIRV extensions. 321 322`sm_6_7_version` 323> HLSL shader model 6.7 and related capabilities of other targets. 324> Does not include related GLSL/SPIRV extensions. 325 326`sm_6_8` 327> HLSL shader model 6.8 and related capabilities of other targets. 328> Includes related GLSL/SPIRV extensions. 329 330`sm_6_8_version` 331> HLSL shader model 6.8 and related capabilities of other targets. 332> Does not include related GLSL/SPIRV extensions. 333 334`sm_6_9` 335> HLSL shader model 6.9 and related capabilities of other targets. 336> Includes related GLSL/SPIRV extensions. 337 338`sm_6_9_version` 339> HLSL shader model 6.9 and related capabilities of other targets. 340> Does not include related GLSL/SPIRV extensions. 341 342`spirv_1_0` 343> Represents SPIR-V 1.0 version. 344 345`spirv_1_1` 346> Represents SPIR-V 1.1 version, which includes SPIR-V 1.0. 347 348`spirv_1_2` 349> Represents SPIR-V 1.2 version, which includes SPIR-V 1.1. 350 351`spirv_1_3` 352> Represents SPIR-V 1.3 version, which includes SPIR-V 1.2. 353 354`spirv_1_4` 355> Represents SPIR-V 1.4 version, which includes SPIR-V 1.3. 356 357`spirv_1_5` 358> Represents SPIR-V 1.5 version, which includes SPIR-V 1.4 and additional extensions. 359 360`spirv_1_6` 361> Represents SPIR-V 1.6 version, which includes SPIR-V 1.5 and additional extensions. 362 363`spirv_latest` 364> Represents the latest SPIR-V version. 365 366Extensions 367---------------------- 368*Capabilities to specify extensions (`GL_EXT`, `SPV_EXT`...)* 369 370`GL_ARB_derivative_control` 371> Represents the GL_ARB_derivative_control extension. 372 373`GL_ARB_fragment_shader_interlock` 374> Represents the GL_ARB_fragment_shader_interlock extension. 375 376`GL_ARB_gpu_shader5` 377> Represents the GL_ARB_gpu_shader5 extension. 378 379`GL_ARB_gpu_shader_int64` 380> Represents the GL_ARB_gpu_shader_int64 extension. 381 382`GL_ARB_shader_clock` 383> Represents the GL_ARB_shader_clock extension. 384 385`GL_ARB_shader_clock64` 386> Represents the GL_ARB_shader_clock64 extension. 387 388`GL_ARB_shader_image_load_store` 389> Represents the GL_ARB_shader_image_load_store extension. 390 391`GL_ARB_shader_image_size` 392> Represents the GL_ARB_shader_image_size extension. 393 394`GL_ARB_shader_texture_image_samples` 395> Represents the GL_ARB_shader_texture_image_samples extension. 396 397`GL_ARB_sparse_texture` 398> Represents the GL_ARB_sparse_texture extension. 399 400`GL_ARB_sparse_texture2` 401> Represents the GL_ARB_sparse_texture2 extension. 402 403`GL_ARB_sparse_texture_clamp` 404> Represents the GL_ARB_sparse_texture_clamp extension. 405 406`GL_ARB_texture_gather` 407> Represents the GL_ARB_texture_gather extension. 408 409`GL_ARB_texture_multisample` 410> Represents the GL_ARB_texture_multisample extension. 411 412`GL_ARB_texture_query_levels` 413> Represents the GL_ARB_texture_query_levels extension. 414 415`GL_EXT_buffer_reference` 416> Represents the GL_EXT_buffer_reference extension. 417 418`GL_EXT_buffer_reference_uvec2` 419> Represents the GL_EXT_buffer_reference_uvec2 extension. 420 421`GL_EXT_debug_printf` 422> Represents the GL_EXT_debug_printf extension. 423 424`GL_EXT_demote_to_helper_invocation` 425> Represents the GL_EXT_demote_to_helper_invocation extension. 426 427`GL_EXT_device_group` 428> Represents the GL_EXT_device_group extension. 429 430`GL_EXT_fragment_shader_barycentric` 431> Represents the GL_EXT_fragment_shader_barycentric extension. 432 433`GL_EXT_maximal_reconvergence` 434> Represents the GL_EXT_maximal_reconvergence extension. 435 436`GL_EXT_mesh_shader` 437> Represents the GL_EXT_mesh_shader extension. 438 439`GL_EXT_nonuniform_qualifier` 440> Represents the GL_EXT_nonuniform_qualifier extension. 441 442`GL_EXT_ray_query` 443> Represents the GL_EXT_ray_query extension. 444 445`GL_EXT_ray_tracing` 446> Represents the GL_EXT_ray_tracing extension. 447 448`GL_EXT_ray_tracing_position_fetch` 449> Represents the GL_EXT_ray_tracing_position_fetch extension. 450 451`GL_EXT_ray_tracing_position_fetch_ray_query` 452> Represents the GL_EXT_ray_tracing_position_fetch_ray_query extension. 453 454`GL_EXT_ray_tracing_position_fetch_ray_tracing` 455> Represents the GL_EXT_ray_tracing_position_fetch_ray_tracing extension. 456 457`GL_EXT_samplerless_texture_functions` 458> Represents the GL_EXT_samplerless_texture_functions extension. 459 460`GL_EXT_shader_atomic_float` 461> Represents the GL_EXT_shader_atomic_float extension. 462 463`GL_EXT_shader_atomic_float2` 464> Represents the GL_EXT_shader_atomic_float2 extension. 465 466`GL_EXT_shader_atomic_float_min_max` 467> Represents the GL_EXT_shader_atomic_float_min_max extension. 468 469`GL_EXT_shader_atomic_int64` 470> Represents the GL_EXT_shader_atomic_int64 extension. 471 472`GL_EXT_shader_explicit_arithmetic_types` 473> Represents the GL_EXT_shader_explicit_arithmetic_types extension. 474 475`GL_EXT_shader_explicit_arithmetic_types_int64` 476> Represents the GL_EXT_shader_explicit_arithmetic_types_int64 extension. 477 478`GL_EXT_shader_image_load_store` 479> Represents the GL_EXT_shader_image_load_store extension. 480 481`GL_EXT_shader_quad_control` 482> Represents the GL_EXT_shader_quad_control extension. 483 484`GL_EXT_shader_realtime_clock` 485> Represents the GL_EXT_shader_realtime_clock extension. 486 487`GL_EXT_texture_query_lod` 488> Represents the GL_EXT_texture_query_lod extension. 489 490`GL_EXT_texture_shadow_lod` 491> Represents the GL_EXT_texture_shadow_lod extension. 492 493`GL_KHR_memory_scope_semantics` 494> Represents the GL_KHR_memory_scope_semantics extension. 495 496`GL_KHR_shader_subgroup_arithmetic` 497> Represents the GL_KHR_shader_subgroup_arithmetic extension. 498 499`GL_KHR_shader_subgroup_ballot` 500> Represents the GL_KHR_shader_subgroup_ballot extension. 501 502`GL_KHR_shader_subgroup_basic` 503> Represents the GL_KHR_shader_subgroup_basic extension. 504 505`GL_KHR_shader_subgroup_clustered` 506> Represents the GL_KHR_shader_subgroup_clustered extension. 507 508`GL_KHR_shader_subgroup_quad` 509> Represents the GL_KHR_shader_subgroup_quad extension. 510 511`GL_KHR_shader_subgroup_rotate` 512> Represents the GL_KHR_shader_subgroup_rotate extension. 513 514`GL_KHR_shader_subgroup_shuffle` 515> Represents the GL_KHR_shader_subgroup_shuffle extension. 516 517`GL_KHR_shader_subgroup_shuffle_relative` 518> Represents the GL_KHR_shader_subgroup_shuffle_relative extension. 519 520`GL_KHR_shader_subgroup_vote` 521> Represents the GL_KHR_shader_subgroup_vote extension. 522 523`GL_NV_cluster_acceleration_structure` 524> Represents the GL_NV_cluster_acceleration_structure extension. 525 526`GL_NV_compute_shader_derivatives` 527> Represents the GL_NV_compute_shader_derivatives extension. 528 529`GL_NV_cooperative_vector` 530> Represents the GL_NV_cooperative_vector extension. 531 532`GL_NV_fragment_shader_barycentric` 533> Represents the GL_NV_fragment_shader_barycentric extension. 534 535`GL_NV_gpu_shader5` 536> Represents the GL_NV_gpu_shader5 extension. 537 538`GL_NV_ray_tracing` 539> Represents the GL_NV_ray_tracing extension. 540 541`GL_NV_ray_tracing_motion_blur` 542> Represents the GL_NV_ray_tracing_motion_blur extension. 543 544`GL_NV_shader_atomic_fp16_vector` 545> Represents the GL_NV_shader_atomic_fp16_vector extension. 546 547`GL_NV_shader_invocation_reorder` 548> Represents the GL_NV_shader_invocation_reorder extension. 549 550`GL_NV_shader_subgroup_partitioned` 551> Represents the GL_NV_shader_subgroup_partitioned extension. 552 553`GL_NV_shader_texture_footprint` 554> Represents the GL_NV_shader_texture_footprint extension. 555 556`SPV_EXT_demote_to_helper_invocation` 557> Represents the SPIR-V extension for demoting to helper invocation. 558 559`SPV_EXT_descriptor_indexing` 560> Represents the SPIR-V extension for descriptor indexing. 561 562`SPV_EXT_fragment_fully_covered` 563> Represents the SPIR-V extension for SPV_EXT_fragment_fully_covered. 564 565`SPV_EXT_fragment_shader_interlock` 566> Represents the SPIR-V extension for fragment shader interlock operations. 567 568`SPV_EXT_mesh_shader` 569> Represents the SPIR-V extension for mesh shaders. 570 571`SPV_EXT_physical_storage_buffer` 572> Represents the SPIR-V extension for physical storage buffer. 573 574`SPV_EXT_replicated_composites` 575> Represents the SPIR-V extension for SPV_EXT_replicated_composites. 576 577`SPV_EXT_shader_atomic_float16_add` 578> Represents the SPIR-V extension for atomic float16 add operations. 579 580`SPV_EXT_shader_atomic_float_add` 581> Represents the SPIR-V extension for atomic float add operations. 582 583`SPV_EXT_shader_atomic_float_min_max` 584> Represents the SPIR-V extension for atomic float min/max operations. 585 586`SPV_GOOGLE_user_type` 587> Represents the SPIR-V extension for SPV_GOOGLE_user_type. 588 589`SPV_KHR_compute_shader_derivatives` 590> Represents the SPIR-V extension for compute shader derivatives. 591 592`SPV_KHR_cooperative_matrix` 593> Represents the SPIR-V extension for SPV_KHR_cooperative_matrix. 594 595`SPV_KHR_device_group` 596> Represents the SPIR-V extension for device-group information. 597 598`SPV_KHR_fragment_shader_barycentric` 599> Represents the SPIR-V extension for fragment shader barycentric. 600 601`SPV_KHR_maximal_reconvergence` 602> Represents the SPIR-V extension for maximal reconvergence. 603 604`SPV_KHR_non_semantic_info` 605> Represents the SPIR-V extension for non-semantic information. 606 607`SPV_KHR_quad_control` 608> Represents the SPIR-V extension for quad group control. 609 610`SPV_KHR_ray_query` 611> Represents the SPIR-V extension for ray queries. 612 613`SPV_KHR_ray_tracing` 614> Represents the SPIR-V extension for ray tracing. 615 616`SPV_KHR_ray_tracing_position_fetch` 617> Represents the SPIR-V extension for ray tracing position fetch. 618> Should be used with either SPV_KHR_ray_query or SPV_KHR_ray_tracing. 619 620`SPV_KHR_shader_clock` 621> Represents the SPIR-V extension for shader clock. 622 623`SPV_KHR_subgroup_rotate` 624> Represents the SPIR-V extension enables rotating values across invocations within a subgroup. 625 626`SPV_KHR_vulkan_memory_model` 627> Represents the SPIR-V extension for SPV_KHR_vulkan_memory_model. 628 629`SPV_NV_bindless_texture` 630> Represents the SPIR-V extension for SPV_NV_bindless_texture. 631 632`SPV_NV_cluster_acceleration_structure` 633> Represents the SPIR-V extension for cluster acceleration structure. 634 635`SPV_NV_compute_shader_derivatives` 636> Represents the SPIR-V extension for compute shader derivatives. 637 638`SPV_NV_cooperative_matrix2` 639> Represents the SPIR-V extension for SPV_NV_cooperative_matrix2. 640 641`SPV_NV_cooperative_vector` 642> Represents the SPIR-V extension for SPV_NV_cooperative_vector. 643 644`SPV_NV_linear_swept_spheres` 645> Represents the SPIR-V extension for linear swept spheres. 646 647`SPV_NV_ray_tracing_motion_blur` 648> Represents the SPIR-V extension for ray tracing motion blur. 649 650`SPV_NV_shader_image_footprint` 651> Represents the SPIR-V extension for shader image footprint. 652 653`SPV_NV_shader_invocation_reorder` 654> Represents the SPIR-V extension for shader invocation reorder. 655> Requires SPV_KHR_ray_tracing. 656 657`SPV_NV_shader_subgroup_partitioned` 658> Represents the SPIR-V extension for shader subgroup partitioned. 659 660`SPV_NV_tensor_addressing` 661> Represents the SPIR-V extension for SPV_NV_tensor_addressing. 662 663`spvAtomicFloat16AddEXT` 664> Represents the SPIR-V capability for atomic float 16 add operations. 665 666`spvAtomicFloat16MinMaxEXT` 667> Represents the SPIR-V capability for atomic float 16 min/max operations. 668 669`spvAtomicFloat32AddEXT` 670> Represents the SPIR-V capability for atomic float 32 add operations. 671 672`spvAtomicFloat32MinMaxEXT` 673> Represents the SPIR-V capability for atomic float 32 min/max operations. 674 675`spvAtomicFloat64AddEXT` 676> Represents the SPIR-V capability for atomic float 64 add operations. 677 678`spvAtomicFloat64MinMaxEXT` 679> Represents the SPIR-V capability for atomic float 64 min/max operations. 680 681`spvBindlessTextureNV` 682> Represents the SPIR-V capability for the bindless texture. 683 684`spvCooperativeMatrixBlockLoadsNV` 685> Represents the SPIR-V capability for cooperative matrix 2 686 687`spvCooperativeMatrixConversionsNV` 688> Represents the SPIR-V capability for cooperative matrix 2 689 690`spvCooperativeMatrixKHR` 691> Represents the SPIR-V capability for cooperative matrices 692 693`spvCooperativeMatrixPerElementOperationsNV` 694> Represents the SPIR-V capability for cooperative matrix 2 695 696`spvCooperativeMatrixReductionsNV` 697> Represents the SPIR-V capability for cooperative matrix 2 698 699`spvCooperativeMatrixTensorAddressingNV` 700> Represents the SPIR-V capability for cooperative matrix 2 701 702`spvCooperativeVectorNV` 703> Represents the SPIR-V capability for cooperative vectors 704 705`spvCooperativeVectorTrainingNV` 706> Represents the SPIR-V capability for cooperative vector training 707 708`spvDemoteToHelperInvocation` 709> Represents the SPIR-V capability for demoting to helper invocation. 710 711`spvDemoteToHelperInvocationEXT` 712> Represents the SPIR-V capability for demoting to helper invocation. 713 714`spvDerivativeControl` 715> Represents the SPIR-V capability for 'derivative control' operations. 716 717`spvDeviceGroup` 718> Represents the SPIR-V capability for DeviceGroup. 719 720`spvFragmentBarycentricKHR` 721> Represents the SPIR-V capability for using SPV_KHR_fragment_shader_barycentric. 722 723`spvFragmentFullyCoveredEXT` 724> Represents the SPIR-V capability for using SPV_EXT_fragment_fully_covered functionality. 725 726`spvFragmentShaderPixelInterlockEXT` 727> Represents the SPIR-V capability for using SPV_EXT_fragment_shader_interlock. 728 729`spvGroupNonUniformArithmetic` 730> Represents the SPIR-V capability for group non-uniform arithmetic operations. 731 732`spvGroupNonUniformBallot` 733> Represents the SPIR-V capability for group non-uniform ballot operations. 734 735`spvGroupNonUniformPartitionedNV` 736> Represents the SPIR-V capability for group non-uniform partitioned operations. 737 738`spvGroupNonUniformQuad` 739> Represents the SPIR-V capability for group non-uniform quad operations. 740 741`spvGroupNonUniformRotateKHR` 742> Represents the SPIR-V capability for group non-uniform rotate operations. 743 744`spvGroupNonUniformShuffle` 745> Represents the SPIR-V capability for group non-uniform shuffle operations. 746 747`spvGroupNonUniformVote` 748> Represents the SPIR-V capability for group non-uniform vote operations. 749 750`spvImageFootprintNV` 751> Represents the SPIR-V capability for image footprint. 752 753`spvImageGatherExtended` 754> Represents the SPIR-V capability for extended image gather operations. 755 756`spvImageQuery` 757> Represents the SPIR-V capability for image query operations. 758 759`spvInt64Atomics` 760> Represents the SPIR-V capability for 64-bit integer atomics. 761 762`spvMaximalReconvergenceKHR` 763> Represents the SPIR-V capability for maximal reconvergence. 764 765`spvMeshShadingEXT` 766> Represents the SPIR-V capability for mesh shading. 767 768`spvMinLod` 769> Represents the SPIR-V capability for using minimum LOD operations. 770 771`spvQuadControlKHR` 772> Represents the SPIR-V capability for quad group control. 773 774`spvRayQueryKHR` 775> Represents the SPIR-V capability for ray query. 776 777`spvRayQueryPositionFetchKHR` 778> Represents the SPIR-V capability for ray query position fetch. 779 780`spvRayTracingClusterAccelerationStructureNV` 781> Represents the SPIR-V capability for cluster acceleration structure. 782 783`spvRayTracingKHR` 784> Represents the SPIR-V capability for ray tracing. 785 786`spvRayTracingLinearSweptSpheresGeometryNV` 787> Represents the SPIR-V capability for linear swept spheres. 788 789`spvRayTracingMotionBlurNV` 790> Represents the SPIR-V capability for ray tracing motion blur. 791 792`spvRayTracingPositionFetchKHR` 793> Represents the SPIR-V capability for ray tracing position fetch. 794 795`spvReplicatedCompositesEXT` 796> Represents the SPIR-V capability for replicated composites 797 798`spvShaderClockKHR` 799> Represents the SPIR-V capability for shader clock. 800 801`spvShaderInvocationReorderNV` 802> Represents the SPIR-V capability for shader invocation reorder. 803 804`spvShaderNonUniform` 805> Represents the SPIR-V capability for non-uniform resource indexing. 806 807`spvShaderNonUniformEXT` 808> Represents the SPIR-V capability for non-uniform resource indexing. 809 810`spvSparseResidency` 811> Represents the SPIR-V capability for sparse residency. 812 813`spvTensorAddressingNV` 814> Represents the SPIR-V capability for tensor addressing 815 816`spvVulkanMemoryModelDeviceScopeKHR` 817> Represents the SPIR-V capability for vulkan memory model. 818 819`spvVulkanMemoryModelKHR` 820> Represents the SPIR-V capability for vulkan memory model. 821 822Compound Capabilities 823---------------------- 824*Capabilities to specify capabilities created by other capabilities (`raytracing`, `meshshading`...)* 825 826`amplification_mesh` 827> Collection of shader stages 828 829`any_cpp_target` 830> All "cpp syntax" code-gen targets 831 832`any_gfx_target` 833> All slang-gfx compatible code-gen targets 834 835`any_stage` 836> Collection of all shader stages 837 838`any_target` 839> All code-gen targets 840 841`any_textual_target` 842> All non-asm code-gen targets 843 844`anyhit_closesthit` 845> Collection of shader stages 846 847`anyhit_closesthit_intersection` 848> Collection of shader stages 849 850`anyhit_closesthit_intersection_miss` 851> Collection of shader stages 852 853`appendstructuredbuffer` 854> Capabilities required to use AppendStructuredBuffer 855 856`atomic64` 857> Capabilities needed for int64/uint64 atomic operations 858 859`atomic_glsl` 860> (GLSL/SPIRV) Capabilities required to use GLSL-400 atomic operations 861 862`atomic_glsl_float1` 863> (GLSL/SPIRV) Capabilities required to use GLSL-tier-1 float-atomic operations 864 865`atomic_glsl_float2` 866> (GLSL/SPIRV) Capabilities required to use GLSL-tier-2 float-atomic operations 867 868`atomic_glsl_halfvec` 869> (GLSL/SPIRV) Capabilities required to use NVAPI GLSL-fp16 float-atomic operations 870 871`atomic_glsl_hlsl_cuda9_int64` 872> (All implemented targets) Capabilities required to use atomic operations (cuda_sm_9 tier atomics) 873 874`atomic_glsl_hlsl_cuda_metal` 875> (All implemented targets) Capabilities required to use atomic operations 876 877`atomic_glsl_hlsl_nvapi_cuda5_int64` 878> (All implemented targets) Capabilities required to use atomic operations of int64 (cuda_sm_5 tier atomics) 879 880`atomic_glsl_hlsl_nvapi_cuda6_int64` 881> (All implemented targets) Capabilities required to use atomic operations of int64 (cuda_sm_6 tier atomics) 882 883`atomic_glsl_hlsl_nvapi_cuda9_int64` 884> (All implemented targets) Capabilities required to use atomic operations of int64 (cuda_sm_9 tier atomics) 885 886`atomic_glsl_hlsl_nvapi_cuda_metal_float1` 887> (All implemented targets) Capabilities required to use atomic operations of GLSL tier-1 float atomics 888 889`atomic_glsl_int64` 890> (GLSL/SPIRV) Capabilities required to use int64/uint64 atomic operations 891 892`atomic_hlsl` 893> (hlsl only) Capabilities required to use hlsl atomic operations 894 895`atomic_hlsl_nvapi` 896> (hlsl only) Capabilities required to use hlsl NVAPI atomics 897 898`atomic_hlsl_sm_6_6` 899> (hlsl only) Capabilities required to use hlsl sm_6_6 atomics 900 901`atomicfloat` 902> Capabilities needed to use GLSL-tier-1 float-atomic operations 903 904`atomicfloat2` 905> Capabilities needed to use GLSL-tier-2 float-atomic operations 906 907`breakpoint` 908> Capabilities required to enable shader breakpoints 909 910`bufferreference` 911> Capabilities needed to use GLSL buffer-reference's 912 913`bufferreference_int64` 914> Capabilities needed to use GLSL buffer-reference's with int64 915 916`byteaddressbuffer` 917> Capabilities required to use ByteAddressBuffer 918 919`byteaddressbuffer_rw` 920> Capabilities required to use RWByteAddressBuffer 921 922`compute_fragment` 923> Collection of shader stages 924 925`compute_fragment_geometry_vertex` 926> Collection of shader stages 927 928`compute_tesscontrol_tesseval` 929> Collection of shader stages 930 931`consumestructuredbuffer` 932> Capabilities required to use ConsumeStructuredBuffer 933 934`cooperative_matrix` 935> Capabilities needed to use cooperative matrices 936 937`cooperative_matrix_2` 938> Capabilities needed to use tensor addressing 939 940`cooperative_matrix_block_load` 941> Capabilities needed to use decodeFunc with cooperative matrix load 942 943`cooperative_matrix_conversion` 944> Capabilities needed to convert cooperative matrices 945 946`cooperative_matrix_map_element` 947> Capabilities needed to use MapElement operation with cooperative matrix 948 949`cooperative_matrix_reduction` 950> Capabilities needed to use reduction operations with cooperative matrix 951 952`cooperative_matrix_tensor_addressing` 953> Capabilities needed to load or store with tensor_addressing extension 954 955`cooperative_vector` 956> Capabilities needed to use cooperative vectors 957> Note that cpp and cuda are supported via a fallback non-cooperative implementation 958> No HLSL shader model bound yet 959 960`cooperative_vector_training` 961> Capabilities needed to train cooperative vectors 962 963`cpp_cuda` 964> CPP and CUDA code-gen targets 965 966`cpp_cuda_glsl_hlsl` 967> CPP, CUDA, GLSL, and HLSL code-gen targets 968 969`cpp_cuda_glsl_hlsl_metal_spirv` 970> CPP, CUDA, GLSL, HLSL, Metal and SPIRV code-gen targets 971 972`cpp_cuda_glsl_hlsl_metal_spirv_wgsl` 973> CPP, CUDA, GLSL, HLSL, Metal, SPIRV and WGSL code-gen targets 974 975`cpp_cuda_glsl_hlsl_spirv` 976> CPP, CUDA, GLSL, HLSL, and SPIRV code-gen targets 977 978`cpp_cuda_glsl_hlsl_spirv_wgsl` 979> CPP, CUDA, GLSL, HLSL, SPIRV and WGSL code-gen targets 980 981`cpp_cuda_glsl_spirv` 982> CPP, CUDA, GLSL and SPIRV code-gen targets 983 984`cpp_cuda_hlsl` 985> CPP, CUDA, and HLSL code-gen targets 986 987`cpp_cuda_hlsl_metal_spirv` 988> CPP, CUDA, HLSL, Metal, and SPIRV code-gen targets 989 990`cpp_cuda_hlsl_spirv` 991> CPP, CUDA, HLSL, and SPIRV code-gen targets 992 993`cpp_cuda_metal_spirv` 994> CPP, CUDA, Metal, and SPIRV code-gen targets 995 996`cpp_cuda_spirv` 997> CPP, CUDA and SPIRV code-gen targets 998 999`cpp_glsl` 1000> CPP, and GLSL code-gen targets 1001 1002`cpp_glsl_hlsl_metal_spirv` 1003> CPP, GLSL, HLSL, Metal, and SPIRV code-gen targets 1004 1005`cpp_glsl_hlsl_metal_spirv_wgsl` 1006> CPP, GLSL, HLSL, Metal, SPIRV and WGSL code-gen targets 1007 1008`cpp_glsl_hlsl_spirv` 1009> CPP, GLSL, HLSL, and SPIRV code-gen targets 1010 1011`cpp_glsl_hlsl_spirv_wgsl` 1012> CPP, GLSL, HLSL, SPIRV and WGSL code-gen targets 1013 1014`cpp_hlsl` 1015> CPP, and HLSL code-gen targets 1016 1017`cuda_glsl_hlsl` 1018> CUDA, GLSL, and HLSL code-gen targets 1019 1020`cuda_glsl_hlsl_metal_spirv` 1021> CUDA, GLSL, HLSL, Metal, and SPIRV code-gen targets 1022 1023`cuda_glsl_hlsl_metal_spirv_wgsl` 1024> CUDA, GLSL, HLSL, Metal, SPIRV and WGSL code-gen targets 1025 1026`cuda_glsl_hlsl_spirv` 1027> CUDA, GLSL, HLSL, and SPIRV code-gen targets 1028 1029`cuda_glsl_hlsl_spirv_wgsl` 1030> CUDA, GLSL, HLSL, SPIRV, and WGSL code-gen targets 1031 1032`cuda_glsl_metal_spirv` 1033> CUDA, GLSL, Metal, and SPIRV code-gen targets 1034 1035`cuda_glsl_metal_spirv_wgsl` 1036> CUDA, GLSL, Metal, SPIRV and WGSL code-gen targets 1037 1038`cuda_glsl_spirv` 1039> CUDA, GLSL, and SPIRV code-gen targets 1040 1041`cuda_hlsl` 1042> CUDA, and HLSL code-gen targets 1043 1044`cuda_hlsl_metal_spirv` 1045> CUDA, HLSL, Metal, and SPIRV code-gen targets 1046 1047`cuda_hlsl_spirv` 1048> CUDA, HLSL, SPIRV code-gen targets 1049 1050`cuda_spirv` 1051> CUDA and SPIRV code-gen targets 1052 1053`domain_hull` 1054> Collection of shader stages 1055 1056`fragmentprocessing` 1057> Capabilities required to use fragment derivative operations (without GLSL derivativecontrol) 1058 1059`fragmentprocessing_derivativecontrol` 1060> Capabilities required to use fragment derivative operations (with GLSL derivativecontrol) 1061 1062`fragmentshaderbarycentric` 1063> Capabilities needed to use fragment-shader-barycentric's 1064 1065`fragmentshaderinterlock` 1066> Capabilities needed for interlocked-fragment operations 1067 1068`getattributeatvertex` 1069> Capabilities required to use 'getAttributeAtVertex' 1070 1071`glsl_hlsl_metal_spirv` 1072> GLSL, HLSL, Metal, and SPIRV code-gen targets 1073 1074`glsl_hlsl_metal_spirv_wgsl` 1075> GLSL, HLSL, Metal, SPIRV and WGSL code-gen targets 1076 1077`glsl_hlsl_spirv` 1078> GLSL, HLSL, and SPIRV code-gen targets 1079 1080`glsl_hlsl_spirv_wgsl` 1081> GLSL, HLSL, SPIRV and WGSL code-gen targets 1082 1083`glsl_metal_spirv` 1084> GLSL, Metal, and SPIRV code-gen targets 1085 1086`glsl_metal_spirv_wgsl` 1087> GLSL, Metal, SPIRV and WGSL code-gen targets 1088 1089`glsl_spirv` 1090> GLSL, and SPIRV code-gen targets 1091 1092`glsl_spirv_wgsl` 1093> GLSL, SPIRV, and WGSL code-gen targets 1094 1095`helper_lane` 1096> Capabilities required to enable helper-lane demotion 1097 1098`hlsl_spirv` 1099> HLSL, and SPIRV code-gen targets 1100 1101`image_loadstore` 1102> (GLSL/SPIRV) Capabilities required to use image load/image store operations 1103 1104`image_samples` 1105> Capabilities required to query image (RWTexture) sample info 1106 1107`image_size` 1108> Capabilities required to query image (RWTexture) size info 1109 1110`memorybarrier` 1111> Capabilities required to use sm_5_0 style memory barriers 1112 1113`meshshading` 1114> Ccapabilities required to use mesh shading features 1115 1116`motionblur` 1117> Capabilities needed for raytracing-motionblur 1118 1119`nonuniformqualifier` 1120> Capabilities required to use NonUniform qualifier 1121 1122`nvapi` 1123> NVAPI capability for HLSL 1124 1125`pack_vector` 1126> Capabilities required to use pack/unpack intrinsics on packed vector data 1127 1128`printf` 1129> Capabilities required to use 'printf' 1130 1131`quad_control` 1132> Capabilities required to enable quad group control 1133 1134`raygen_closesthit_miss` 1135> Collection of shader stages 1136 1137`raygen_closesthit_miss_callable` 1138> Collection of shader stages 1139 1140`rayquery` 1141> Capabilities needed for compute-shader rayquery 1142 1143`rayquery_position` 1144> Collection of capabilities for rayquery + ray_tracing_position_fetch. 1145 1146`raytracing` 1147> Capabilities needed for minimal raytracing support 1148 1149`raytracing_allstages` 1150> Collection of capabilities for raytracing with all raytracing stages. 1151 1152`raytracing_anyhit` 1153> Collection of capabilities for raytracing with the shader stage of anyhit. 1154 1155`raytracing_anyhit_closesthit` 1156> Collection of capabilities for raytracing with the shader stages of anyhit and closesthit. 1157 1158`raytracing_anyhit_closesthit_intersection` 1159> Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, and intersection. 1160 1161`raytracing_anyhit_closesthit_intersection_miss` 1162> Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, intersection, and miss. 1163 1164`raytracing_intersection` 1165> Collection of capabilities for raytracing with the shader stage of intersection. 1166 1167`raytracing_lss` 1168> Collection of capabilities for linear swept spheres. 1169 1170`raytracing_lss_ho` 1171> hit object APIs allow raygen shaders, but not the non-hit object APIs. So we have this special 1172> capdef specifically for the hitobject variant. 1173> Collection of capabilities for linear swept spheres. 1174 1175`raytracing_motionblur` 1176> Capabilities needed for compute-shader rayquery and motion-blur 1177 1178`raytracing_motionblur_anyhit_closesthit_intersection_miss` 1179> Collection of capabilities for raytracing + motion blur and the shader stages of anyhit, closesthit, intersection, and miss. 1180 1181`raytracing_motionblur_raygen_closesthit_miss` 1182> Collection of capabilities for raytracing + motion blur and the shader stages of raygen, closesthit, and miss. 1183 1184`raytracing_position` 1185> Collection of capabilities for raytracing + ray_tracing_position_fetch and the shader stages of anyhit and closesthit. 1186 1187`raytracing_raygen_closesthit_miss` 1188> Collection of capabilities for raytracing with the shader stages of raygen, closesthit, and miss. 1189 1190`raytracing_raygen_closesthit_miss_callable` 1191> Collection of capabilities for raytracing the shader stages of raygen, closesthit, miss, and callable. 1192 1193`raytracing_stages` 1194> Collection of shader stages 1195 1196`raytracingstages_compute` 1197> Collection of shader stages 1198 1199`raytracingstages_compute_amplification_mesh` 1200> Collection of shader stages 1201 1202`raytracingstages_compute_fragment` 1203> Collection of shader stages 1204 1205`raytracingstages_compute_fragment_geometry_vertex` 1206> Collection of shader stages 1207 1208`raytracingstages_fragment` 1209> Collection of shader stages 1210 1211`ser` 1212> Capabilities needed for shader-execution-reordering 1213 1214`ser_any_closesthit_intersection_miss` 1215> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, intersection, and miss. 1216 1217`ser_anyhit_closesthit` 1218> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit and closesthit. 1219 1220`ser_anyhit_closesthit_intersection` 1221> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, and intersection. 1222 1223`ser_motion` 1224> Capabilities needed for shader-execution-reordering and motion-blur 1225 1226`ser_motion_raygen` 1227> Collection of capabilities for raytracing raytracing + motion blur + shader execution reordering and the shader stage of raygen. 1228 1229`ser_motion_raygen_closesthit_miss` 1230> Collection of capabilities for raytracing + motion blur + shader execution reordering and the shader stages of raygen, closesthit, and miss. 1231 1232`ser_raygen` 1233> Collection of capabilities for raytracing + shader execution reordering and the shader stage of raygen. 1234 1235`ser_raygen_closesthit_miss` 1236> Collection of capabilities for raytracing + shader execution reordering and the shader stages of raygen, closesthit, and miss. 1237 1238`shader5_sm_4_0` 1239> Capabilities required to use sm_4_0 features apart of GL_ARB_gpu_shader5 1240 1241`shader5_sm_5_0` 1242> Capabilities required to use sm_5_0 features apart of GL_ARB_gpu_shader5 1243 1244`shaderclock` 1245> Capabilities needed for realtime clocks 1246 1247`shaderinvocationgroup` 1248> Capabilities required to use GLSL-style subgroup operations 'subgroup_vote' 1249 1250`shadermemorycontrol` 1251> (gfx targets) Capabilities needed to use memory barriers 1252 1253`shadermemorycontrol_compute` 1254> (gfx targets) Capabilities required to use memory barriers that only work for raytracing & compute shader stages 1255 1256`structuredbuffer` 1257> Capabilities required to use StructuredBuffer 1258 1259`structuredbuffer_rw` 1260> Capabilities required to use RWStructuredBuffer 1261 1262`subgroup_arithmetic` 1263> Capabilities required to use GLSL-style subgroup operations 'subgroup_arithmetic' 1264 1265`subgroup_ballot` 1266> Capabilities required to use GLSL-style subgroup operations 'subgroup_ballot' 1267 1268`subgroup_ballot_activemask` 1269> Capabilities required to use GLSL-style subgroup operations 'subgroup_ballot_activemask' 1270 1271`subgroup_basic` 1272> Capabilities required to use GLSL-style subgroup operations 'subgroup_basic' 1273 1274`subgroup_basic_ballot` 1275> Capabilities required to use GLSL-style subgroup operations 'subgroup_basic_ballot' 1276 1277`subgroup_clustered` 1278> Capabilities required to use GLSL-style subgroup operations 'subgroup_clustered' 1279 1280`subgroup_partitioned` 1281> Capabilities required to use GLSL-style subgroup operations 'subgroup_partitioned' 1282 1283`subgroup_quad` 1284> Capabilities required to use GLSL-style subgroup operations 'subgroup_quad' 1285 1286`subgroup_rotate` 1287> Capabilities required to use GLSL-style subgroup rotate operations 'subgroup_rotate' 1288 1289`subgroup_shuffle` 1290> Capabilities required to use GLSL-style subgroup operations 'subgroup_shuffle' 1291 1292`subgroup_shufflerelative` 1293> Capabilities required to use GLSL-style subgroup operations 'subgroup_shuffle_relative' 1294 1295`subgroup_vote` 1296> Capabilities required to use GLSL-style subgroup operations 'subgroup_vote' 1297 1298`subpass` 1299> Capabilities required to use Subpass-Input's 1300 1301`tensor_addressing` 1302> Capabilities needed to use tensor addressing 1303 1304`texture_gather` 1305> Capabilities required to use 'vertex/fragment/geometry shader only' texture gather operations 1306 1307`texture_querylevels` 1308> Capabilities required to query texture level info 1309 1310`texture_querylod` 1311> Capabilities required to query texture LOD info 1312 1313`texture_shadowlod` 1314> Capabilities required to query shadow texture lod info 1315 1316`texture_size` 1317> Capabilities required to query texture sample info 1318 1319`texture_sm_4_0` 1320> Capabilities required to use sm_4_0 texture operations 1321 1322`texture_sm_4_0_fragment` 1323> Capabilities required to use 'fragment shader only' texture operations 1324 1325`texture_sm_4_1` 1326> Capabilities required to use sm_4_1 texture operations 1327 1328`texture_sm_4_1_clamp_fragment` 1329> Capabilities required to use 'fragment shader only' texture clamp operations 1330 1331`texture_sm_4_1_compute_fragment` 1332> Capabilities required to use 'compute/fragment shader only' texture operations. 1333> We do not require 'compute'/'fragment' shader capabilities since this seems to be incorrect behavior despite what official documentation says. 1334 1335`texture_sm_4_1_samplerless` 1336> Capabilities required to use sm_4_1 samplerless texture operations 1337 1338`texture_sm_4_1_vertex_fragment_geometry` 1339> Capabilities required to use 'fragment/geometry shader only' texture clamp operations 1340 1341`texturefootprint` 1342> Capabilities required to use basic TextureFootprint operations 1343 1344`texturefootprintclamp` 1345> Capabilities required to use TextureFootprint clamp operations 1346 1347`vk_mem_model` 1348> Capabilities needed to use vulkan memory model 1349 1350Other 1351---------------------- 1352*Capabilities which may be deprecated* 1353 1354`DX_4_0` 1355> Use `sm_4_0` instead 1356 1357`DX_4_1` 1358> Use `sm_4_1` instead 1359 1360`DX_5_0` 1361> Use `sm_5_0` instead 1362 1363`DX_5_1` 1364> Use `sm_5_1` instead 1365 1366`DX_6_0` 1367> Use `sm_6_0` instead 1368 1369`DX_6_1` 1370> Use `sm_6_1` instead 1371 1372`DX_6_2` 1373> Use `sm_6_2` instead 1374 1375`DX_6_3` 1376> Use `sm_6_3` instead 1377 1378`DX_6_4` 1379> Use `sm_6_4` instead 1380 1381`DX_6_5` 1382> Use `sm_6_5` instead 1383 1384`DX_6_6` 1385> Use `sm_6_6` instead 1386 1387`DX_6_7` 1388> Use `sm_6_7` instead 1389 1390`DX_6_8` 1391> Use `sm_6_8` instead 1392 1393`DX_6_9` 1394> Use `sm_6_9` instead 1395 1396`GLSL_410_SPIRV_1_0` 1397> User should not use this capability 1398 1399`GLSL_420_SPIRV_1_0` 1400> User should not use this capability 1401 1402`GLSL_430_SPIRV_1_0` 1403> User should not use this capability 1404 1405`GLSL_430_SPIRV_1_0_compute` 1406> User should not use this capability 1407 1408`METAL_2_3` 1409> Use `metallib_2_3` instead 1410 1411`METAL_2_4` 1412> Use `metallib_2_4` instead 1413 1414`METAL_3_0` 1415> Use `metallib_3_0` instead 1416 1417`METAL_3_1` 1418> Use `metallib_3_1` instead 1419 1420`SPIRV_1_0` 1421> Use `spirv_1_0` instead 1422 1423`SPIRV_1_1` 1424> Use `spirv_1_1` instead 1425 1426`SPIRV_1_2` 1427> Use `spirv_1_2` instead 1428 1429`SPIRV_1_3` 1430> Use `spirv_1_3` instead 1431 1432`SPIRV_1_4` 1433> Use `spirv_1_4` instead 1434 1435`SPIRV_1_5` 1436> Use `spirv_1_5` instead 1437 1438`SPIRV_1_6` 1439> Use `spirv_1_6` instead 1440 1441`all` 1442> User should not use this capability 1443 1444`optix_coopvec` 1445> Represents capabilities required for optix cooperative vector support.