diff options
| author | Darren Wihandi <65404740+fairywreath@users.noreply.github.com> | 2025-02-02 15:27:11 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-02 12:27:11 -0800 |
| commit | 0a6828572aa4cc1f0f99993e77c321799eb88cca (patch) | |
| tree | d18f1950074958ff3276e303425eed15067ea2bc /source/slang/slang-glsl-extension-tracker.cpp | |
| parent | 2949b786a7f04ad31c113b622039fb5b72bc8622 (diff) | |
Add support for WGSL subgroup operations (#6213)
* initial work
* more work
* more work on glsl intrinsics
* add subgroup broadcast for glsl
* wip add wgsl extension tracking
* enable tests, enable extensions and added some todos
* format and warning fixes
* fix wgsl extension tracker
---------
Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'source/slang/slang-glsl-extension-tracker.cpp')
| -rw-r--r-- | source/slang/slang-glsl-extension-tracker.cpp | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/source/slang/slang-glsl-extension-tracker.cpp b/source/slang/slang-glsl-extension-tracker.cpp deleted file mode 100644 index 268f123f7..000000000 --- a/source/slang/slang-glsl-extension-tracker.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// slang-glsl-extension-tracker.cpp -#include "slang-glsl-extension-tracker.h" - -namespace Slang -{ - -void GLSLExtensionTracker::appendExtensionRequireLines(StringBuilder& ioBuilder) const -{ - for (const auto& extension : m_extensionPool.getSlices()) - { - ioBuilder.append("#extension "); - ioBuilder.append(extension); - ioBuilder.append(" : require\n"); - } -} - -void GLSLExtensionTracker::requireSPIRVVersion(const SemanticVersion& version) -{ - if (version > m_spirvVersion) - { - m_spirvVersion = version; - } -} - -void GLSLExtensionTracker::requireVersion(ProfileVersion version) -{ - // Check if this profile is newer - if ((UInt)version > (UInt)m_profileVersion) - { - m_profileVersion = version; - } -} - -void GLSLExtensionTracker::requireBaseTypeExtension(BaseType baseType) -{ - uint32_t bit = 1 << int(baseType); - if (m_hasBaseTypeFlags & bit) - { - return; - } - - switch (baseType) - { - case BaseType::UInt8: - case BaseType::Int8: - { - // https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_8bit_storage.txt - requireExtension(UnownedStringSlice::fromLiteral("GL_EXT_shader_8bit_storage")); - - // https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_explicit_arithmetic_types.txt - requireExtension( - UnownedStringSlice::fromLiteral("GL_EXT_shader_explicit_arithmetic_types")); - break; - } - case BaseType::Half: - case BaseType::UInt16: - case BaseType::Int16: - { - // https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt - requireExtension(UnownedStringSlice::fromLiteral("GL_EXT_shader_16bit_storage")); - - // https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_explicit_arithmetic_types.txt - requireExtension( - UnownedStringSlice::fromLiteral("GL_EXT_shader_explicit_arithmetic_types")); - break; - } - case BaseType::UInt64: - case BaseType::Int64: - { - requireExtension( - UnownedStringSlice::fromLiteral("GL_EXT_shader_explicit_arithmetic_types_int64")); - m_hasBaseTypeFlags |= _getFlag(BaseType::UInt64) | _getFlag(BaseType::Int64) | - _getFlag(BaseType::IntPtr) | _getFlag(BaseType::UIntPtr); - break; - } - case BaseType::IntPtr: - case BaseType::UIntPtr: - { -#if SLANG_PTR_IS_64 - requireExtension( - UnownedStringSlice::fromLiteral("GL_EXT_shader_explicit_arithmetic_types_int64")); - m_hasBaseTypeFlags |= _getFlag(BaseType::UInt64) | _getFlag(BaseType::Int64) | - _getFlag(BaseType::IntPtr) | _getFlag(BaseType::UIntPtr); -#endif - break; - } - } - - m_hasBaseTypeFlags |= bit; -} - -} // namespace Slang |
