Metal: add RelaxedtoHalfPass for improved ALU performance (#5504)

This commit is contained in:
Ben Doherty
2022-05-04 11:13:28 -07:00
committed by GitHub
parent ebd5f150c1
commit efec4e1adc
4 changed files with 11 additions and 0 deletions
+7
View File
@@ -441,6 +441,13 @@ std::shared_ptr<spvtools::Optimizer> GLSLPostProcessor::createOptimizer(
registerSizePasses(*optimizer, config);
} else if (optimization == MaterialBuilder::Optimization::PERFORMANCE) {
registerPerformancePasses(*optimizer, config);
// Metal doesn't support relaxed precision, but does have support for float16 math operations.
if (config.targetApi == MaterialBuilder::TargetApi::METAL) {
optimizer->RegisterPass(CreateConvertRelaxedToHalfPass());
optimizer->RegisterPass(CreateSimplificationPass());
optimizer->RegisterPass(CreateRedundancyEliminationPass());
optimizer->RegisterPass(CreateAggressiveDCEPass());
}
}
return optimizer;