From f85955f77b343ca1382dbfcc3e54a76d2cf134bd Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Fri, 8 Aug 2025 11:25:42 -0700 Subject: [PATCH] canonicalize id pass must always run last --- libs/filamat/src/GLSLPostProcessor.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libs/filamat/src/GLSLPostProcessor.cpp b/libs/filamat/src/GLSLPostProcessor.cpp index 7a5f7ce0c0..5571946c9a 100644 --- a/libs/filamat/src/GLSLPostProcessor.cpp +++ b/libs/filamat/src/GLSLPostProcessor.cpp @@ -998,6 +998,11 @@ std::shared_ptr GLSLPostProcessor::createOptimizer( } void GLSLPostProcessor::optimizeSpirv(OptimizerPtr optimizer, SpirvBlob& spirv) { + + // always add the CanonicalizeIds Pass + optimizer->RegisterPass(CreateCanonicalizeIdsPass()); + + // run optimizer if (!optimizer->Run(spirv.data(), spirv.size(), &spirv)) { slog.e << "SPIR-V optimizer pass failed" << io::endl; return; @@ -1090,7 +1095,6 @@ void GLSLPostProcessor::registerPerformancePasses(Optimizer& optimizer, Config c RegisterPass(CreateDeadBranchElimPass()); RegisterPass(CreateBlockMergePass()); RegisterPass(CreateSimplificationPass(), MaterialBuilder::TargetApi::METAL); - RegisterPass(CreateCanonicalizeIdsPass()); } void GLSLPostProcessor::registerSizePasses(Optimizer& optimizer, Config const& config) { @@ -1133,7 +1137,6 @@ void GLSLPostProcessor::registerSizePasses(Optimizer& optimizer, Config const& c RegisterPass(CreateRedundancyEliminationPass()); RegisterPass(CreateAggressiveDCEPass()); RegisterPass(CreateCFGCleanupPass()); - RegisterPass(CreateCanonicalizeIdsPass()); } } // namespace filamat