summaryrefslogtreecommitdiff
path: root/source/slang/slang-glsl-extension-tracker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-glsl-extension-tracker.cpp')
-rw-r--r--source/slang/slang-glsl-extension-tracker.cpp92
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