diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2020-03-05 10:59:54 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-05 10:59:54 -0500 |
| commit | 6684d32db1f5693bcfb4971558cb30e855cd3bad (patch) | |
| tree | 480e014b917a6eb0fe72faa6c52a25f4856ed1cb /source/slang/slang-emit-glsl-extension-tracker.cpp | |
| parent | 5951d2a45f3546a619fb5b032a4a422229c46e4c (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.cpp | 69 |
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 |
