summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/user-guide/a2-target-specific-features.md1
-rw-r--r--docs/user-guide/a3-01-reference-capability-profiles.md49
-rw-r--r--docs/user-guide/a3-02-reference-capability-atoms.md1188
-rw-r--r--docs/user-guide/a3-reference.md11
-rw-r--r--docs/user-guide/toc.html16
5 files changed, 1264 insertions, 1 deletions
diff --git a/docs/user-guide/a2-target-specific-features.md b/docs/user-guide/a2-target-specific-features.md
index e0d4ed9ba..2761d84e5 100644
--- a/docs/user-guide/a2-target-specific-features.md
+++ b/docs/user-guide/a2-target-specific-features.md
@@ -1,4 +1,3 @@
-
---
layout: user-guide
---
diff --git a/docs/user-guide/a3-01-reference-capability-profiles.md b/docs/user-guide/a3-01-reference-capability-profiles.md
new file mode 100644
index 000000000..175a76496
--- /dev/null
+++ b/docs/user-guide/a3-01-reference-capability-profiles.md
@@ -0,0 +1,49 @@
+---
+layout: user-guide
+---
+
+Capability Profiles
+============================
+
+### Accepted values of `-profile`:
+
+> Note: To 'make' your own 'profile's, try mixing capabilities with `-capability`.
+
+sm_{4_0,4_1,5_0,5_1,6_0,6_1,6_2,6_3,6_4,6_5,6_6,6_7}
+* HLSL shader model
+
+vs_{4_0,4_1,5_0,5_1,6_0,6_1,6_2,6_3,6_4,6_5,6_6,6_7}
+* HLSL shader model + vertex shader
+
+ps_{4_0,4_1,5_0,5_1,6_0,6_1,6_2,6_3,6_4,6_5,6_6,6_7}
+* HLSL shader model + pixel shader
+
+hs_{4_0,4_1,5_0,5_1,6_0,6_1,6_2,6_3,6_4,6_5,6_6,6_7}
+* HLSL shader model + hull shader
+
+gs_{4_0,4_1,5_0,5_1,6_0,6_1,6_2,6_3,6_4,6_5,6_6,6_7}
+* HLSL shader model + geometry shader
+
+ds_{4_0,4_1,5_0,5_1,6_0,6_1,6_2,6_3,6_4,6_5,6_6,6_7}
+* HLSL shader model + domain shader
+
+cs_{4_0,4_1,5_0,5_1,6_0,6_1,6_2,6_3,6_4,6_5,6_6,6_7}
+* HLSL shader model + compute shader
+
+ms_6_{5,6,7}
+* HLSL shader model + mesh shader
+
+as_6_{5,6,7}
+* HLSL shader model + amplification shader
+
+lib_6_{1,2,3,4,5,6,7}
+* HLSL shader model for libraries
+
+glsl_{110,120,130,140,150,330,400,410,420,430,440,450,460}
+* GLSL versions
+
+spirv_1_{1,2,3,4,5,6}
+* SPIRV versions
+
+metallib_2_{3,4}
+* Metal versions \ No newline at end of file
diff --git a/docs/user-guide/a3-02-reference-capability-atoms.md b/docs/user-guide/a3-02-reference-capability-atoms.md
new file mode 100644
index 000000000..993c581b6
--- /dev/null
+++ b/docs/user-guide/a3-02-reference-capability-atoms.md
@@ -0,0 +1,1188 @@
+---
+layout: user-guide
+---
+
+Capability Atoms
+============================
+
+### Sections:
+
+1. [Targets](#Targets)
+2. [Stages](#Stages)
+3. [Versions](#Versions)
+4. [Extensions](#Extensions)
+5. [Compound Capabilities](#Compound-Capabilities)
+6. [Other](#Other)
+
+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.
+
+`cpp`
+> Represents the C++ programming language code generation target.
+
+`cuda`
+> Represents the CUDA code generation target.
+
+`metal`
+> Represents the Metal programming language code generation target.
+
+`spirv`
+> Represents the SPIR-V code generation target.
+
+Stages
+----------------------
+*Capabilities to specify code generation stages (`vertex`, `fragment`...)*
+
+`vertex`
+> Vertex shader stage
+
+`fragment`
+> Fragment shader stage
+
+`compute`
+> Compute shader stage
+
+`hull`
+> Hull shader stage
+
+`domain`
+> Domain shader stage
+
+`geometry`
+> Geometry shader stage
+
+`pixel`
+> Pixel shader stage
+
+`tesscontrol`
+> Tessellation Control shader stage
+
+`tesseval`
+> Tessellation Evaluation shader stage
+
+`raygen`
+> Ray-Generation shader stage & ray-tracing capabilities
+
+`raygeneration`
+> Ray-Generation shader stage & ray-tracing capabilities
+
+`intersection`
+> Intersection shader stage & ray-tracing capabilities
+
+`anyhit`
+> Any-Hit shader stage & ray-tracing capabilities
+
+`closesthit`
+> Closest-Hit shader stage & ray-tracing capabilities
+
+`callable`
+> Callable shader stage & ray-tracing capabilities
+
+`miss`
+> Ray-Miss shader stage & ray-tracing capabilities
+
+`mesh`
+> Mesh shader stage & mesh shader capabilities
+
+`amplification`
+> Amplification shader stage & mesh shader capabilities
+
+Versions
+----------------------
+*Capabilities to specify versions of a code generation target (`sm_5_0`, `GLSL_400`...)*
+
+`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.
+
+`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.
+
+`hlsl_nvapi`
+> Represents HLSL NVAPI support.
+
+`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_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.
+> 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.
+> 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.
+> 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.
+> 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.
+> 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.
+> 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.
+> 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.
+> 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.
+> 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.
+> 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.
+> 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.
+> Includes related GLSL/SPIRV extensions.
+
+`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.
+
+Extensions
+----------------------
+*Capabilities to specify extensions (`GL_EXT`, `SPV_EXT`...)*
+
+`SPV_EXT_fragment_shader_interlock`
+> Represents the SPIR-V extension for fragment shader interlock operations.
+
+`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_descriptor_indexing`
+> Represents the SPIR-V extension for descriptor indexing.
+
+`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_EXT_demote_to_helper_invocation`
+> Represents the SPIR-V extension for demoting to helper invocation.
+
+`SPV_KHR_fragment_shader_barycentric`
+> Represents the SPIR-V extension for fragment shader barycentric.
+
+`SPV_KHR_non_semantic_info`
+> Represents the SPIR-V extension for non-semantic information.
+
+`SPV_KHR_ray_tracing`
+> Represents the SPIR-V extension for ray tracing.
+
+`SPV_KHR_ray_query`
+> Represents the SPIR-V extension for ray queries.
+
+`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_NV_shader_subgroup_partitioned`
+> Represents the SPIR-V extension for shader subgroup partitioned.
+
+`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_NV_shader_image_footprint`
+> Represents the SPIR-V extension for shader image footprint.
+
+`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.
+
+`spvAtomicFloat32AddEXT`
+> Represents the SPIR-V capability for atomic float 32 add operations.
+
+`spvAtomicFloat16AddEXT`
+> Represents the SPIR-V capability for atomic float 16 add operations.
+
+`spvInt64Atomics`
+> Represents the SPIR-V capability for 64-bit integer atomics.
+
+`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.
+
+`spvDerivativeControl`
+> Represents the SPIR-V capability for 'derivative control' operations.
+
+`spvImageQuery`
+> Represents the SPIR-V capability for image query operations.
+
+`spvImageGatherExtended`
+> Represents the SPIR-V capability for extended image gather operations.
+
+`spvSparseResidency`
+> Represents the SPIR-V capability for sparse residency.
+
+`spvImageFootprintNV`
+> Represents the SPIR-V capability for image footprint.
+
+`spvMinLod`
+> Represents the SPIR-V capability for using minimum LOD operations.
+
+`spvFragmentShaderPixelInterlockEXT`
+> Represents the SPIR-V capability for using SPV_EXT_fragment_shader_interlock.
+
+`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.
+
+`spvGroupNonUniformBallot`
+> Represents the SPIR-V capability for group non-uniform ballot operations.
+
+`spvGroupNonUniformShuffle`
+> Represents the SPIR-V capability for group non-uniform shuffle operations.
+
+`spvGroupNonUniformArithmetic`
+> Represents the SPIR-V capability for group non-uniform arithmetic operations.
+
+`spvGroupNonUniformQuad`
+> Represents the SPIR-V capability for group non-uniform quad 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.
+
+`spvRayTracingMotionBlurNV`
+> Represents the SPIR-V capability for ray tracing motion blur.
+
+`spvMeshShadingEXT`
+> Represents the SPIR-V capability for mesh shading.
+
+`spvRayTracingKHR`
+> Represents the SPIR-V capability for ray tracing.
+
+`spvRayTracingPositionFetchKHR`
+> Represents the SPIR-V capability for ray tracing position fetch.
+
+`spvRayQueryKHR`
+> Represents the SPIR-V capability for ray query.
+
+`spvRayQueryPositionFetchKHR`
+> Represents the SPIR-V capability for ray query position fetch.
+
+`spvShaderInvocationReorderNV`
+> Represents the SPIR-V capability for shader invocation reorder.
+
+`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.
+
+`spvDemoteToHelperInvocation`
+> Represents the SPIR-V capability for demoting to helper invocation.
+
+`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_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.
+
+`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_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_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_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_texture_multisample`
+> Represents the GL_ARB_texture_multisample 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_query_levels`
+> Represents the GL_ARB_texture_query_levels 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_gpu_shader_int64`
+> Represents the GL_ARB_gpu_shader_int64 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_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_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.
+
+Compound Capabilities
+----------------------
+*Capabilities to specify capabilities created by other capabilities (`raytracing`, `meshshading`...)*
+
+`any_target`
+> All code-gen targets
+
+`any_textual_target`
+> All non-asm code-gen targets
+
+`any_gfx_target`
+> All slang-gfx compatible code-gen targets
+
+`any_cpp_target`
+> All "cpp syntax" code-gen targets
+
+`cpp_cuda`
+> CPP and CUDA code-gen targets
+
+`cpp_cuda_spirv`
+> CPP, 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_spirv`
+> CPP, CUDA, GLSL, HLSL, and SPIRV code-gen targets
+
+`cpp_cuda_glsl_hlsl_metal_spirv`
+> CPP, CUDA, GLSL, HLSL, Metal and SPIRV code-gen targets
+
+`cpp_cuda_hlsl`
+> CPP, CUDA, and HLSL 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_glsl`
+> CPP, and GLSL code-gen targets
+
+`cpp_glsl_hlsl_spirv`
+> CPP, GLSL, HLSL, and SPIRV code-gen targets
+
+`cpp_glsl_hlsl_metal_spirv`
+> CPP, GLSL, HLSL, Metal, and SPIRV 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_metal_spirv`
+> CUDA, GLSL, HLSL, Metal, and SPIRV code-gen targets
+
+`cuda_glsl_spirv`
+> CUDA, GLSL, and SPIRV code-gen targets
+
+`cuda_glsl_metal_spirv`
+> CUDA, GLSL, Metal, and SPIRV code-gen targets
+
+`cuda_hlsl`
+> CUDA, and HLSL code-gen targets
+
+`cuda_hlsl_spirv`
+> CUDA, HLSL, SPIRV code-gen targets
+
+`glsl_hlsl_spirv`
+> GLSL, HLSL, and SPIRV code-gen targets
+
+`glsl_hlsl_metal_spirv`
+> GLSL, HLSL, Metal, and SPIRV code-gen targets
+
+`glsl_metal_spirv`
+> GLSL, Metal, and SPIRV code-gen targets
+
+`glsl_spirv`
+> GLSL, and SPIRV code-gen targets
+
+`hlsl_spirv`
+> HLSL, and SPIRV code-gen targets
+
+`nvapi`
+> NVAPI capability for HLSL
+
+`raytracing`
+> Capabilities needed for minimal raytracing support
+
+`ser`
+> Capabilities needed for shader-execution-reordering
+
+`motionblur`
+> Capabilities needed for raytracing-motionblur
+
+`rayquery`
+> Capabilities needed for compute-shader rayquery
+
+`raytracing_motionblur`
+> Capabilities needed for compute-shader rayquery and motion-blur
+
+`ser_motion`
+> Capabilities needed for shader-execution-reordering and motion-blur
+
+`shaderclock`
+> Capabilities needed for realtime clocks
+
+`fragmentshaderinterlock`
+> Capabilities needed for interlocked-fragment operations
+
+`atomic64`
+> Capabilities needed for int64/uint64 atomic operations
+
+`atomicfloat`
+> Capabilities needed to use GLSL-tier-1 float-atomic operations
+
+`atomicfloat2`
+> Capabilities needed to use GLSL-tier-2 float-atomic operations
+
+`fragmentshaderbarycentric`
+> Capabilities needed to use fragment-shader-barycentric's
+
+`shadermemorycontrol`
+> (gfx targets) Capabilities needed to use memory barriers
+
+`waveprefix`
+> Capabilities needed to use HLSL tier wave operations
+
+`bufferreference`
+> Capabilities needed to use GLSL buffer-reference's
+
+`bufferreference_int64`
+> Capabilities needed to use GLSL buffer-reference's with int64
+
+`any_stage`
+> Collection of all shader stages
+
+`amplification_mesh`
+> Collection of shader stages
+
+`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`
+> Collection of shader stages
+
+`compute_fragment`
+> Collection of shader stages
+
+`compute_fragment_geometry_vertex`
+> Collection of shader stages
+
+`domain_hull`
+> Collection of shader stages
+
+`raytracingstages_fragment`
+> 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
+
+`meshshading`
+> Ccapabilities required to use mesh shading features
+
+`shadermemorycontrol_compute`
+> (gfx targets) Capabilities required to use memory barriers that only work for raytracing & compute shader stages
+
+`subpass`
+> Capabilities required to use Subpass-Input's
+
+`appendstructuredbuffer`
+> Capabilities required to use AppendStructuredBuffer
+
+`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
+
+`byteaddressbuffer`
+> Capabilities required to use ByteAddressBuffer
+
+`byteaddressbuffer_rw`
+> Capabilities required to use RWByteAddressBuffer
+
+`consumestructuredbuffer`
+> Capabilities required to use ConsumeStructuredBuffer
+
+`structuredbuffer`
+> Capabilities required to use StructuredBuffer
+
+`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
+
+`subgroup_basic`
+> Capabilities required to use GLSL-style subgroup operations 'subgroup_basic'
+
+`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_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_shufle_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'
+
+`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
+
+`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.
+
+`raytracing_intersection`
+> Collection of capabilities for raytracing with the shader stage of intersection.
+
+`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_raygen_closesthit_miss`
+> Collection of capabilities for raytracing with the shader stages of raygen, closesthit, and miss.
+
+`raytracing_anyhit_closesthit_intersection_miss`
+> Collection of capabilities for raytracing with the shader stages of anyhit, closesthit, intersection, and miss.
+
+`raytracing_raygen_closesthit_miss_callable`
+> Collection of capabilities for raytracing the shader stages of raygen, closesthit, miss, and callable.
+
+`raytracing_position`
+> Collection of capabilities for raytracing + ray_tracing_position_fetch and the shader stages of anyhit and closesthit.
+
+`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.
+
+`rayquery_position`
+> Collection of capabilities for rayquery + ray_tracing_position_fetch.
+
+`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.
+
+`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_intersection`
+> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit, closesthit, and intersection.
+
+`ser_anyhit_closesthit`
+> Collection of capabilities for raytracing + shader execution reordering and the shader stages of anyhit and closesthit.
+
+`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_motion_raygen`
+> Collection of capabilities for raytracing raytracing + motion blur + shader execution reordering and the shader stage of raygen.
+
+Other
+----------------------
+*Capabilities which may be deprecated*
+
+`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
+
+`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
+
+`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
+
+`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
+
+`GLSL_430_SPIRV_1_0_compute`
+> User should not use this capability
+
+`all`
+> User should not use this capability
diff --git a/docs/user-guide/a3-reference.md b/docs/user-guide/a3-reference.md
new file mode 100644
index 000000000..da9d443c9
--- /dev/null
+++ b/docs/user-guide/a3-reference.md
@@ -0,0 +1,11 @@
+---
+layout: user-guide
+permalink: /user-guide/reference
+---
+
+Reference
+============================
+
+In this chapter:
+1. [Reference for all Capability Profiles](a3-01-Reference-Capability-Profiles)
+2. [Reference for all Capability Atoms](a3-02-Reference-Capability-Atoms) \ No newline at end of file
diff --git a/docs/user-guide/toc.html b/docs/user-guide/toc.html
index c3c001d56..e6c75b1f1 100644
--- a/docs/user-guide/toc.html
+++ b/docs/user-guide/toc.html
@@ -216,6 +216,22 @@
</li>
</ul>
</li>
+<li data-link="reference"><span>Reference</span>
+<ul class="toc_list">
+<li data-link="a3-01-reference-capability-profiles"><span>Capability Profiles</span>
+</li>
+<li data-link="a3-02-reference-capability-atoms"><span>Capability Atoms</span>
+<ul class="toc_list">
+<li data-link="a3-02-reference-capability-atoms#targets"><span>Targets</span></li>
+<li data-link="a3-02-reference-capability-atoms#stages"><span>Stages</span></li>
+<li data-link="a3-02-reference-capability-atoms#versions"><span>Versions</span></li>
+<li data-link="a3-02-reference-capability-atoms#extensions"><span>Extensions</span></li>
+<li data-link="a3-02-reference-capability-atoms#compound-capabilities"><span>Compound Capabilities</span></li>
+<li data-link="a3-02-reference-capability-atoms#other"><span>Other</span></li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
</li>
</ul> \ No newline at end of file