diff --git a/deps/glslang/glslang/CMakeLists.txt b/deps/glslang/glslang/CMakeLists.txt index 7192de5f2c..7370adb7ae 100644 --- a/deps/glslang/glslang/CMakeLists.txt +++ b/deps/glslang/glslang/CMakeLists.txt @@ -87,9 +87,6 @@ function(glslang_set_link_args TARGET) endif() endfunction(glslang_set_link_args) -# We depend on these for later projects, so they should come first. -add_subdirectory(External) - if(NOT TARGET SPIRV-Tools-opt) set(ENABLE_OPT OFF) endif() diff --git a/deps/glslang/glslang/External/CMakeLists.txt b/deps/glslang/glslang/External/CMakeLists.txt deleted file mode 100644 index 4d9690134a..0000000000 --- a/deps/glslang/glslang/External/CMakeLists.txt +++ /dev/null @@ -1,43 +0,0 @@ -# Suppress all warnings from external projects. -set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w) - -if(BUILD_TESTING) - if(TARGET gmock) - message(STATUS "Google Mock already configured - use it") - elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest) - # We need to make sure Google Test does not mess up with the - # global CRT settings on Windows. - if(WIN32) - set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) - endif(WIN32) - add_subdirectory(googletest) - set(GTEST_TARGETS - gtest - gtest_main - gmock - gmock_main) - foreach(target ${GTEST_TARGETS}) - set_property(TARGET ${target} PROPERTY FOLDER gtest) - endforeach() - mark_as_advanced(gmock_build_tests - BUILD_GMOCK - BUILD_GTEST - BUILD_SHARED_LIBS - gtest_build_samples - gtest_build_tests - gtest_disable_pthreads - gtest_force_shared_crt - gtest_hide_internal_symbols) - else() - message(STATUS - "Google Mock was not found - tests based on that will not build") - endif() -endif() - -if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt) - if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools) - set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests") - add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools spirv-tools) - endif() -endif() - diff --git a/deps/glslang/glslang/SPIRV/GlslangToSpv.cpp b/deps/glslang/glslang/SPIRV/GlslangToSpv.cpp index 0b058c3010..ea21f67439 100755 --- a/deps/glslang/glslang/SPIRV/GlslangToSpv.cpp +++ b/deps/glslang/glslang/SPIRV/GlslangToSpv.cpp @@ -449,8 +449,8 @@ spv::Decoration TGlslangToSpvTraverser::TranslateNonUniformDecoration(const glsl builder.addExtension("SPV_EXT_descriptor_indexing"); builder.addCapability(spv::CapabilityShaderNonUniformEXT); return spv::DecorationNonUniformEXT; - } else - return spv::DecorationMax; + } + return spv::DecorationMax; } // Translate a glslang built-in variable to a SPIR-V built in decoration. Also generate @@ -997,6 +997,20 @@ static bool HasNonLayoutQualifiers(const glslang::TType& type, const glslang::TQ return qualifier.invariant || (qualifier.hasLocation() && type.getBasicType() == glslang::EbtBlock); } +// For low-order part of the generator's magic number. Bump up +// when there is a change in the style (e.g., if SSA form changes, +// or a different instruction sequence to do something gets used). +// +// return 1; // start +// return 2; // EOpAtomicCounterDecrement gets a post decrement, to map between GLSL -> SPIR-V +// return 3; // change/correct barrier-instruction operands, to match memory model group decisions +// return 4; // some deeper access chains: for dynamic vector component, and local Boolean component +// return 5; // make OpArrayLength result type be an int with signedness of 0 +// return 6; // revert version 5 change, which makes a different (new) kind of incorrect code, +// versions 4 and 6 each generate OpArrayLength as it has long been done +// return 7; // GLSL volatile keyword maps to both SPIR-V decorations Volatile and Coherent +#define GetSpirvGeneratorVersion() (7) + // // Implement the TGlslangToSpvTraverser class. // @@ -1007,7 +1021,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion, const gl options(options), shaderEntry(nullptr), currentFunction(nullptr), sequenceDepth(0), logger(buildLogger), - builder(spvVersion, (glslang::GetKhronosToolId() << 16) | glslang::GetSpirvGeneratorVersion(), logger), + builder(spvVersion, (glslang::GetKhronosToolId() << 16) | GetSpirvGeneratorVersion(), logger), inEntryPoint(false), entryPointTerminated(false), linkageOnly(false), glslangIntermediate(glslangIntermediate) { @@ -6764,21 +6778,6 @@ spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name) namespace glslang { -// For low-order part of the generator's magic number. Bump up -// when there is a change in the style (e.g., if SSA form changes, -// or a different instruction sequence to do something gets used). -int GetSpirvGeneratorVersion() -{ - // return 1; // start - // return 2; // EOpAtomicCounterDecrement gets a post decrement, to map between GLSL -> SPIR-V - // return 3; // change/correct barrier-instruction operands, to match memory model group decisions - // return 4; // some deeper access chains: for dynamic vector component, and local Boolean component - // return 5; // make OpArrayLength result type be an int with signedness of 0 - // return 6; // revert version 5 change, which makes a different (new) kind of incorrect code, - // versions 4 and 6 each generate OpArrayLength as it has long been done - return 7; // GLSL volatile keyword maps to both SPIR-V decorations Volatile and Coherent -} - // // Set up the glslang traversal // diff --git a/deps/glslang/glslang/SPIRV/GlslangToSpv.h b/deps/glslang/glslang/SPIRV/GlslangToSpv.h index c8eac558ac..ab1175ce3f 100644 --- a/deps/glslang/glslang/SPIRV/GlslangToSpv.h +++ b/deps/glslang/glslang/SPIRV/GlslangToSpv.h @@ -54,7 +54,6 @@ struct SpvOptions { bool optimizeSize; }; -int GetSpirvGeneratorVersion(); void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, SpvOptions* options = nullptr); void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, diff --git a/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp b/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp index 49327020de..127cb4b265 100644 --- a/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp +++ b/deps/glslang/glslang/glslang/MachineIndependent/ShaderLang.cpp @@ -1226,7 +1226,7 @@ void ShDestruct(ShHandle handle) TShHandleBase* base = static_cast(handle); if (base->getAsCompiler()) - DeleteCompiler(base->getAsCompiler()); + delete base->getAsCompiler(); else if (base->getAsLinker()) DeleteLinker(base->getAsLinker()); else if (base->getAsUniformMap()) diff --git a/deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp b/deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp index 6c30865fa0..a6f6514053 100644 --- a/deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp +++ b/deps/glslang/glslang/glslang/OSDependent/Windows/ossource.cpp @@ -114,9 +114,4 @@ void ReleaseGlobalLock() ReleaseMutex(GlobalLock); } -unsigned int __stdcall EnterGenericThread (void* entry) -{ - return ((TThreadEntrypoint)entry)(0); -} - } // namespace glslang