Skip to content

MetalFX iOS xcode27.0 b1

Alex Soto edited this page Jun 9, 2026 · 1 revision

#MetalFX.framework

diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalScaler.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalScaler.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalScaler.h	2026-04-18 20:49:50
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalScaler.h	2026-05-27 00:32:13
@@ -17,7 +17,7 @@
 /// inherits from protocol ``MTLFXTemporalScalerBase`` and then call ``encodeToCommandBuffer:`` to
 /// encode its work into a Metal command buffer.
 ///
-/// See ``MTLFXTemporalScalerBase`` for more details on configuring and using spatial scalers.
+/// See ``MTLFXTemporalScalerBase`` for more details on configuring and using temporal scalers.
 ///
 API_AVAILABLE(macos(26.0), ios(26.0))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
@@ -25,10 +25,10 @@
 #endif
 @protocol MTL4FXTemporalScaler <MTLFXTemporalScalerBase>
 
-/// Encode this spatial scaler work into a command buffer.
+/// Adds a scaling pass to a command buffer.
 ///
 /// - Parameters:
-///    - commandBuffer: A command buffer into which this spatial scaler encodes work.
+///    - commandBuffer: A command buffer into which this scaler encodes work.
 ///
 - (void)encodeToCommandBuffer:(nonnull id<MTL4CommandBuffer>)commandBuffer;
 
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXFrameInterpolator.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXFrameInterpolator.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXFrameInterpolator.h	2026-04-18 23:16:51
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXFrameInterpolator.h	2026-05-27 01:04:40
@@ -60,6 +60,27 @@
 /// The height, in pixels, of the output color texture for the frame interpolator.
 @property (readwrite, nonatomic) NSUInteger outputHeight;
 
+/// A Boolean value that indicates whether the frame interpolator supports barrel distortion correction.
+///
+/// Set this property to <doc://com.apple.documentation/documentation/swift/true> to create a frame interpolator
+/// that can apply barrel distortion correction using a distortion field texture.
+///
+/// When you enable this property, you can assign a distortion texture to the interpolator's
+/// ``MTLFXFrameInterpolatorBase/distortionTexture`` property to correct lens distortion artifacts
+/// during frame interpolation.
+///
+/// This property's default value is <doc://com.apple.documentation/documentation/swift/false>.
+@property (readwrite, nonatomic, getter=isDistortionTextureEnabled) BOOL distortionTextureEnabled API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// A Boolean value that indicates whether the frame interpolator requires the client to provide a previous color texture.
+///
+/// When this property is YES (the default), you must assign a valid texture to the interpolator's
+/// ``prevColorTexture`` property before encoding. When NO, the frame interpolator internally manages
+/// the previous color data and ``prevColorTexture`` may be nil.
+///
+/// This property's default value is <doc://com.apple.documentation/documentation/swift/true>.
+@property (readwrite, nonatomic) BOOL requiresPrevColorTexture API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);;
+
 /// Creates a frame interpolator instance for a Metal device.
 ///
 /// - Parameters:
@@ -153,9 +174,9 @@
 /// The pixel format of the output color texture for this frame interpolator.
 @property (nonatomic, readonly) MTLPixelFormat outputTextureFormat;
 
-/// The width, in pixels, of the input color texture for the frame interpolator.
+/// The width, in pixels, of the input depth and motion texture for the frame interpolator.
 @property (nonatomic, readonly) NSUInteger inputWidth;
-/// The height, in pixels, of the input color texture for the frame interpolator.
+/// The height, in pixels, of the input depth and motion texture for the frame interpolator.
 @property (nonatomic, readonly) NSUInteger inputHeight;
 /// The width, in pixels, of the output color texture for the frame interpolator.
 @property (nonatomic, readonly) NSUInteger outputWidth;
@@ -164,6 +185,48 @@
 /// The pixel format of the input UI texture for the frame interpolator.
 @property (nonatomic, readonly) MTLPixelFormat uiTextureFormat;
 
