diff options
| author | Darren Wihandi <65404740+fairywreath@users.noreply.github.com> | 2025-01-18 02:07:16 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-17 23:07:16 -0800 |
| commit | a85c350df03c6cdf9b433f58fc0e66affda03e9e (patch) | |
| tree | 3e80ea7121b3b5bb5c17aee88599212b78abec38 /source/slang/slang-capabilities.capdef | |
| parent | 87a08160289c194ddfb337d521893f576ceb9f97 (diff) | |
Implement Quad Control intrinsics (#5981)
Diffstat (limited to 'source/slang/slang-capabilities.capdef')
| -rw-r--r-- | source/slang/slang-capabilities.capdef | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/source/slang/slang-capabilities.capdef b/source/slang/slang-capabilities.capdef index c8a66448d..4f6357779 100644 --- a/source/slang/slang-capabilities.capdef +++ b/source/slang/slang-capabilities.capdef @@ -466,6 +466,14 @@ def SPV_EXT_mesh_shader : _spirv_1_4; /// [EXT] def SPV_EXT_demote_to_helper_invocation : _spirv_1_4; +/// Represents the SPIR-V extension for maximal reconvergence. +/// [EXT] +def SPV_KHR_maximal_reconvergence : _spirv_1_0; + +/// Represents the SPIR-V extension for quad group control. +/// [EXT] +def SPV_KHR_quad_control : _spirv_1_3; + /// Represents the SPIR-V extension for fragment shader barycentric. /// [EXT] def SPV_KHR_fragment_shader_barycentric : _spirv_1_0; @@ -654,6 +662,14 @@ def spvDemoteToHelperInvocationEXT : SPV_EXT_demote_to_helper_invocation; /// [EXT] def spvDemoteToHelperInvocation : spvDemoteToHelperInvocationEXT; +/// Represents the SPIR-V capability for maximal reconvergence. +/// [EXT] +def spvMaximalReconvergenceKHR : SPV_KHR_maximal_reconvergence; + +/// Represents the SPIR-V capability for quad group control. +/// [EXT] +def spvQuadControlKHR : SPV_KHR_quad_control; + // The following capabilities all pertain to how ray tracing shaders are translated // to GLSL, where there are two different extensions that can provide the core // functionality of `TraceRay` and the related operations. @@ -691,6 +707,8 @@ def _GL_EXT_shader_image_load_store : _GLSL_130; def _GL_EXT_shader_realtime_clock : glsl; def _GL_EXT_texture_query_lod : glsl; def _GL_EXT_texture_shadow_lod : _GLSL_130; +def _GL_EXT_maximal_reconvergence : _GLSL_140; +def _GL_EXT_shader_quad_control : _GLSL_140; def _GL_ARB_derivative_control : _GLSL_400; def _GL_ARB_fragment_shader_interlock : _GLSL_450; @@ -746,6 +764,14 @@ alias GL_EXT_debug_printf = _GL_EXT_debug_printf | SPV_KHR_non_semantic_info; /// [EXT] alias GL_EXT_demote_to_helper_invocation = _GL_EXT_demote_to_helper_invocation | spvDemoteToHelperInvocationEXT; +/// Represents the GL_EXT_maximal_reconvergence extension. +/// [EXT] +alias GL_EXT_maximal_reconvergence = _GL_EXT_maximal_reconvergence | spvMaximalReconvergenceKHR; + +/// Represents the GL_EXT_shader_quad_control extension. +/// [EXT] +alias GL_EXT_shader_quad_control = _GL_EXT_shader_quad_control | spvQuadControlKHR; + /// Represents the GL_EXT_fragment_shader_barycentric extension. /// [EXT] alias GL_EXT_fragment_shader_barycentric = _GL_EXT_fragment_shader_barycentric | spvFragmentBarycentricKHR; @@ -1925,6 +1951,13 @@ alias helper_lane = _sm_6_0 + fragment | metal + fragment ; +/// Capabilities required to enable quad group control +/// [Compound] +alias quad_control = _sm_6_7 + | GL_EXT_shader_quad_control + GL_EXT_maximal_reconvergence + GL_KHR_shader_subgroup_vote + | metal + ; + /// Capabilities required to enable shader breakpoints /// [Compound] alias breakpoint = GL_EXT_debug_printf | hlsl | _cuda_sm_8_0 | cpp; |
