summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-glsl-extension-tracker.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2020-03-05 10:59:54 -0500
committerGitHub <noreply@github.com>2020-03-05 10:59:54 -0500
commit6684d32db1f5693bcfb4971558cb30e855cd3bad (patch)
tree480e014b917a6eb0fe72faa6c52a25f4856ed1cb /source/slang/slang-emit-glsl-extension-tracker.cpp
parent5951d2a45f3546a619fb5b032a4a422229c46e4c (diff)
Feature/glslang spirv version (#1256)
* WIP add support for __spirv_version . * Added IRRequireSPIRVVersionDecoration * SPIR-V version passed to glslang. Enable VK wave tests. Split ExtensionTracker out, so can be cast and used externally to emit. Added SourceResult. * Fix warning on Clang. * Missing hlsl.meta.h * Refactor communication/parsing of __spirv_version with glslang. * Fix some debug typos. Be more precise in handling of substring handling. * Make glslang forwards and backwards binary compatible. * Small comment improvements. * Added slang-spirv-target-info.h/cpp * Fix for major/minor on gcc. * Another fix for gcc/clang. * VS projects include slang-spirv-target-info.h/cpp * Removed SPIRVTargetInfo Added SemanticVersion. Don't bother with passing a target to glslang. Should be separate from 'version'. * Renamed slang-emit-glsl-extension-tracker.cpp/.h -> slang-glsl-extension-tracker.cpp/.h Fixed some VS project issues. * Fix a comment. * Added slang-semantic-version.cpp/.h * Added slang-glsl-extension-tracker.cpp/.h * Added split that can check for input has all been parsed. * Fix problem on x86 win build.
Diffstat (limited to 'source/slang/slang-emit-glsl-extension-tracker.cpp')
-rw-r--r--source/slang/slang-emit-glsl-extension-tracker.cpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/source/slang/slang-emit-glsl-extension-tracker.cpp b/source/slang/slang-emit-glsl-extension-tracker.cpp
deleted file mode 100644
index 6f2bc678c..000000000
--- a/source/slang/slang-emit-glsl-extension-tracker.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// slang-emit-glsl-extension-tracker.cpp
-#include "slang-emit-glsl-extension-tracker.h"
-
-namespace Slang {
-
-void GLSLExtensionTracker::requireExtension(const String& name)
-{
- if (m_extensionsRequired.Contains(name))
- return;
-
- StringBuilder& sb = m_extensionRequireLines;
-
- sb.append("#extension ");
- sb.append(name);
- sb.append(" : require\n");
-
- m_extensionsRequired.Add(name);
-}
-
-void GLSLExtensionTracker::requireVersion(ProfileVersion version)
-{
- // Check if this profile is newer
- if ((UInt)version > (UInt)m_profileVersion)
- {
- m_profileVersion = version;
- }
-}
-
-void GLSLExtensionTracker::requireSPIRVVersion(SPIRVVersion version)
-{
- if (asInteger(version) > asInteger(m_spirvVersion))
- {
- m_spirvVersion = version;
- }
-}
-
-void GLSLExtensionTracker::requireBaseTypeExtension(BaseType baseType)
-{
- uint32_t bit = 1 << int(baseType);
- if (m_hasBaseTypeFlags & bit)
- {
- return;
- }
-
- switch (baseType)
- {
- case BaseType::Half:
- {
- // https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_16bit_storage.txt
- requireExtension("GL_EXT_shader_16bit_storage");
-
- // https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_explicit_arithmetic_types.txt
- requireExtension("GL_EXT_shader_explicit_arithmetic_types");
- break;
- }
- case BaseType::UInt64:
- case BaseType::Int64:
- {
- requireExtension("GL_EXT_shader_explicit_arithmetic_types_int64");
- m_hasBaseTypeFlags |= _getFlag(BaseType::UInt64) | _getFlag(BaseType::Int64);
- break;
- }
- }
-
- m_hasBaseTypeFlags |= bit;
-}
-
-
-} // namespace Slang