Metal: add RelaxedtoHalfPass for improved ALU performance (#5504)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user