+/// The width, in pixels, of the content region within the input textures to process.
+///
+/// Use this property together with ``contentHeight`` to specify a subrectangle of the input
+/// textures for the frame interpolator to process.
+@property (nonatomic, readwrite) NSUInteger contentWidth API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The height, in pixels, of the content region within the input textures to process.
+///
+/// Use this property together with ``contentWidth`` to specify a subrectangle of the input
+/// textures for the frame interpolator to process.
+@property (nonatomic, readwrite) NSUInteger contentHeight API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The horizontal offset, in pixels, of the region within the depth texture to use as input.
+@property (nonatomic, readwrite) NSUInteger depthContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The vertical offset, in pixels, of the region within the depth texture to use as input.
+@property (nonatomic, readwrite) NSUInteger depthContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The horizontal offset, in pixels, of the region within the motion texture to use as input.
+@property (nonatomic, readwrite) NSUInteger motionContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The vertical offset, in pixels, of the region within the motion texture to use as input.
+@property (nonatomic, readwrite) NSUInteger motionContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The horizontal offset, in pixels, of the region within the output texture to write results.
+@property (nonatomic, readwrite) NSUInteger outputOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The vertical offset, in pixels, of the region within the output texture to write results.
+@property (nonatomic, readwrite) NSUInteger outputOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The horizontal offset, in pixels, of the region within the distortion texture to use as input.
+@property (nonatomic, readwrite) NSUInteger distortionOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The vertical offset, in pixels, of the region within the distortion texture to use as input.
+@property (nonatomic, readwrite) NSUInteger distortionOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The width, in pixels, of the content region within the distortion texture to use as input.
+///
+/// When set to zero (the default), the frame interpolator uses ``contentWidth`` instead.
+@property (nonatomic, readwrite) NSUInteger distortionWidth API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The height, in pixels, of the content region within the distortion texture to use as input.
+///
+/// When set to zero (the default), the frame interpolator uses ``contentHeight`` instead.
+@property (nonatomic, readwrite) NSUInteger distortionHeight API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
 /// The color texture that this frame interpolator evaluates.
 ///
 /// You are responsible for ensuring the usage and pixel format of the texture you assign to this property matches the
@@ -237,6 +300,11 @@
 /// typically `width/height`.
 @property (readwrite, nonatomic) float aspectRatio;
 
+/// The world-to-view transformation matrix this frame interpolator uses as part of its operation.
+@property (nonatomic) simd_float4x4 worldToViewMatrix API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The view-to-clip coordinates transformation matrix this frame interpolator uses as part of its operation.
+@property (nonatomic) simd_float4x4 viewToClipMatrix API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
 /// An optional texture containing your game's custom UI that this frame interpolator evaluates.
 ///
 /// The frame interpolator uses this property to overlay your custom UI on any frame data it produces into ``outputTexture``.
@@ -284,6 +352,16 @@
 ///
 /// You are responsible for providing a texture with a private `storageMode` to this property.
 @property (nonatomic, retain, nullable) id<MTLTexture> outputTexture;
+
+/// A distortion field texture that the frame interpolator uses to correct barrel distortion.
+///
+/// Assign a texture containing a distortion field to this property to enable barrel distortion
+/// correction during frame interpolation. The distortion field describes how to remap pixels
+/// to correct lens distortion artifacts common in VR or wide-angle camera applications.
+///
+/// You are responsible for providing a texture that matches the output dimensions of the frame interpolator.
+@property (nonatomic, retain, nullable) id<MTLTexture> distortionTexture API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
 
 /// An optional fence that this frame interpolator waits for and updates.
 ///
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalDenoisedScaler.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalDenoisedScaler.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalDenoisedScaler.h	2026-04-18 23:16:52
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalDenoisedScaler.h	2026-05-27 00:32:13
@@ -223,8 +223,11 @@
 /// The minimal texture usage options that your app’s input motion texture needs in order to support this denoiser scaler.
 @property (nonatomic, readonly) MTLTextureUsage motionTextureUsage;
 
-/// The minimal texture usage options that your app’s input reactive texture needs in order to support this denoiser scaler.
-@property (nonatomic, readonly) MTLTextureUsage reactiveTextureUsage;
+/// The minimal texture usage options that your app's input reactive mask texture needs in order to support this denoiser scaler.
+@property (nonatomic, readonly) MTLTextureUsage reactiveMaskTextureUsage API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The minimal texture usage options that your app's input reactive texture needs in order to support this denoiser scaler.
+@property (nonatomic, readonly) MTLTextureUsage reactiveTextureUsage
+    API_DEPRECATED_WITH_REPLACEMENT("reactiveMaskTextureUsage", macos(14.4, 27.0), ios(17.4, 27.0));
 
 /// The minimal texture usage options that your app’s input diffuse albedo texture needs in order to support this denoiser scaler.
 @property (nonatomic, readonly) MTLTextureUsage diffuseAlbedoTextureUsage;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalScaler.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalScaler.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalScaler.h	2026-04-18 20:49:51
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalScaler.h	2026-05-27 01:04:40
@@ -90,7 +90,29 @@
 /// The largest scale factor the temporal scaler you create with this descriptor can use to generate output textures.
 @property (readwrite, nonatomic) float inputContentMaxScale;
 
+/// A Boolean value that indicates whether the scaler expects motion vectors at output resolution.
+///
+/// Set this property to <doc://com.apple.documentation/documentation/swift/true> when your app provides
+/// motion vectors at the output resolution rather than the input resolution.
+///
+/// When you enable this property, the scaler interprets the ``MTLFXTemporalScalerBase/motionTexture``
+/// dimensions to match ``outputWidth`` and ``outputHeight`` instead of ``inputWidth`` and ``inputHeight``.
+///
+/// This property's default value is <doc://com.apple.documentation/documentation/swift/false>.
+@property (readwrite, nonatomic, getter=isOutputResolutionMotionVectorsEnabled) BOOL outputResolutionMotionVectorsEnabled API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
 
