TechnologiesGraphics, Imaging & Compositing

MetalFX

iOSmacOStvOSwatchOSvisionOS

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.

  • Cl
    MTLFXSpatialScalerDescriptormacOS 13.0+
    A set of properties that configure a spatial scaling effect, and a factory method that creates the effect.
  • Pr
    MTLFXSpatialScalermacOS 13.0+
    An upscaling effect that generates a higher resolution texture in a render pass by spatially analyzing an input texture.
  • Pr
    MTLFXSpatialScalerBase
    An upscaling effect that generates a higher resolution texture in a render pass by spatially analyzing an input texture.
  • Pr
    MTL4FXSpatialScalermacOS 26.0+
    An upscaling effect that generates a higher resolution texture in a render pass by spatially analyzing an input texture.
  • En
    MTLFXSpatialScalerColorProcessingModemacOS 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.

  • Cl
    MTLFXTemporalScalerDescriptormacOS 13.0+
    An object that configures the properties of a temporal scaler before you create it.
  • Pr
    MTLFXTemporalScalermacOS 13.0+
    A protocol for an object that upscales frames using motion and history and encodes the effect into a render pass.
  • Pr
    MTLFXTemporalScalerBase
    An upscaling effect that generates a higher resolution texture in a render pass by analyzing multiple input
  • Pr
    MTL4FXTemporalScalermacOS 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.

  • Cl
    MTLFXTemporalDenoisedScalerDescriptormacOS 26.0+
    An object that configures the properties of a temporal denoised scaler before you create it.
  • Pr
    MTLFXTemporalDenoisedScalermacOS 26.0+
    A protocol for an object that denoises and upscales frames and encodes the effect into a render pass.
  • Pr
    MTLFXTemporalDenoisedScalerBasemacOS 26.0+
    A protocol that defines the common properties shared by temporal denoised scalers.
  • Pr
    MTL4FXTemporalDenoisedScalermacOS 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.

  • Cl
    MTLFXFrameInterpolatorDescriptormacOS 26.0+
    A set of properties that configure a frame interpolator, and a factory method that creates the effect.
  • Pr
    MTLFXFrameInterpolatormacOS 26.0+
    A protocol for an object that synthesizes intermediate frames and encodes the effect into a render pass.
  • Pr
    MTLFXFrameInterpolatorBasemacOS 26.0+
    A protocol that defines the common properties shared by Metal frame interpolators.
  • Pr
    MTL4FXFrameInterpolatormacOS 26.0+
    A protocol for a frame interpolator that encodes into a Metal 4 command buffer.
  • Pr
    MTLFXFrameInterpolatableScaler
    A protocol for a scaler whose output can serve as input to a frame interpolator.
← Graphics, Imaging & Compositing