diff options
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 |