+
+/// A Boolean value that indicates whether the motion vectors include the jittering pattern.
+///
+/// When you set this property to <doc://com.apple.documentation/documentation/swift/true>, the scaler internally
+/// subtracts the jitter from the motion vectors using the jitter offset values provided each frame via
+/// ``MTLFXTemporalScalerBase/jitterOffsetX`` and ``MTLFXTemporalScalerBase/jitterOffsetY``.
+///
+/// When <doc://com.apple.documentation/documentation/swift/false> (the default), the scaler uses the motion vectors
+/// directly without any adjustment.
+@property (readwrite, nonatomic, getter=isJitteredMotionVectorsEnabled) BOOL jitteredMotionVectorsEnabled API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+
 /// A Boolean value that indicates whether a temporal scaler you create with the descriptor applies a reactive mask.
 @property (readwrite, nonatomic, getter=isReactiveMaskTextureEnabled) BOOL reactiveMaskTextureEnabled API_AVAILABLE(macos(14.4), ios(17.4));
 
@@ -199,8 +221,11 @@
 @property (nonatomic, readonly) MTLTextureUsage depthTextureUsage;
 /// The minimal texture usage options that your app’s motion texture needs in order to support this scaler.
 @property (nonatomic, readonly) MTLTextureUsage motionTextureUsage;
-/// The minimal texture usage options that your app’s reactive texture needs in order to support this scaler.
-@property (nonatomic, readonly) MTLTextureUsage reactiveTextureUsage;
+/// The minimal texture usage options that your app's reactive mask texture needs in order to support this scaler.
+@property (nonatomic, readonly) MTLTextureUsage reactiveMaskTextureUsage API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The minimal texture usage options that your app's reactive texture needs in order to support this scaler.
+@property (nonatomic, readonly) MTLTextureUsage reactiveTextureUsage
+    API_DEPRECATED_WITH_REPLACEMENT("reactiveMaskTextureUsage", macos(14.4, 27.0), ios(17.4, 27.0));
 
 /// The minimal texture usage options that your output texture needs in order to support this scaler.
 @property (nonatomic, readonly) MTLTextureUsage outputTextureUsage;
@@ -210,6 +235,33 @@
 /// The height, in pixels, of the region within the color texture the scaler uses as its input.
 @property (nonatomic) NSUInteger inputContentHeight;
 
+
+/// The horizontal offset, in pixels, of the region within the color texture to use as input.
+@property (nonatomic) NSUInteger colorContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The vertical offset, in pixels, of the region within the color texture to use as input.
+@property (nonatomic) NSUInteger colorContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The horizontal offset, in pixels, of the region within the depth texture to use as input.
+@property (nonatomic) NSUInteger depthContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The vertical offset, in pixels, of the region within the depth texture to use as input.
+@property (nonatomic) NSUInteger depthContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The horizontal offset, in pixels, of the region within the motion texture to use as input.
+@property (nonatomic) NSUInteger motionContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The vertical offset, in pixels, of the region within the motion texture to use as input.
+@property (nonatomic) NSUInteger motionContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The horizontal offset, in pixels, of the region within the reactive mask texture to use as input.
+@property (nonatomic) NSUInteger reactiveMaskContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The vertical offset, in pixels, of the region within the reactive mask texture to use as input.
+@property (nonatomic) NSUInteger reactiveMaskContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+/// The horizontal offset, in pixels, of the region within the output texture to write results.
+@property (nonatomic) NSUInteger outputOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+/// The vertical offset, in pixels, of the region within the output texture to write results.
+@property (nonatomic) NSUInteger outputOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+
+
 /// An input color texture you set for the scaler that supports the correct color texture usage options.
 @property (nonatomic, retain, nullable) id<MTLTexture> colorTexture;
 /// An input depth texture you set for the scaler that supports the correct color texture usage options.
@@ -328,7 +380,7 @@
 /// inherits from protocol ``MTLFXTemporalScalerBase`` and then call ``encodeToCommandBuffer:`` to
 /// encode its work into a Metal command buffer.
 ///
-/// See ``MTLFXTemporalScalerBase`` for more details on configuring and using spatial scalers.
+/// See ``MTLFXTemporalScalerBase`` for more details on configuring and using temporal scalers.
 ///
 API_AVAILABLE(macos(13.0), ios(16.0))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
@@ -336,10 +388,10 @@
 #endif
 @protocol MTLFXTemporalScaler <MTLFXTemporalScalerBase>
 
-/// Encode this spatial scaler work into a command buffer.
+/// Adds a scaling pass to a command buffer.
 ///
 /// - Parameters:
-///    - commandBuffer: A command buffer into which this spatial scaler encodes work.
+///    - commandBuffer: A command buffer into which this scaler encodes work.
 ///
 - (void)encodeToCommandBuffer:(nonnull id<MTLCommandBuffer>)commandBuffer;
 

Clone this wiki locally