diff options
| author | venkataram-nv <vedavamadath@nvidia.com> | 2024-07-10 23:34:44 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-10 23:34:44 -0700 |
| commit | 055d4acd8c4d37a45b27e1333af96c203bec85e8 (patch) | |
| tree | 65b432442e9546c068b82a589b871d80997d22c6 /source | |
| parent | 4ae755f0a1f9828284f1bb8de15719a7b94938d6 (diff) | |
Implement 64-bit version of clockARB (#4571)
* Implement 64-bit version of clockARB
* Fix capability versions
* Corrections to capabilities
---------
Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 20 | ||||
| -rw-r--r-- | source/slang/slang-capabilities.capdef | 4 |
2 files changed, 23 insertions, 1 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 9fcd002a8..2639c1e88 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -20156,7 +20156,6 @@ struct ConstBufferPointer __glsl_version(450) __glsl_extension(GL_ARB_shader_clock) -__target_intrinsic(glsl, clock2x32ARB) [require(glsl_spirv, GL_ARB_shader_clock)] uint2 clock2x32ARB() { @@ -20172,3 +20171,22 @@ uint2 clock2x32ARB() }; } } + +__glsl_version(450) +__glsl_extension(GL_ARB_shader_clock) +__glsl_extension(GL_ARB_gpu_shader_int64) +[require(glsl_spirv, GL_ARB_shader_clock64)] +uint64_t clockARB() +{ + __target_switch + { + case glsl: __intrinsic_asm "clockARB"; + case spirv: + const uint32_t scopeId_subgroup = 3; + return spirv_asm { + OpCapability ShaderClockKHR; + OpExtension "SPV_KHR_shader_clock"; + result:$$uint64_t = OpReadClockKHR $scopeId_subgroup; + }; + } +} diff --git a/source/slang/slang-capabilities.capdef b/source/slang/slang-capabilities.capdef index 38fd708a5..a27146bf9 100644 --- a/source/slang/slang-capabilities.capdef +++ b/source/slang/slang-capabilities.capdef @@ -317,6 +317,8 @@ def _GL_ARB_sparse_texture_clamp : _GL_ARB_sparse_texture2; def _GL_ARB_texture_gather : _GLSL_130; def _GL_ARB_texture_query_levels : _GLSL_130; def _GL_ARB_shader_clock : _GLSL_450; +def _GL_ARB_gpu_shader_int64 : _GLSL_400; +def _GL_ARB_shader_clock64 : _GL_ARB_shader_clock + _GL_ARB_gpu_shader_int64; def _GL_KHR_memory_scope_semantics : _GLSL_420; def _GL_KHR_shader_subgroup_arithmetic : _GLSL_140; @@ -373,6 +375,8 @@ alias GL_ARB_sparse_texture_clamp = _GL_ARB_sparse_texture_clamp | spvSparseResi alias GL_ARB_texture_gather = _GL_ARB_texture_gather | spvImageGatherExtended | metal; alias GL_ARB_texture_query_levels = _GL_ARB_texture_query_levels | spvImageQuery | metal; alias GL_ARB_shader_clock = _GL_ARB_shader_clock | spvShaderClockKHR; +alias GL_ARB_shader_clock64 = _GL_ARB_shader_clock64 | spvShaderClockKHR; +alias GL_ARB_gpu_shader_int64 = _GL_ARB_gpu_shader_int64; alias GL_KHR_memory_scope_semantics = _GL_KHR_memory_scope_semantics | _spirv_1_0; alias GL_KHR_shader_subgroup_arithmetic = _GL_KHR_shader_subgroup_arithmetic | spvGroupNonUniformArithmetic; |
