MetalFX
Boost your Metal app’s performance by upscaling lower-resolution content to save GPU time.
Overview
The MetalFX framework integrates with Metal to upscale a relatively low-resolution image to a higher output resolution in less time than it takes to render directly to the output resolution.
[Image]
Use the GPU time savings to further enhance your app or game’s experience. For example, add more effects or scene details.
MetalFX gives you two different ways to upscale your input renderings:
Temporal antialiased upscaling
Spatial upscaling
If you can provide pixel color, depth, and motion information, add an MTLFXTemporalScaler instance to your render pipeline. Otherwise, add an MTLFXSpatialScaler instance, which only requires a pixel color input texture.
Because the scaling effects take time to initialize, make an instance of either effect at launch or when a display changes resolutions. Once you’ve created an effect instance, you can use it repeatedly, typically once per frame.
Topics
Temporal scaling
Applying temporal antialiasing and upscaling using MetalFXMTLFXTemporalScalerMTLFXTemporalScalerDescriptor