Skip to content

Commit adfac1b

Browse files
ConvertUBOToPushConstantPass: inline functions before conversion
1 parent 3291252 commit adfac1b

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

Graphics/ShaderTools/src/ConvertUBOToPushConstant.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,13 @@ std::vector<uint32_t> ConvertUBOToPushConstants(
543543

544544
optimizer.SetMessageConsumer(SPIRVToolsInternal::SpvOptimizerMessageConsumer);
545545

546+
// Inline all function calls to eliminate OpFunctionCall instructions
547+
optimizer.RegisterPass(spvtools::CreateInlineExhaustivePass());
548+
549+
// Inlining tends to leave junk behind. You can clean it up
550+
optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass());
551+
optimizer.RegisterPass(spvtools::CreateEliminateDeadFunctionsPass());
552+
546553
// Register the pass to convert UBO to push constant using custom out-of-tree pass
547554
optimizer.RegisterPass(ConvertUBOToPushConstantPass::Create(BlockName));
548555

0 commit comments

Comments
 (0)