<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MetalFX",
  "identifier" : "/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "MetalFX"
    ],
    "preciseIdentifier" : "c:objc(cs)MTLFXFrameInterpolatorDescriptor"
  },
  "title" : "MTLFXFrameInterpolatorDescriptor"
}
-->

# MTLFXFrameInterpolatorDescriptor

A set of properties that configure a frame interpolator, and a factory method that creates the effect.

```
class MTLFXFrameInterpolatorDescriptor
```

## Overview

A frame interpolator inspects two frames your game or app renders and, based on their properties, generates
an extra frame at a fraction of the cost, helping you to increase your frame rate.

When you configure this descriptor, set the properties that determine the pixel format for each texture to the
respective format of the texture you later assign to the scaler. For example, make sure that the format to which
you set the [`colorTextureFormat`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/colorTextureFormat) property matches the format of the texture you later assign to the interpolator’s
`MTLFXFrameInterpolatorDescriptor/colorTexture` property.

## Topics

### Instance Properties

[`var colorTextureFormat: MTLPixelFormat`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/colorTextureFormat)

The pixel format of the input color texture for the frame interpolator you create with this descriptor.

[`var depthTextureFormat: MTLPixelFormat`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/depthTextureFormat)

The pixel format of the input depth texture for the frame interpolator you create with this descriptor.

[`var inputHeight: Int`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/inputHeight)

The height, in pixels, of the input motion and depth texture for the frame interpolator.

[`var inputWidth: Int`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/inputWidth)

The width, in pixels, of the input motion and depth texture for the frame interpolator.

[`var isDistortionTextureEnabled: Bool`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/isDistortionTextureEnabled)

A Boolean value that indicates whether the frame interpolator supports barrel distortion correction.

[`var motionTextureFormat: MTLPixelFormat`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/motionTextureFormat)

The pixel format of the input motion texture for the frame interpolator you create with this descriptor.

[`var outputHeight: Int`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/outputHeight)

The height, in pixels, of the output color texture for the frame interpolator.

[`var outputTextureFormat: MTLPixelFormat`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/outputTextureFormat)

The pixel format of the output color texture for the frame interpolator you create with this descriptor.

[`var outputWidth: Int`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/outputWidth)

The width, in pixels, of the output color texture for the frame interpolator.

[`var requiresPrevColorTexture: Bool`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/requiresPrevColorTexture)

A Boolean value that indicates whether the frame interpolator requires the client to provide a previous color texture.

[`var scaler: (any MTLFXFrameInterpolatableScaler)?`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/scaler)

[`var uiTextureFormat: MTLPixelFormat`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/uiTextureFormat)

The pixel format for the frame interpolator of an input texture containing your game’s custom UI.

### Instance Methods

[`func makeFrameInterpolator(device: any MTLDevice) -> (any MTLFXFrameInterpolator)?`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/makeFrameInterpolator(device:))

Creates a frame interpolator instance for a Metal device.

[`func makeFrameInterpolator(device: any MTLDevice, compiler: any MTL4Compiler) -> (any MTL4FXFrameInterpolator)?`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/makeFrameInterpolator(device:compiler:))

Creates a frame interpolator instance for a Metal device.

### Type Methods

[`class func supportsDevice(any MTLDevice) -> Bool`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/supportsDevice(_:))

Queries whether a Metal device supports frame interpolation.

[`class func supportsMetal4FX(any MTLDevice) -> Bool`](/documentation/MetalFX/MTLFXFrameInterpolatorDescriptor/supportsMetal4FX(_:))

Queries whether a Metal device supports frame interpolation compatible with a Metal 4 command buffer.

## Relationships

### Conforms To

[`CVarArg`](/documentation/Swift/CVarArg)

[`Hashable`](/documentation/Swift/Hashable)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)