summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authoraidanfnv <aidanf@nvidia.com>2025-07-21 17:29:40 -0700
committerGitHub <noreply@github.com>2025-07-22 00:29:40 +0000
commit9adac4069fbcc7ce5bea2c42d19c61eb1dcd7f25 (patch)
tree65c0d8c483b9e5357fcf61aa7a35287e537d0017 /docs
parent13dd01489efd89268d15751c5299e5783015bbcd (diff)
Fix capability generator to sort capabilities alphabetically within header groups (#7851)
* Fix capability generator to sort capabilities alphabetically within header groups The slang-capability-generator now sorts capabilities alphabetically by name within each header group in the generated a3-02-reference-capability-atoms.md documentation file. This ensures consistent ordering for better readability and organization. Fixes #5030 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: aidanfnv <aidanfnv@users.noreply.github.com> * Regenerate capability atoms documentation with alphabetical sorting The capability generator now sorts capabilities alphabetically within each header group. This commit includes the regenerated documentation file to demonstrate the alphabetical sorting functionality implemented in the generator code. Generated with updated capability generator that sorts capabilities within groups: Targets, Stages, Versions, Extensions, Compound Capabilities, and Other. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * format code (#7853) Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: aidanfnv <aidanfnv@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/user-guide/a3-02-reference-capability-atoms.md1588
1 files changed, 794 insertions, 794 deletions
diff --git a/docs/user-guide/a3-02-reference-capability-atoms.md b/docs/user-guide/a3-02-reference-capability-atoms.md
index f1b2d2bdb..d46861d48 100644
--- a/docs/user-guide/a3-02-reference-capability-atoms.md
+++ b/docs/user-guide/a3-02-reference-capability-atoms.md
@@ -18,15 +18,6 @@ Targets
----------------------
*Capabilities to specify code generation targets (`glsl`, `spirv`...)*
-`textualTarget`
-> Represents a non-assembly code generation target.
-
-`hlsl`
-> Represents the HLSL code generation target.
-
-`glsl`
-> Represents the GLSL code generation target.
-
`c`
> Represents the C programming language code generation target.
@@ -36,85 +27,160 @@ Targets
`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.
-`slangvm`
-> Represents the Slang VM bytecode target.
-
Stages
----------------------
*Capabilities to specify code generation stages (`vertex`, `fragment`...)*
-`vertex`
-> Vertex shader stage
+`amplification`
+> Amplification shader stage & mesh shader capabilities
-`fragment`
-> Fragment shader stage
+`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
-`hull`
-> Hull shader stage
+`dispatch`
+> Dispatch shader stage
`domain`
> Domain shader stage
+`fragment`
+> Fragment shader stage
+
`geometry`
> Geometry shader stage
-`dispatch`
-> Dispatch 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
-`raygen`
-> Ray-Generation shader stage & ray-tracing capabilities
+`vertex`
+> Vertex shader stage
-`raygeneration`
-> Ray-Generation shader stage & ray-tracing capabilities
+Versions
+----------------------
+*Capabilities to specify versions of a code generation target (`sm_5_0`, `GLSL_400`...)*
-`intersection`
-> Intersection shader stage & ray-tracing capabilities
+`GLSL_130`
+> GLSL 130 and related capabilities of other targets.
-`anyhit`
-> Any-Hit shader stage & ray-tracing capabilities
+`GLSL_140`
+> GLSL 140 and related capabilities of other targets.
-`closesthit`
-> Closest-Hit shader stage & ray-tracing capabilities
+`GLSL_150`
+> GLSL 150 and related capabilities of other targets.
-`callable`
-> Callable shader stage & ray-tracing capabilities
+`GLSL_330`
+> GLSL 330 and related capabilities of other targets.
-`miss`
-> Ray-Miss shader stage & ray-tracing capabilities
+`GLSL_400`
+> GLSL 400 and related capabilities of other targets.
-`mesh`
-> Mesh shader stage & mesh shader capabilities
+`GLSL_410`
+> GLSL 410 and related capabilities of other targets.
-`task`
-> Task shader stage & mesh shader capabilities
+`GLSL_420`
+> GLSL 420 and related capabilities of other targets.
-`amplification`
-> Amplification shader stage & mesh shader capabilities
+`GLSL_430`
+> GLSL 430 and related capabilities of other targets.
-Versions
-----------------------
-*Capabilities to specify versions of a code generation target (`sm_5_0`, `GLSL_400`...)*
+`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.
@@ -137,6 +203,15 @@ Versions
`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.
@@ -152,269 +227,389 @@ Versions
`metallib_latest`
> Represents the latest MetalLib version.
-`hlsl_nvapi`
-> Represents HLSL NVAPI support.
-
-`hlsl_2018`
-> Represent HLSL compatibility support.
-
-`hlsl_coopvec_poc`
-> Represent compatibility support for the deprecated POC DXC
-
-`dxil_lib`
-> Represents capabilities required for DXIL Library compilation.
-
-`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.
+`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_0`
-> HLSL shader model 4.0 and related capabilities of other targets.
+`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_4_1`
-> HLSL shader model 4.1 and related capabilities of other targets.
+`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_0`
-> HLSL shader model 5.0 and related capabilities of other targets.
+`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_5_1`
-> HLSL shader model 5.1 and related capabilities of other targets.
+`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_0`
-> HLSL shader model 6.0 and related capabilities of other targets.
+`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_1`
-> HLSL shader model 6.1 and related capabilities of other targets.
+`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_2`
-> HLSL shader model 6.2 and related capabilities of other targets.
+`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_3`
-> HLSL shader model 6.3 and related capabilities of other targets.
+`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_4`
-> HLSL shader model 6.4 and related capabilities of other targets.
+`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_5`
-> HLSL shader model 6.5 and related capabilities of other targets.
+`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_6`
-> HLSL shader model 6.6 and related capabilities of other targets.
+`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_7`
-> HLSL shader model 6.7 and related capabilities of other targets.
+`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_8`
-> HLSL shader model 6.8 and related capabilities of other targets.
+`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.
-`sm_6_9`
-> HLSL shader model 6.9 and related capabilities of other targets.
-> Includes related GLSL/SPIRV extensions.
+`spirv_1_0`
+> Represents SPIR-V 1.0 version.
-`GLSL_130`
-> GLSL 130 and related capabilities of other targets.
+`spirv_1_1`
+> Represents SPIR-V 1.1 version, which includes SPIR-V 1.0.
-`GLSL_140`
-> GLSL 140 and related capabilities of other targets.
+`spirv_1_2`
+> Represents SPIR-V 1.2 version, which includes SPIR-V 1.1.
-`GLSL_150`
-> GLSL 150 and related capabilities of other targets.
+`spirv_1_3`
+> Represents SPIR-V 1.3 version, which includes SPIR-V 1.2.
-`GLSL_330`
-> GLSL 330 and related capabilities of other targets.
+`spirv_1_4`
+> Represents SPIR-V 1.4 version, which includes SPIR-V 1.3.
-`GLSL_400`
-> GLSL 400 and related capabilities of other targets.
+`spirv_1_5`
+> Represents SPIR-V 1.5 version, which includes SPIR-V 1.4 and additional extensions.
-`GLSL_410`
-> GLSL 410 and related capabilities of other targets.
+`spirv_1_6`
+> Represents SPIR-V 1.6 version, which includes SPIR-V 1.5 and additional extensions.
-`GLSL_420`
-> GLSL 420 and related capabilities of other targets.
+`spirv_latest`
+> Represents the latest SPIR-V version.
-`GLSL_430`
-> GLSL 430 and related capabilities of other targets.
+Extensions
+----------------------
+*Capabilities to specify extensions (`GL_EXT`, `SPV_EXT`...)*
-`GLSL_440`
-> GLSL 440 and related capabilities of other targets.
+`GL_ARB_derivative_control`
+> Represents the GL_ARB_derivative_control extension.
-`GLSL_450`
-> GLSL 450 and related capabilities of other targets.
+`GL_ARB_fragment_shader_interlock`
+> Represents the GL_ARB_fragment_shader_interlock extension.
-`GLSL_460`
-> GLSL 460 and related capabilities of other targets.
+`GL_ARB_gpu_shader5`
+> Represents the GL_ARB_gpu_shader5 extension.
-`cuda_sm_1_0`
-> cuda 1.0 and related capabilities of other targets.
+`GL_ARB_gpu_shader_int64`
+> Represents the GL_ARB_gpu_shader_int64 extension.
-`cuda_sm_2_0`
-> cuda 2.0 and related capabilities of other targets.
+`GL_ARB_shader_clock`
+> Represents the GL_ARB_shader_clock extension.
-`cuda_sm_3_0`
-> cuda 3.0 and related capabilities of other targets.
+`GL_ARB_shader_clock64`
+> Represents the GL_ARB_shader_clock64 extension.
-`cuda_sm_3_5`
-> cuda 3.5 and related capabilities of other targets.
+`GL_ARB_shader_image_load_store`
+> Represents the GL_ARB_shader_image_load_store extension.
-`cuda_sm_4_0`
-> cuda 4.0 and related capabilities of other targets.
+`GL_ARB_shader_image_size`
+> Represents the GL_ARB_shader_image_size extension.
-`cuda_sm_5_0`
-> cuda 5.0 and related capabilities of other targets.
+`GL_ARB_shader_texture_image_samples`
+> Represents the GL_ARB_shader_texture_image_samples extension.
-`cuda_sm_6_0`
-> cuda 6.0 and related capabilities of other targets.
+`GL_ARB_sparse_texture`
+> Represents the GL_ARB_sparse_texture extension.
-`cuda_sm_7_0`
-> cuda 7.0 and related capabilities of other targets.
+`GL_ARB_sparse_texture2`
+> Represents the GL_ARB_sparse_texture2 extension.
-`cuda_sm_8_0`
-> cuda 8.0 and related capabilities of other targets.
+`GL_ARB_sparse_texture_clamp`
+> Represents the GL_ARB_sparse_texture_clamp extension.
-`cuda_sm_9_0`
-> cuda 9.0 and related capabilities of other targets.
+`GL_ARB_texture_gather`
+> Represents the GL_ARB_texture_gather extension.
-Extensions
-----------------------
-*Capabilities to specify extensions (`GL_EXT`, `SPV_EXT`...)*
+`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_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_fragment_fully_covered`
-> Represents the SPIR-V extension for SPV_EXT_fragment_fully_covered.
+`SPV_EXT_replicated_composites`
+> Represents the SPIR-V extension for SPV_EXT_replicated_composites.
-`SPV_EXT_descriptor_indexing`
-> Represents the SPIR-V extension for descriptor indexing.
+`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_float16_add`
-> Represents the SPIR-V extension for atomic float16 add operations.
-
`SPV_EXT_shader_atomic_float_min_max`
> Represents the SPIR-V extension for atomic float min/max operations.
-`SPV_EXT_mesh_shader`
-> Represents the SPIR-V extension for mesh shaders.
+`SPV_GOOGLE_user_type`
+> Represents the SPIR-V extension for SPV_GOOGLE_user_type.
-`SPV_EXT_demote_to_helper_invocation`
-> Represents the SPIR-V extension for demoting to helper invocation.
+`SPV_KHR_compute_shader_derivatives`
+> Represents the SPIR-V extension for compute shader derivatives.
-`SPV_KHR_maximal_reconvergence`
-> Represents the SPIR-V extension for maximal reconvergence.
+`SPV_KHR_cooperative_matrix`
+> Represents the SPIR-V extension for SPV_KHR_cooperative_matrix.
-`SPV_KHR_quad_control`
-> Represents the SPIR-V extension for quad group control.
+`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_device_group`
-> Represents the SPIR-V extension for device-group information.
-
-`SPV_KHR_ray_tracing`
-> Represents the SPIR-V extension for ray tracing.
+`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.
@@ -422,99 +617,96 @@ Extensions
`SPV_KHR_shader_clock`
> Represents the SPIR-V extension for shader clock.
-`SPV_NV_shader_subgroup_partitioned`
-> Represents the SPIR-V extension for shader subgroup partitioned.
-
`SPV_KHR_subgroup_rotate`
> Represents the SPIR-V extension enables rotating values across invocations within a subgroup.
-`SPV_NV_ray_tracing_motion_blur`
-> Represents the SPIR-V extension for ray tracing motion blur.
-
-`SPV_NV_shader_invocation_reorder`
-> Represents the SPIR-V extension for shader invocation reorder.
-> Requires SPV_KHR_ray_tracing.
+`SPV_KHR_vulkan_memory_model`
+> Represents the SPIR-V extension for SPV_KHR_vulkan_memory_model.
`SPV_NV_cluster_acceleration_structure`
> Represents the SPIR-V extension for cluster acceleration structure.
-`SPV_NV_linear_swept_spheres`
-> Represents the SPIR-V extension for linear swept spheres.
-
-`SPV_NV_shader_image_footprint`
-> Represents the SPIR-V extension for shader image footprint.
-
-`SPV_KHR_compute_shader_derivatives`
-> Represents the SPIR-V extension for compute shader derivatives.
-
`SPV_NV_compute_shader_derivatives`
> Represents the SPIR-V extension for compute shader derivatives.
-`SPV_GOOGLE_user_type`
-> Represents the SPIR-V extension for SPV_GOOGLE_user_type.
-
-`SPV_EXT_replicated_composites`
-> Represents the SPIR-V extension for SPV_EXT_replicated_composites.
-
-`SPV_KHR_vulkan_memory_model`
-> Represents the SPIR-V extension for SPV_KHR_vulkan_memory_model.
+`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_KHR_cooperative_matrix`
-> Represents the SPIR-V extension for SPV_KHR_cooperative_matrix.
+`SPV_NV_linear_swept_spheres`
+> Represents the SPIR-V extension for linear swept spheres.
-`SPV_NV_tensor_addressing`
-> Represents the SPIR-V extension for SPV_NV_tensor_addressing.
+`SPV_NV_ray_tracing_motion_blur`
+> Represents the SPIR-V extension for ray tracing motion blur.
-`SPV_NV_cooperative_matrix2`
-> Represents the SPIR-V extension for SPV_NV_cooperative_matrix2.
+`SPV_NV_shader_image_footprint`
+> Represents the SPIR-V extension for shader image footprint.
-`spvDeviceGroup`
-> Represents the SPIR-V capability for DeviceGroup.
+`SPV_NV_shader_invocation_reorder`
+> Represents the SPIR-V extension for shader invocation reorder.
+> Requires SPV_KHR_ray_tracing.
-`spvAtomicFloat32AddEXT`
-> Represents the SPIR-V capability for atomic float 32 add operations.
+`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.
-`spvAtomicFloat64AddEXT`
-> Represents the SPIR-V capability for atomic float 64 add operations.
+`spvAtomicFloat16MinMaxEXT`
+> Represents the SPIR-V capability for atomic float 16 min/max operations.
-`spvInt64Atomics`
-> Represents the SPIR-V capability for 64-bit integer atomics.
+`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.
-`spvAtomicFloat16MinMaxEXT`
-> Represents the SPIR-V capability for atomic float 16 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.
-`spvDerivativeControl`
-> Represents the SPIR-V capability for 'derivative control' operations.
+`spvCooperativeMatrixBlockLoadsNV`
+> Represents the SPIR-V capability for cooperative matrix 2
-`spvImageQuery`
-> Represents the SPIR-V capability for image query operations.
+`spvCooperativeMatrixConversionsNV`
+> Represents the SPIR-V capability for cooperative matrix 2
-`spvImageGatherExtended`
-> Represents the SPIR-V capability for extended image gather operations.
+`spvCooperativeMatrixKHR`
+> Represents the SPIR-V capability for cooperative matrices
-`spvSparseResidency`
-> Represents the SPIR-V capability for sparse residency.
+`spvCooperativeMatrixPerElementOperationsNV`
+> Represents the SPIR-V capability for cooperative matrix 2
-`spvImageFootprintNV`
-> Represents the SPIR-V capability for image footprint.
+`spvCooperativeMatrixReductionsNV`
+> Represents the SPIR-V capability for cooperative matrix 2
-`spvMinLod`
-> Represents the SPIR-V capability for using minimum LOD operations.
+`spvCooperativeMatrixTensorAddressingNV`
+> Represents the SPIR-V capability for cooperative matrix 2
-`spvFragmentShaderPixelInterlockEXT`
-> Represents the SPIR-V capability for using SPV_EXT_fragment_shader_interlock.
+`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.
@@ -522,38 +714,53 @@ Extensions
`spvFragmentFullyCoveredEXT`
> Represents the SPIR-V capability for using SPV_EXT_fragment_fully_covered functionality.
-`spvGroupNonUniformBallot`
-> Represents the SPIR-V capability for group non-uniform ballot operations.
-
-`spvGroupNonUniformShuffle`
-> Represents the SPIR-V capability for group non-uniform shuffle operations.
+`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.
-`spvGroupNonUniformPartitionedNV`
-> Represents the SPIR-V capability for group non-uniform partitioned operations.
+`spvImageFootprintNV`
+> Represents the SPIR-V capability for image footprint.
-`spvGroupNonUniformRotateKHR`
-> Represents the SPIR-V capability for group non-uniform rotate operations.
+`spvImageGatherExtended`
+> Represents the SPIR-V capability for extended image gather operations.
-`spvRayTracingMotionBlurNV`
-> Represents the SPIR-V capability for ray tracing motion blur.
+`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.
-`spvRayTracingKHR`
-> Represents the SPIR-V capability for ray tracing.
+`spvMinLod`
+> Represents the SPIR-V capability for using minimum LOD operations.
-`spvRayTracingPositionFetchKHR`
-> Represents the SPIR-V capability for ray tracing position fetch.
+`spvQuadControlKHR`
+> Represents the SPIR-V capability for quad group control.
`spvRayQueryKHR`
> Represents the SPIR-V capability for ray query.
@@ -561,345 +768,254 @@ Extensions
`spvRayQueryPositionFetchKHR`
> Represents the SPIR-V capability for ray query position fetch.
-`spvShaderInvocationReorderNV`
-> Represents the SPIR-V capability for shader invocation reorder.
-
`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.
-`spvShaderClockKHR`
-> Represents the SPIR-V capability for shader clock.
-
-`spvShaderNonUniformEXT`
-> Represents the SPIR-V capability for non-uniform resource indexing.
-
-`spvShaderNonUniform`
-> Represents the SPIR-V capability for non-uniform resource indexing.
-
-`spvDemoteToHelperInvocationEXT`
-> Represents the SPIR-V capability for demoting to helper invocation.
+`spvRayTracingMotionBlurNV`
+> Represents the SPIR-V capability for ray tracing motion blur.
-`spvDemoteToHelperInvocation`
-> Represents the SPIR-V capability for demoting to helper invocation.
+`spvRayTracingPositionFetchKHR`
+> Represents the SPIR-V capability for ray tracing position fetch.
`spvReplicatedCompositesEXT`
> Represents the SPIR-V capability for replicated composites
-`spvCooperativeVectorNV`
-> Represents the SPIR-V capability for cooperative vectors
-
-`spvCooperativeVectorTrainingNV`
-> Represents the SPIR-V capability for cooperative vector training
-
-`spvCooperativeMatrixKHR`
-> Represents the SPIR-V capability for cooperative matrices
-
-`spvCooperativeMatrixReductionsNV`
-> Represents the SPIR-V capability for cooperative matrix 2
+`spvShaderClockKHR`
+> Represents the SPIR-V capability for shader clock.
-`spvCooperativeMatrixConversionsNV`
-> Represents the SPIR-V capability for cooperative matrix 2
+`spvShaderInvocationReorderNV`
+> Represents the SPIR-V capability for shader invocation reorder.
-`spvCooperativeMatrixPerElementOperationsNV`
-> Represents the SPIR-V capability for cooperative matrix 2
+`spvShaderNonUniform`
+> Represents the SPIR-V capability for non-uniform resource indexing.
-`spvCooperativeMatrixTensorAddressingNV`
-> Represents the SPIR-V capability for cooperative matrix 2
+`spvShaderNonUniformEXT`
+> Represents the SPIR-V capability for non-uniform resource indexing.
-`spvCooperativeMatrixBlockLoadsNV`
-> Represents the SPIR-V capability for cooperative matrix 2
+`spvSparseResidency`
+> Represents the SPIR-V capability for sparse residency.
`spvTensorAddressingNV`
> Represents the SPIR-V capability for tensor addressing
-`spvMaximalReconvergenceKHR`
-> Represents the SPIR-V capability for maximal reconvergence.
-
-`spvQuadControlKHR`
-> Represents the SPIR-V capability for quad group control.
-
-`spvVulkanMemoryModelKHR`
-> Represents the SPIR-V capability for vulkan memory model.
-
`spvVulkanMemoryModelDeviceScopeKHR`
> Represents the SPIR-V capability for vulkan memory model.
-`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_maximal_reconvergence`
-> Represents the GL_EXT_maximal_reconvergence extension.
-
-`GL_EXT_shader_quad_control`
-> Represents the GL_EXT_shader_quad_control 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_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_ray_tracing`
-> Represents the GL_EXT_ray_tracing_position_fetch_ray_tracing 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`
-> Represents the GL_EXT_ray_tracing_position_fetch 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_float_min_max`
-> Represents the GL_EXT_shader_atomic_float_min_max extension.
-
-`GL_EXT_shader_atomic_float2`
-> Represents the GL_EXT_shader_atomic_float2 extension.
-
-`GL_EXT_shader_atomic_int64`
-> Represents the GL_EXT_shader_atomic_int64 extension.
+`spvVulkanMemoryModelKHR`
+> Represents the SPIR-V capability for vulkan memory model.
-`GL_EXT_shader_explicit_arithmetic_types`
-> Represents the GL_EXT_shader_explicit_arithmetic_types extension.
+Compound Capabilities
+----------------------
+*Capabilities to specify capabilities created by other capabilities (`raytracing`, `meshshading`...)*
-`GL_EXT_shader_explicit_arithmetic_types_int64`
-> Represents the GL_EXT_shader_explicit_arithmetic_types_int64 extension.
+`amplification_mesh`
+> Collection of shader stages
-`GL_EXT_shader_image_load_store`
-> Represents the GL_EXT_shader_image_load_store extension.
+`any_cpp_target`
+> All "cpp syntax" code-gen targets
-`GL_EXT_shader_realtime_clock`
-> Represents the GL_EXT_shader_realtime_clock extension.
+`any_gfx_target`
+> All slang-gfx compatible code-gen targets
-`GL_EXT_texture_query_lod`
-> Represents the GL_EXT_texture_query_lod extension.
+`any_stage`
+> Collection of all shader stages
-`GL_EXT_texture_shadow_lod`
-> Represents the GL_EXT_texture_shadow_lod extension.
+`any_target`
+> All code-gen targets
-`GL_ARB_derivative_control`
-> Represents the GL_ARB_derivative_control extension.
+`any_textual_target`
+> All non-asm code-gen targets
-`GL_ARB_fragment_shader_interlock`
-> Represents the GL_ARB_fragment_shader_interlock extension.
+`anyhit_closesthit`
+> Collection of shader stages
-`GL_ARB_gpu_shader5`
-> Represents the GL_ARB_gpu_shader5 extension.
+`anyhit_closesthit_intersection`
+> Collection of shader stages
-`GL_ARB_shader_image_load_store`
-> Represents the GL_ARB_shader_image_load_store extension.
+`anyhit_closesthit_intersection_miss`
+> Collection of shader stages
-`GL_ARB_shader_image_size`
-> Represents the GL_ARB_shader_image_size extension.
+`appendstructuredbuffer`
+> Capabilities required to use AppendStructuredBuffer
-`GL_ARB_texture_multisample`
-> Represents the GL_ARB_texture_multisample extension.
+`atomic64`
+> Capabilities needed for int64/uint64 atomic operations
-`GL_ARB_shader_texture_image_samples`
-> Represents the GL_ARB_shader_texture_image_samples extension.
+`atomic_glsl`
+> (GLSL/SPIRV) Capabilities required to use GLSL-400 atomic operations
-`GL_ARB_sparse_texture`
-> Represents the GL_ARB_sparse_texture extension.
+`atomic_glsl_float1`
+> (GLSL/SPIRV) Capabilities required to use GLSL-tier-1 float-atomic operations
-`GL_ARB_sparse_texture2`
-> Represents the GL_ARB_sparse_texture2 extension.
+`atomic_glsl_float2`
+> (GLSL/SPIRV) Capabilities required to use GLSL-tier-2 float-atomic operations
-`GL_ARB_sparse_texture_clamp`
-> Represents the GL_ARB_sparse_texture_clamp extension.
+`atomic_glsl_halfvec`
+> (GLSL/SPIRV) Capabilities required to use NVAPI GLSL-fp16 float-atomic operations
-`GL_ARB_texture_gather`
-> Represents the GL_ARB_texture_gather extension.
+`atomic_glsl_hlsl_cuda9_int64`
+> (All implemented targets) Capabilities required to use atomic operations (cuda_sm_9 tier atomics)
-`GL_ARB_texture_query_levels`
-> Represents the GL_ARB_texture_query_levels extension.
+`atomic_glsl_hlsl_cuda_metal`
+> (All implemented targets) Capabilities required to use atomic operations
-`GL_ARB_shader_clock`
-> Represents the GL_ARB_shader_clock extension.
+`atomic_glsl_hlsl_nvapi_cuda5_int64`
+> (All implemented targets) Capabilities required to use atomic operations of int64 (cuda_sm_5 tier atomics)
-`GL_ARB_shader_clock64`
-> Represents the GL_ARB_shader_clock64 extension.
+`atomic_glsl_hlsl_nvapi_cuda6_int64`
+> (All implemented targets) Capabilities required to use atomic operations of int64 (cuda_sm_6 tier atomics)
-`GL_ARB_gpu_shader_int64`
-> Represents the GL_ARB_gpu_shader_int64 extension.
+`atomic_glsl_hlsl_nvapi_cuda9_int64`
+> (All implemented targets) Capabilities required to use atomic operations of int64 (cuda_sm_9 tier atomics)
-`GL_KHR_memory_scope_semantics`
-> Represents the GL_KHR_memory_scope_semantics extension.
+`atomic_glsl_hlsl_nvapi_cuda_metal_float1`
+> (All implemented targets) Capabilities required to use atomic operations of GLSL tier-1 float atomics
-`GL_KHR_shader_subgroup_arithmetic`
-> Represents the GL_KHR_shader_subgroup_arithmetic extension.
+`atomic_glsl_int64`
+> (GLSL/SPIRV) Capabilities required to use int64/uint64 atomic operations
-`GL_KHR_shader_subgroup_ballot`
-> Represents the GL_KHR_shader_subgroup_ballot extension.
+`atomic_hlsl`
+> (hlsl only) Capabilities required to use hlsl atomic operations
-`GL_KHR_shader_subgroup_basic`
-> Represents the GL_KHR_shader_subgroup_basic extension.
+`atomic_hlsl_nvapi`
+> (hlsl only) Capabilities required to use hlsl NVAPI atomics
-`GL_KHR_shader_subgroup_clustered`
-> Represents the GL_KHR_shader_subgroup_clustered extension.
+`atomic_hlsl_sm_6_6`
+> (hlsl only) Capabilities required to use hlsl sm_6_6 atomics
-`GL_KHR_shader_subgroup_quad`
-> Represents the GL_KHR_shader_subgroup_quad extension.
+`atomicfloat`
+> Capabilities needed to use GLSL-tier-1 float-atomic operations
-`GL_KHR_shader_subgroup_shuffle`
-> Represents the GL_KHR_shader_subgroup_shuffle extension.
+`atomicfloat2`
+> Capabilities needed to use GLSL-tier-2 float-atomic operations
-`GL_KHR_shader_subgroup_shuffle_relative`
-> Represents the GL_KHR_shader_subgroup_shuffle_relative extension.
+`breakpoint`
+> Capabilities required to enable shader breakpoints
-`GL_KHR_shader_subgroup_vote`
-> Represents the GL_KHR_shader_subgroup_vote extension.
+`bufferreference`
+> Capabilities needed to use GLSL buffer-reference's
-`GL_KHR_shader_subgroup_rotate`
-> Represents the GL_KHR_shader_subgroup_rotate extension.
+`bufferreference_int64`
+> Capabilities needed to use GLSL buffer-reference's with int64
-`GL_NV_compute_shader_derivatives`
-> Represents the GL_NV_compute_shader_derivatives extension.
+`byteaddressbuffer`
+> Capabilities required to use ByteAddressBuffer
-`GL_NV_fragment_shader_barycentric`
-> Represents the GL_NV_fragment_shader_barycentric extension.
+`byteaddressbuffer_rw`
+> Capabilities required to use RWByteAddressBuffer
-`GL_NV_gpu_shader5`
-> Represents the GL_NV_gpu_shader5 extension.
+`compute_fragment`
+> Collection of shader stages
-`GL_NV_ray_tracing`
-> Represents the GL_NV_ray_tracing extension.
+`compute_fragment_geometry_vertex`
+> Collection of shader stages
-`GL_NV_ray_tracing_motion_blur`
-> Represents the GL_NV_ray_tracing_motion_blur extension.
+`compute_tesscontrol_tesseval`
+> Collection of shader stages
-`GL_NV_shader_atomic_fp16_vector`
-> Represents the GL_NV_shader_atomic_fp16_vector extension.
+`consumestructuredbuffer`
+> Capabilities required to use ConsumeStructuredBuffer
-`GL_NV_shader_invocation_reorder`
-> Represents the GL_NV_shader_invocation_reorder extension.
+`cooperative_matrix`
+> Capabilities needed to use cooperative matrices
-`GL_NV_shader_subgroup_partitioned`
-> Represents the GL_NV_shader_subgroup_partitioned extension.
+`cooperative_matrix_2`
+> Capabilities needed to use tensor addressing
-`GL_NV_shader_texture_footprint`
-> Represents the GL_NV_shader_texture_footprint extension.
+`cooperative_matrix_block_load`
+> Capabilities needed to use decodeFunc with cooperative matrix load
-`GL_NV_cluster_acceleration_structure`
-> Represents the GL_NV_cluster_acceleration_structure extension.
+`cooperative_matrix_conversion`
+> Capabilities needed to convert cooperative matrices
-Compound Capabilities
-----------------------
-*Capabilities to specify capabilities created by other capabilities (`raytracing`, `meshshading`...)*
+`cooperative_matrix_map_element`
+> Capabilities needed to use MapElement operation with cooperative matrix
-`any_target`
-> All code-gen targets
+`cooperative_matrix_reduction`
+> Capabilities needed to use reduction operations with cooperative matrix
-`any_textual_target`
-> All non-asm code-gen targets
+`cooperative_matrix_tensor_addressing`
+> Capabilities needed to load or store with tensor_addressing extension
-`any_gfx_target`
-> All slang-gfx compatible code-gen targets
+`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
-`any_cpp_target`
-> All "cpp syntax" code-gen targets
+`cooperative_vector_training`
+> Capabilities needed to train cooperative vectors
`cpp_cuda`
> CPP and CUDA code-gen targets
-`cpp_cuda_spirv`
-> CPP, CUDA and SPIRV code-gen targets
-
-`cuda_spirv`
-> CUDA and SPIRV code-gen targets
-
-`cpp_cuda_glsl_spirv`
-> CPP, CUDA, GLSL and SPIRV 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_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_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_hlsl_metal_spirv`
-> CPP, CUDA, HLSL, 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_spirv`
-> CPP, GLSL, HLSL, and SPIRV code-gen targets
-
-`cpp_glsl_hlsl_spirv_wgsl`
-> CPP, GLSL, HLSL, SPIRV and WGSL 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_hlsl_metal_spirv`
-> CUDA, HLSL, Metal, and SPIRV 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_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_spirv`
-> CUDA, GLSL, and SPIRV 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
@@ -907,17 +1023,38 @@ Compound Capabilities
`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
-`glsl_hlsl_spirv`
-> GLSL, HLSL, and SPIRV code-gen targets
+`cuda_spirv`
+> CUDA and SPIRV code-gen targets
-`glsl_hlsl_spirv_wgsl`
-> GLSL, HLSL, SPIRV and WGSL 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
@@ -925,6 +1062,12 @@ Compound Capabilities
`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
@@ -937,172 +1080,166 @@ Compound Capabilities
`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
-`nvapi`
-> NVAPI capability for HLSL
+`image_loadstore`
+> (GLSL/SPIRV) Capabilities required to use image load/image store operations
-`raytracing`
-> Capabilities needed for minimal raytracing support
+`image_samples`
+> Capabilities required to query image (RWTexture) sample info
-`ser`
-> Capabilities needed for shader-execution-reordering
+`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
-`rayquery`
-> Capabilities needed for compute-shader rayquery
-
-`raytracing_motionblur`
-> Capabilities needed for compute-shader rayquery and motion-blur
+`nonuniformqualifier`
+> Capabilities required to use NonUniform qualifier
-`ser_motion`
-> Capabilities needed for shader-execution-reordering and motion-blur
+`nvapi`
+> NVAPI capability for HLSL
-`shaderclock`
-> Capabilities needed for realtime clocks
+`pack_vector`
+> Capabilities required to use pack/unpack intrinsics on packed vector data
-`fragmentshaderinterlock`
-> Capabilities needed for interlocked-fragment operations
+`printf`
+> Capabilities required to use 'printf'
-`atomic64`
-> Capabilities needed for int64/uint64 atomic operations
+`quad_control`
+> Capabilities required to enable quad group control
-`atomicfloat`
-> Capabilities needed to use GLSL-tier-1 float-atomic operations
+`raygen_closesthit_miss`
+> Collection of shader stages
-`atomicfloat2`
-> Capabilities needed to use GLSL-tier-2 float-atomic operations
+`raygen_closesthit_miss_callable`
+> Collection of shader stages
-`fragmentshaderbarycentric`
-> Capabilities needed to use fragment-shader-barycentric's
+`rayquery`
+> Capabilities needed for compute-shader rayquery
-`shadermemorycontrol`
-> (gfx targets) Capabilities needed to use memory barriers
+`rayquery_position`
+> Collection of capabilities for rayquery + ray_tracing_position_fetch.
-`bufferreference`
-> Capabilities needed to use GLSL buffer-reference's
+`raytracing`
+> Capabilities needed for minimal raytracing support
-`bufferreference_int64`
-> Capabilities needed to use GLSL buffer-reference's with int64
+`raytracing_allstages`
+> Collection of capabilities for raytracing with all raytracing stages.
-`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
+`raytracing_anyhit`
+> Collection of capabilities for raytracing with the shader stage of anyhit.
-`cooperative_vector_training`
-> Capabilities needed to train cooperative vectors
+`raytracing_anyhit_closesthit`
+> Collection of capabilities for raytracing with the shader stages of anyhit and closesthit.
-`cooperative_matrix`
-> Capabilities needed to use cooperative matrices
+`raytracing_anyhit_closesthit_intersection`
+> Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, and intersection.
-`cooperative_matrix_reduction`
-> Capabilities needed to use reduction operations with cooperative matrix
+`raytracing_anyhit_closesthit_intersection_miss`
+> Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, intersection, and miss.
-`cooperative_matrix_conversion`
-> Capabilities needed to convert cooperative matrices
+`raytracing_intersection`
+> Collection of capabilities for raytracing with the shader stage of intersection.
-`cooperative_matrix_map_element`
-> Capabilities needed to use MapElement operation with cooperative matrix
+`raytracing_lss`
+> Collection of capabilities for linear swept spheres.
-`cooperative_matrix_tensor_addressing`
-> Capabilities needed to load or store with tensor_addressing extension
+`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.
-`cooperative_matrix_block_load`
-> Capabilities needed to use decodeFunc with cooperative matrix load
+`raytracing_motionblur`
+> Capabilities needed for compute-shader rayquery and motion-blur
-`tensor_addressing`
-> Capabilities needed to use tensor addressing
+`raytracing_motionblur_anyhit_closesthit_intersection_miss`
+> Collection of capabilities for raytracing + motion blur and the shader stages of anyhit, closesthit, intersection, and miss.
-`cooperative_matrix_2`
-> Capabilities needed to use tensor addressing
+`raytracing_motionblur_raygen_closesthit_miss`
+> Collection of capabilities for raytracing + motion blur and the shader stages of raygen, closesthit, and miss.
-`vk_mem_model`
-> Capabilities needed to use vulkan memory model
+`raytracing_position`
+> Collection of capabilities for raytracing + ray_tracing_position_fetch and the shader stages of anyhit and closesthit.
-`any_stage`
-> Collection of all shader stages
+`raytracing_raygen_closesthit_miss`
+> Collection of capabilities for raytracing with the shader stages of raygen, closesthit, and miss.
-`amplification_mesh`
-> Collection of shader stages
+`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
-`anyhit_closesthit`
-> Collection of shader stages
-
-`raygen_closesthit_miss`
-> Collection of shader stages
-
-`anyhit_closesthit_intersection`
-> Collection of shader stages
-
-`anyhit_closesthit_intersection_miss`
-> Collection of shader stages
-
-`raygen_closesthit_miss_callable`
-> Collection of shader stages
-
-`compute_tesscontrol_tesseval`
+`raytracingstages_compute`
> Collection of shader stages
-`compute_fragment`
+`raytracingstages_compute_amplification_mesh`
> Collection of shader stages
-`compute_fragment_geometry_vertex`
+`raytracingstages_compute_fragment`
> Collection of shader stages
-`domain_hull`
+`raytracingstages_compute_fragment_geometry_vertex`
> Collection of shader stages
`raytracingstages_fragment`
> Collection of shader stages
-`raytracingstages_compute`
-> Collection of shader stages
+`ser`
+> Capabilities needed for shader-execution-reordering
-`raytracingstages_compute_amplification_mesh`
-> Collection of shader stages
+`ser_any_closesthit_intersection_miss`
+> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, intersection, and miss.
-`raytracingstages_compute_fragment`
-> Collection of shader stages
+`ser_anyhit_closesthit`
+> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit and closesthit.
-`raytracingstages_compute_fragment_geometry_vertex`
-> Collection of shader stages
+`ser_anyhit_closesthit_intersection`
+> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, and intersection.
-`meshshading`
-> Ccapabilities required to use mesh shading features
+`ser_motion`
+> Capabilities needed for shader-execution-reordering and motion-blur
-`shadermemorycontrol_compute`
-> (gfx targets) Capabilities required to use memory barriers that only work for raytracing & compute shader stages
+`ser_motion_raygen`
+> Collection of capabilities for raytracing raytracing + motion blur + shader execution reordering and the shader stage of raygen.
-`subpass`
-> Capabilities required to use Subpass-Input's
+`ser_motion_raygen_closesthit_miss`
+> Collection of capabilities for raytracing + motion blur + shader execution reordering and the shader stages of raygen, closesthit, and miss.
-`appendstructuredbuffer`
-> Capabilities required to use AppendStructuredBuffer
+`ser_raygen`
+> Collection of capabilities for raytracing + shader execution reordering and the shader stage of raygen.
-`atomic_hlsl`
-> (hlsl only) Capabilities required to use hlsl atomic operations
+`ser_raygen_closesthit_miss`
+> Collection of capabilities for raytracing + shader execution reordering and the shader stages of raygen, closesthit, and miss.
-`atomic_hlsl_nvapi`
-> (hlsl only) Capabilities required to use hlsl NVAPI atomics
+`shader5_sm_4_0`
+> Capabilities required to use sm_4_0 features apart of GL_ARB_gpu_shader5
-`atomic_hlsl_sm_6_6`
-> (hlsl only) Capabilities required to use hlsl sm_6_6 atomics
+`shader5_sm_5_0`
+> Capabilities required to use sm_5_0 features apart of GL_ARB_gpu_shader5
-`byteaddressbuffer`
-> Capabilities required to use ByteAddressBuffer
+`shaderclock`
+> Capabilities needed for realtime clocks
-`byteaddressbuffer_rw`
-> Capabilities required to use RWByteAddressBuffer
+`shaderinvocationgroup`
+> Capabilities required to use GLSL-style subgroup operations 'subgroup_vote'
-`consumestructuredbuffer`
-> Capabilities required to use ConsumeStructuredBuffer
+`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
@@ -1110,102 +1247,8 @@ Compound Capabilities
`structuredbuffer_rw`
> Capabilities required to use RWStructuredBuffer
-`fragmentprocessing`
-> Capabilities required to use fragment derivative operations (without GLSL derivativecontrol)
-
-`fragmentprocessing_derivativecontrol`
-> Capabilities required to use fragment derivative operations (with GLSL derivativecontrol)
-
-`getattributeatvertex`
-> Capabilities required to use 'getAttributeAtVertex'
-
-`memorybarrier`
-> Capabilities required to use sm_5_0 style memory barriers
-
-`texture_sm_4_0`
-> Capabilities required to use sm_4_0 texture operations
-
-`texture_sm_4_1`
-> Capabilities required to use sm_4_1 texture operations
-
-`texture_sm_4_1_samplerless`
-> Capabilities required to use sm_4_1 samplerless texture 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_0_fragment`
-> Capabilities required to use 'fragment shader only' texture operations
-
-`texture_sm_4_1_clamp_fragment`
-> Capabilities required to use 'fragment shader only' texture clamp operations
-
-`texture_sm_4_1_vertex_fragment_geometry`
-> Capabilities required to use 'fragment/geometry shader only' texture clamp operations
-
-`texture_gather`
-> Capabilities required to use 'vertex/fragment/geometry shader only' texture gather operations
-
-`image_samples`
-> Capabilities required to query image (RWTexture) sample info
-
-`image_size`
-> Capabilities required to query image (RWTexture) size info
-
-`texture_size`
-> Capabilities required to query texture sample info
-
-`texture_querylod`
-> Capabilities required to query texture LOD info
-
-`texture_querylevels`
-> Capabilities required to query texture level info
-
-`texture_shadowlod`
-> Capabilities required to query shadow texture lod info
-
-`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`
-> (GLSL/SPIRV) Capabilities required to use GLSL-400 atomic operations
-
-`atomic_glsl_int64`
-> (GLSL/SPIRV) Capabilities required to use int64/uint64 atomic operations
-
-`image_loadstore`
-> (GLSL/SPIRV) Capabilities required to use image load/image store operations
-
-`nonuniformqualifier`
-> Capabilities required to use NonUniform qualifier
-
-`printf`
-> Capabilities required to use 'printf'
-
-`texturefootprint`
-> Capabilities required to use basic TextureFootprint operations
-
-`texturefootprintclamp`
-> Capabilities required to use TextureFootprint clamp operations
-
-`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
-
-`pack_vector`
-> Capabilities required to use pack/unpack intrinsics on packed vector data
-
-`subgroup_basic`
-> Capabilities required to use GLSL-style subgroup operations 'subgroup_basic'
+`subgroup_arithmetic`
+> Capabilities required to use GLSL-style subgroup operations 'subgroup_arithmetic'
`subgroup_ballot`
> Capabilities required to use GLSL-style subgroup operations 'subgroup_ballot'
@@ -1213,156 +1256,89 @@ Compound Capabilities
`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_vote`
-> Capabilities required to use GLSL-style subgroup operations 'subgroup_vote'
-
-`shaderinvocationgroup`
-> Capabilities required to use GLSL-style subgroup operations 'subgroup_vote'
-
-`subgroup_arithmetic`
-> Capabilities required to use GLSL-style subgroup operations 'subgroup_arithmetic'
-
-`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_clustered`
> Capabilities required to use GLSL-style subgroup operations 'subgroup_clustered'
-`subgroup_quad`
-> Capabilities required to use GLSL-style subgroup operations 'subgroup_quad'
-
`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'
-`atomic_glsl_hlsl_nvapi_cuda_metal_float1`
-> (All implemented targets) Capabilities required to use atomic operations of GLSL tier-1 float atomics
-
-`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_cuda_metal`
-> (All implemented targets) Capabilities required to use atomic operations
-
-`atomic_glsl_hlsl_cuda9_int64`
-> (All implemented targets) Capabilities required to use atomic operations (cuda_sm_9 tier atomics)
-
-`helper_lane`
-> Capabilities required to enable helper-lane demotion
-
-`quad_control`
-> Capabilities required to enable quad group control
-
-`breakpoint`
-> Capabilities required to enable shader breakpoints
-
-`raytracing_allstages`
-> Collection of capabilities for raytracing with all raytracing stages.
-
-`raytracing_anyhit`
-> Collection of capabilities for raytracing with the shader stage of anyhit.
+`subgroup_shuffle`
+> Capabilities required to use GLSL-style subgroup operations 'subgroup_shuffle'
-`raytracing_intersection`
-> Collection of capabilities for raytracing with the shader stage of intersection.
+`subgroup_shufflerelative`
+> Capabilities required to use GLSL-style subgroup operations 'subgroup_shuffle_relative'
-`raytracing_anyhit_closesthit`
-> Collection of capabilities for raytracing with the shader stages of anyhit and closesthit.
+`subgroup_vote`
+> Capabilities required to use GLSL-style subgroup operations 'subgroup_vote'
-`raytracing_lss`
-> Collection of capabilities for linear swept spheres.
+`subpass`
+> Capabilities required to use Subpass-Input's
-`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.
+`tensor_addressing`
+> Capabilities needed to use tensor addressing
-`raytracing_anyhit_closesthit_intersection`
-> Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, and intersection.
+`texture_gather`
+> Capabilities required to use 'vertex/fragment/geometry shader only' texture gather operations
-`raytracing_raygen_closesthit_miss`
-> Collection of capabilities for raytracing with the shader stages of raygen, closesthit, and miss.
+`texture_querylevels`
+> Capabilities required to query texture level info
-`raytracing_anyhit_closesthit_intersection_miss`
-> Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, intersection, and miss.
+`texture_querylod`
+> Capabilities required to query texture LOD info
-`raytracing_raygen_closesthit_miss_callable`
-> Collection of capabilities for raytracing the shader stages of raygen, closesthit, miss, and callable.
+`texture_shadowlod`
+> Capabilities required to query shadow texture lod info
-`raytracing_position`
-> Collection of capabilities for raytracing + ray_tracing_position_fetch and the shader stages of anyhit and closesthit.
+`texture_size`
+> Capabilities required to query texture sample info
-`raytracing_motionblur_anyhit_closesthit_intersection_miss`
-> Collection of capabilities for raytracing + motion blur and the shader stages of anyhit, closesthit, intersection, and miss.
+`texture_sm_4_0`
+> Capabilities required to use sm_4_0 texture operations
-`raytracing_motionblur_raygen_closesthit_miss`
-> Collection of capabilities for raytracing + motion blur and the shader stages of raygen, closesthit, and miss.
+`texture_sm_4_0_fragment`
+> Capabilities required to use 'fragment shader only' texture operations
-`rayquery_position`
-> Collection of capabilities for rayquery + ray_tracing_position_fetch.
+`texture_sm_4_1`
+> Capabilities required to use sm_4_1 texture operations
-`ser_raygen`
-> Collection of capabilities for raytracing + shader execution reordering and the shader stage of raygen.
+`texture_sm_4_1_clamp_fragment`
+> Capabilities required to use 'fragment shader only' texture clamp operations
-`ser_raygen_closesthit_miss`
-> Collection of capabilities for raytracing + shader execution reordering and the shader stages of raygen, closesthit, and miss.
+`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.
-`ser_any_closesthit_intersection_miss`
-> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, intersection, and miss.
+`texture_sm_4_1_samplerless`
+> Capabilities required to use sm_4_1 samplerless texture operations
-`ser_anyhit_closesthit_intersection`
-> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, and intersection.
+`texture_sm_4_1_vertex_fragment_geometry`
+> Capabilities required to use 'fragment/geometry shader only' texture clamp operations
-`ser_anyhit_closesthit`
-> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit and closesthit.
+`texturefootprint`
+> Capabilities required to use basic TextureFootprint operations
-`ser_motion_raygen_closesthit_miss`
-> Collection of capabilities for raytracing + motion blur + shader execution reordering and the shader stages of raygen, closesthit, and miss.
+`texturefootprintclamp`
+> Capabilities required to use TextureFootprint clamp operations
-`ser_motion_raygen`
-> Collection of capabilities for raytracing raytracing + motion blur + shader execution reordering and the shader stage of raygen.
+`vk_mem_model`
+> Capabilities needed to use vulkan memory model
Other
----------------------
*Capabilities which may be deprecated*
-`optix_coopvec`
-> Represents capabilities required for optix cooperative vector support.
-
-`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
-
`DX_4_0`
> Use `sm_4_0` instead
@@ -1414,6 +1390,9 @@ Other
`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
@@ -1426,8 +1405,29 @@ Other
`METAL_3_1`
> Use `metallib_3_1` instead
-`GLSL_430_SPIRV_1_0_compute`
-> User should not use this capability
+`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.