diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 164fa230..cffeb201 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -6962,7 +6962,7 @@ void OutputSpvHex(const std::vector& spirv, const char* baseName, if (out.fail()) printf("ERROR: Failed to open file: %s\n", baseName); out << "\t// " << - glslang::GetSpirvGeneratorVersion() << "." << GLSLANG_MINOR_VERSION << "." << GLSLANG_PATCH_LEVEL << + GetSpirvGeneratorVersion() << "." << GLSLANG_MINOR_VERSION << "." << GLSLANG_PATCH_LEVEL << std::endl; if (varName != nullptr) { out << "\t #pragma once" << std::endl; @@ -6989,13 +6989,13 @@ void OutputSpvHex(const std::vector& spirv, const char* baseName, // // Set up the glslang traversal // -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, SpvOptions* options) +void GlslangToSpv(const TIntermediate& intermediate, std::vector& spirv, SpvOptions* options) { spv::SpvBuildLogger logger; GlslangToSpv(intermediate, spirv, &logger, options); } -void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector& spirv, +void GlslangToSpv(const TIntermediate& intermediate, std::vector& spirv, spv::SpvBuildLogger* logger, SpvOptions* options) { TIntermNode* root = intermediate.getTreeRoot(); @@ -7003,11 +7003,11 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vectortraverse(&it); @@ -7015,20 +7015,20 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vectorvalidate) - SpirvToolsValidate(intermediate, spirv, logger); - // If from HLSL, run spirv-opt to "legalize" the SPIR-V for Vulkan // eg. forward and remove memory writes of opaque types. if ((intermediate.getSource() == EShSourceHlsl || options->optimizeSize) && !options->disableOptimizer) SpirvToolsLegalize(intermediate, spirv, logger, options); + if (options->validate) + SpirvToolsValidate(intermediate, spirv, logger); + if (options->disassemble) - glslang::SpirvToolsDisassemble(std::cout, spirv); + SpirvToolsDisassemble(std::cout, spirv); #endif - glslang::GetThreadPoolAllocator().pop(); + GetThreadPoolAllocator().pop(); } }; // end namespace glslang diff --git a/SPIRV/SpvTools.cpp b/SPIRV/SpvTools.cpp index 7a15c874..3042bbdd 100755 --- a/SPIRV/SpvTools.cpp +++ b/SPIRV/SpvTools.cpp @@ -180,7 +180,7 @@ void SpirvToolsLegalize(const glslang::TIntermediate& intermediate, std::vector< optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); optimizer.RegisterPass(spvtools::CreateCFGCleanupPass()); - optimizer.Run(spirv.data(), spirv.size(), &spirv); + optimizer.Run(spirv.data(), spirv.size(), &spirv, spvtools::ValidatorOptions(), true); } #endif