diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/user-guide/a2-target-specific-features.md | 1 | ||||
| -rw-r--r-- | docs/user-guide/a3-01-reference-capability-profiles.md | 49 | ||||
| -rw-r--r-- | docs/user-guide/a3-02-reference-capability-atoms.md | 1188 | ||||
| -rw-r--r-- | docs/user-guide/a3-reference.md | 11 | ||||
| -rw-r--r-- | docs/user-guide/toc.html | 16 |
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 |
