yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Yong HeEnhance buffer load specialization pass to specialize past field extracts. (#8547)e4611e2e3

master
39.0 KiB1445 linesraw

layout: user-guide

Capability Atoms

Sections:

  1. Targets
  2. Stages
  3. Versions
  4. Extensions
  5. Compound Capabilities
  6. Other

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_0 instead

DX_4_1

Use sm_4_1 instead

DX_5_0

Use sm_5_0 instead

DX_5_1

Use sm_5_1 instead

DX_6_0

Use sm_6_0 instead

DX_6_1

Use sm_6_1 instead

DX_6_2

Use sm_6_2 instead

DX_6_3

Use sm_6_3 instead

DX_6_4

Use sm_6_4 instead

DX_6_5

Use sm_6_5 instead

DX_6_6

Use sm_6_6 instead

DX_6_7

Use sm_6_7 instead

DX_6_8

Use sm_6_8 instead

DX_6_9

Use sm_6_9 instead

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_3 instead

METAL_2_4

Use metallib_2_4 instead

METAL_3_0

Use metallib_3_0 instead

METAL_3_1

Use metallib_3_1 instead

SPIRV_1_0

Use spirv_1_0 instead

SPIRV_1_1

Use spirv_1_1 instead

SPIRV_1_2

Use spirv_1_2 instead

SPIRV_1_3

Use spirv_1_3 instead

SPIRV_1_4

Use spirv_1_4 instead

SPIRV_1_5

Use spirv_1_5 instead

SPIRV_1_6

Use spirv_1_6 instead

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.