MetalFX provides upscaling and frame-interpolation effects that generate higher-resolution textures within a Metal render pass through spatial and temporal analysis. You configure an effect from a descriptor such as MTLFXSpatialScalerDescriptor, MTLFXTemporalScalerDescriptor, MTLFXTemporalDenoisedScalerDescriptor, or MTLFXFrameInterpolatorDescriptor, then create the corresponding scaler or interpolator object — for example MTLFXSpatialScaler, MTLFXTemporalScaler, MTLFXTemporalDenoisedScaler, or MTLFXFrameInterpolator — and encode it into your pass to produce the higher-resolution output. Spatial scalers offer color-processing options through MTLFXSpatialScalerColorProcessingMode, while temporal scalers use motion and history across frames; the MTL4-prefixed protocols expose the same effects for that command interface. The framework runs on iOS, macOS, tvOS, and visionOS.
Spatial Upscaling 5
Configure and create an effect that upscales a single frame using spatial analysis.
- ClMTLFXSpatialScalerDescriptormacOS 13.0+A set of properties that configure a spatial scaling effect, and a factory method that creates the effect.
- PrMTLFXSpatialScalermacOS 13.0+An upscaling effect that generates a higher resolution texture in a render pass by spatially analyzing an input texture.
- PrMTLFXSpatialScalerBaseAn upscaling effect that generates a higher resolution texture in a render pass by spatially analyzing an input texture.
- PrMTL4FXSpatialScalermacOS 26.0+An upscaling effect that generates a higher resolution texture in a render pass by spatially analyzing an input texture.
- EnMTLFXSpatialScalerColorProcessingModemacOS 13.0+The color space modes for the input and output textures you use with a spatial scaling effect instance.
Temporal Upscaling 4
Configure and create an effect that upscales frames using motion and history accumulated across the frame sequence.
- ClMTLFXTemporalScalerDescriptormacOS 13.0+An object that configures the properties of a temporal scaler before you create it.
- PrMTLFXTemporalScalermacOS 13.0+A protocol for an object that upscales frames using motion and history and encodes the effect into a render pass.
- PrMTLFXTemporalScalerBaseAn upscaling effect that generates a higher resolution texture in a render pass by analyzing multiple input
- PrMTL4FXTemporalScalermacOS 26.0+A protocol for a temporal scaler that encodes into a Metal 4 command buffer.
Temporal Denoised Upscaling 4
Configure and create an effect that denoises and upscales frames using temporal analysis.
- ClMTLFXTemporalDenoisedScalerDescriptormacOS 26.0+An object that configures the properties of a temporal denoised scaler before you create it.
- PrMTLFXTemporalDenoisedScalermacOS 26.0+A protocol for an object that denoises and upscales frames and encodes the effect into a render pass.
- PrMTLFXTemporalDenoisedScalerBasemacOS 26.0+A protocol that defines the common properties shared by temporal denoised scalers.
- PrMTL4FXTemporalDenoisedScalermacOS 26.0+A protocol for a temporal denoised scaler that encodes into a Metal 4 command buffer.
Frame Interpolation 5
Configure and create an effect that synthesizes intermediate frames between rendered frames.
- ClMTLFXFrameInterpolatorDescriptormacOS 26.0+A set of properties that configure a frame interpolator, and a factory method that creates the effect.
- PrMTLFXFrameInterpolatormacOS 26.0+A protocol for an object that synthesizes intermediate frames and encodes the effect into a render pass.
- PrMTLFXFrameInterpolatorBasemacOS 26.0+A protocol that defines the common properties shared by Metal frame interpolators.
- PrMTL4FXFrameInterpolatormacOS 26.0+A protocol for a frame interpolator that encodes into a Metal 4 command buffer.
- PrMTLFXFrameInterpolatableScalerA protocol for a scaler whose output can serve as input to a frame interpolator.