Skip to content

MetalFX macOS xcode27.2 b3

Alex Soto edited this page Oct 17, 2026 · 1 revision

#MetalFX.framework

diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXFrameInterpolator.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXFrameInterpolator.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXFrameInterpolator.h	2026-08-08 19:39:25
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXFrameInterpolator.h	2026-10-04 01:41:58
@@ -20,7 +20,7 @@
 ///
 /// See ``MTLFXFrameInterpolatorBase`` for more details on configuring and using frame interpolators.
 ///
-API_AVAILABLE(macos(26.0), ios(26.0))
+API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXSpatialScaler.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXSpatialScaler.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXSpatialScaler.h	2026-08-08 19:39:25
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXSpatialScaler.h	2026-10-04 01:41:58
@@ -20,7 +20,7 @@
 ///
 /// See ``MTLFXSpatialScalerBase`` for more details on configuring and using spatial scalers.
 ///
-API_AVAILABLE(macos(26.0), ios(26.0))
+API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1))
 @protocol MTL4FXSpatialScaler <MTLFXSpatialScalerBase>
 
 /// Encode this spatial scaler work into a command buffer.
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalDenoisedScaler.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalDenoisedScaler.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalDenoisedScaler.h	2026-08-08 19:39:25
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalDenoisedScaler.h	2026-10-04 01:41:58
@@ -20,7 +20,7 @@
 ///
 /// See ``MTLFXTemporalDenoisedScalerBase`` for more details on configuring and using denoiser scalers.
 ///
-API_AVAILABLE(macos(26.0), ios(26.0))
+API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalScaler.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalScaler.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalScaler.h	2026-08-08 19:39:25
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTL4FXTemporalScaler.h	2026-10-04 01:41:58
@@ -19,7 +19,7 @@
 ///
 /// See ``MTLFXTemporalScalerBase`` for more details on configuring and using temporal scalers.
 ///
-API_AVAILABLE(macos(26.0), ios(26.0))
+API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXFrameInterpolator.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXFrameInterpolator.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXFrameInterpolator.h	2026-08-15 22:21:07
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXFrameInterpolator.h	2026-09-13 22:04:26
@@ -31,7 +31,7 @@
 /// respective format of the texture you later assign to the scaler. For example, make sure that the format to which
 /// you set the ``colorTextureFormat`` property matches the format of the texture you later assign to the interpolator's
 /// ``MTLFXFrameInterpolatorDescriptor/colorTexture`` property.
-API_AVAILABLE(macos(26.0), ios(26.0))
+API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1))
 @interface MTLFXFrameInterpolatorDescriptor : NSObject <NSCopying>
 
 /// The pixel format of the input color texture for the frame interpolator you create with this descriptor.
@@ -70,7 +70,7 @@
 /// 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);
+@property (readwrite, nonatomic, getter=isDistortionTextureEnabled) BOOL distortionTextureEnabled API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) API_UNAVAILABLE(visionos);
 
 /// A Boolean value that indicates whether the frame interpolator requires the client to provide a previous color texture.
 ///
@@ -79,7 +79,7 @@
 /// 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);;
+@property (readwrite, nonatomic) BOOL requiresPrevColorTexture API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) API_UNAVAILABLE(visionos);;
 
 /// Creates a frame interpolator instance for a Metal device.
 ///
@@ -148,7 +148,7 @@
 /// into which command buffer it encodes its work. You achieve this by calling, for example,
 /// ``MTLFXFrameInterpolator/encodeToCommandBuffer:``.
 ///
-API_AVAILABLE(macos(26.0), ios(26.0))
+API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif
@@ -189,43 +189,43 @@
 ///
 /// 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);
+@property (nonatomic, readwrite) NSUInteger contentWidth API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic, readwrite) NSUInteger contentHeight API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic, readwrite) NSUInteger depthContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic, readwrite) NSUInteger depthContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic, readwrite) NSUInteger motionContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic, readwrite) NSUInteger motionContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) API_UNAVAILABLE(visionos);
 
 /// The horizontal offset, in pixels, of the region within the output texture to write results. For regions outside the contents of the colorTexture are copied.
-@property (nonatomic, readwrite) NSUInteger outputOffsetX API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+@property (nonatomic, readwrite) NSUInteger outputOffsetX API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) API_UNAVAILABLE(visionos);
 /// The vertical offset, in pixels, of the region within the output texture to write results. . For regions outside the contents of the colorTexture are copied.
-@property (nonatomic, readwrite) NSUInteger outputOffsetY API_AVAILABLE(macos(27.0), ios(27.0)) API_UNAVAILABLE(visionos);
+@property (nonatomic, readwrite) NSUInteger outputOffsetY API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic, readwrite) NSUInteger distortionOffsetX API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic, readwrite) NSUInteger distortionOffsetY API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic, readwrite) NSUInteger distortionWidth API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic, readwrite) NSUInteger distortionHeight API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) API_UNAVAILABLE(visionos);
 
 /// The color texture that this frame interpolator evaluates.
 ///
@@ -301,9 +301,17 @@
 @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);
+///
+/// Set this and ``viewToClipMatrix`` to the matrices you use to render the scene into the color buffer. This frame
+/// interpolator derives camera-only motion from the pair, and treats two identity matrices as "not supplied".
+@property (nonatomic) simd_float4x4 worldToViewMatrix API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+///
+/// Set this to your unmodified projection matrix. Its depth range has to agree with ``depthReversed``: when that
+/// property is `NO` this matrix maps the near plane to a clip z of 0, and when it is `YES` it maps the near plane to a
+/// clip z of 1. Both a left-handed and a right-handed matrix are fine, as long as it is the one that produced
+/// ``depthTexture``.
+@property (nonatomic) simd_float4x4 viewToClipMatrix API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) API_UNAVAILABLE(visionos);
 
 /// An optional texture containing your game's custom UI that this frame interpolator evaluates.
 ///
@@ -360,7 +368,7 @@
 /// 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);
+@property (nonatomic, retain, nullable) id<MTLTexture> distortionTexture API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) API_UNAVAILABLE(visionos);
 
 
 /// An optional fence that this frame interpolator waits for and updates.
@@ -385,7 +393,7 @@
 ///
 /// See ``MTLFXFrameInterpolatorBase`` for more details on configuring and using frame interpolators.
 ///
-API_AVAILABLE(macos(26.0), ios(26.0))
+API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXSpatialScaler.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXSpatialScaler.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXSpatialScaler.h	2026-08-08 17:39:50
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXSpatialScaler.h	2026-10-04 01:31:41
@@ -26,14 +26,14 @@
     ///
     /// When you configure this mode, MetalFX performs a reversible tone mapping operation to convert your data to the `[0,1]` range.
     MTLFXSpatialScalerColorProcessingModeHDR NS_SWIFT_NAME(hdr) = 2,
-} API_AVAILABLE(macos(13.0), ios(16.0));
+} API_AVAILABLE(macos(13.0), ios(16.0), tvos(27.1));
 
 // Forward declaration.
 @protocol MTLFXSpatialScaler;
 
 
 /// A set of properties that configure a spatial scaling effect, and a factory method that creates the effect.
-API_AVAILABLE(macos(13.0), ios(16.0))
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(27.1))
 @interface MTLFXSpatialScalerDescriptor : NSObject <NSCopying>
 
 /// The pixel format of the input color texture for the spatial scaler you create with this descriptor.
@@ -74,7 +74,7 @@
 ///    - compiler: A compiler instance this method can use to build pipeline state objects.
 /// - Returns:
 ///    A new spatial scaler instance upon success, or `nil` otherwise.
-- (nullable id <MTL4FXSpatialScaler>)newSpatialScalerWithDevice:(nonnull id<MTLDevice>)device compiler:(nonnull id<MTL4Compiler>)compiler API_AVAILABLE(macos(26.0), ios(26.0));
+- (nullable id <MTL4FXSpatialScaler>)newSpatialScalerWithDevice:(nonnull id<MTLDevice>)device compiler:(nonnull id<MTL4Compiler>)compiler API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1));
 
 /// Queries whether a Metal device supports spatial scaling compatible with Metal 4.
 ///
@@ -83,7 +83,7 @@
 ///
 /// - Returns: <doc://com.apple.documentation/documentation/swift/true> if the device supports spatial scaling with
 ///             Metal 4, <doc://com.apple.documentation/documentation/swift/false> otherwise.
-+ (BOOL)supportsMetal4FX:(nonnull id<MTLDevice>)device API_AVAILABLE(macos(26.0), ios(26.0));
++ (BOOL)supportsMetal4FX:(nonnull id<MTLDevice>)device API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1));
 
 /// Returns a Boolean value that indicates whether the spatial scaler works with a GPU.
 ///
@@ -131,6 +131,11 @@
 /// the only requirement is that you provide textures that match the pixel formats and dimensions you specify in the
 /// ``MTLFXSpatialScalerDescriptor`` descriptor instance that creates the scaler instance.
 ///
+// tvOS-only: these base protocols carry no availability on macOS/iOS, where they
+// have always been reachable. Annotating tvOS keeps the enclosing context in step
+// with the tvos(27.1) members below, which otherwise warn against themselves for
+// clients whose deployment target predates 27.1.
+API_AVAILABLE(tvos(27.1))
 @protocol MTLFXSpatialScalerBase <NSObject>
 
 /// The minimal texture usage options that your app’s input color texture needs in order to support this scaler.
@@ -181,7 +186,7 @@
 ///
 /// See ``MTLFXSpatialScalerBase`` for more details on configuring and using spatial scalers.
 ///
-API_AVAILABLE(macos(13.0), ios(16.0))
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(27.1))
 @protocol MTLFXSpatialScaler <MTLFXSpatialScalerBase>
 
 /// Encode this spatial scaler work into a command buffer.
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalDenoisedScaler.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalDenoisedScaler.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalDenoisedScaler.h	2026-08-15 22:21:07
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalDenoisedScaler.h	2026-09-13 22:04:26
@@ -24,7 +24,7 @@
 /// respective format of the texture you later assign to the scaler. For example, make sure that the format to which
 /// you set the ``colorTextureFormat`` property matches the format of the texture you later assign to the scaler's
 /// ``MTLFXTemporalDenoisedScalerDescriptor/colorTexture`` property.
-API_AVAILABLE(macos(26.0), ios(18.0))
+API_AVAILABLE(macos(26.0), ios(18.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif
@@ -208,7 +208,7 @@
 /// into which command buffer it encodes its work. You achieve this by calling, for example,
 /// ``MTLFXTemporalDenoisedScaler/encodeToCommandBuffer:``.
 ///
-API_AVAILABLE(macos(26.0), ios(26.0))
+API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif
@@ -224,7 +224,7 @@
 @property (nonatomic, readonly) MTLTextureUsage motionTextureUsage;
 
 /// 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);
+@property (nonatomic, readonly) MTLTextureUsage reactiveMaskTextureUsage API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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));
@@ -472,7 +472,7 @@
 ///
 /// See ``MTLFXTemporalDenoisedScalerBase`` for more details on configuring and using denoiser scalers.
 ///
-API_AVAILABLE(macos(26.0), ios(18.0))
+API_AVAILABLE(macos(26.0), ios(18.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif
diff -ruN /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalScaler.h /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalScaler.h
--- /Applications/Xcode_27.1.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalScaler.h	2026-08-15 22:21:08
+++ /Applications/Xcode_27.2.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/MetalFX.framework/Headers/MTLFXTemporalScaler.h	2026-10-04 00:15:07
@@ -13,7 +13,7 @@
 @protocol MTLFXTemporalScaler;
 
 /// A set of properties that configure a temporal scaling effect, and a factory method that creates the effect.
-API_AVAILABLE(macos(13.0), ios(16.0))
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif
@@ -99,7 +99,7 @@
 /// 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);
+@property (readwrite, nonatomic, getter=isOutputResolutionMotionVectorsEnabled) BOOL outputResolutionMotionVectorsEnabled API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) API_UNAVAILABLE(visionos);
 
 
 /// A Boolean value that indicates whether the motion vectors include the jittering pattern.
@@ -110,14 +110,14 @@
 ///
 /// 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);
+@property (readwrite, nonatomic, getter=isJitteredMotionVectorsEnabled) BOOL jitteredMotionVectorsEnabled API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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));
+@property (readwrite, nonatomic, getter=isReactiveMaskTextureEnabled) BOOL reactiveMaskTextureEnabled API_AVAILABLE(macos(14.4), ios(17.4), tvos(27.1));
 
 /// The pixel format of the reactive mask input texture for a temporal scaler you create with the descriptor.
-@property (readwrite, nonatomic) MTLPixelFormat reactiveMaskTextureFormat API_AVAILABLE(macos(14.4), ios(17.4));
+@property (readwrite, nonatomic) MTLPixelFormat reactiveMaskTextureFormat API_AVAILABLE(macos(14.4), ios(17.4), tvos(27.1));
 
 /// Creates a temporal scaler instance for a Metal device.
 ///
@@ -134,7 +134,7 @@
 ///    - compiler: A compiler instance this method can use to build pipeline state objects.
 /// - Returns:
 ///    A new temporal scaler instance upon success, or `nil` otherwise.
-- (nullable id <MTL4FXTemporalScaler>)newTemporalScalerWithDevice:(nonnull id<MTLDevice>)device compiler:(nonnull id<MTL4Compiler>)compiler API_AVAILABLE(macos(26.0), ios(26.0));
+- (nullable id <MTL4FXTemporalScaler>)newTemporalScalerWithDevice:(nonnull id<MTLDevice>)device compiler:(nonnull id<MTL4Compiler>)compiler API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1));
 
 /// Returns the smallest temporal scaling factor the device supports as a floating-point value.
 ///
@@ -142,7 +142,7 @@
 ///    - device: The Metal device for which this method performs this check.
 ///
 /// - Returns: the minimum input content scale the GPU device supports.
-+ (float)supportedInputContentMinScaleForDevice:(nonnull id<MTLDevice>)device API_AVAILABLE(macos(14.0), ios(17.0));
++ (float)supportedInputContentMinScaleForDevice:(nonnull id<MTLDevice>)device API_AVAILABLE(macos(14.0), ios(17.0), tvos(27.1));
 
 /// Returns the largest temporal scaling factor the device supports as a floating-point value.
 ///
@@ -150,7 +150,7 @@
 ///    - device: The Metal device for which this method performs this check.
 ///
 /// - Returns: the maximum input content scale the GPU device supports.
-+ (float)supportedInputContentMaxScaleForDevice:(nonnull id<MTLDevice>)device API_AVAILABLE(macos(14.0), ios(17.0));
++ (float)supportedInputContentMaxScaleForDevice:(nonnull id<MTLDevice>)device API_AVAILABLE(macos(14.0), ios(17.0), tvos(27.1));
 
 /// Returns a Boolean value that indicates whether the temporal scaler works with a GPU.
 ///
@@ -168,10 +168,13 @@
 ///
 /// - Returns: <doc://com.apple.documentation/documentation/swift/true> if the device supports temporal scaling with
 ///             Metal 4, <doc://com.apple.documentation/documentation/swift/false> otherwise.
-+ (BOOL)supportsMetal4FX:(nonnull id<MTLDevice>)device API_AVAILABLE(macos(26.0), ios(26.0));
++ (BOOL)supportsMetal4FX:(nonnull id<MTLDevice>)device API_AVAILABLE(macos(26.0), ios(26.0), tvos(27.1));
 
 @end
 
+// tvOS-only: see the note on MTLFXSpatialScalerBase. Keeps the enclosing context
+// in step with the tvos(27.1) members these protocols declare.
+API_AVAILABLE(tvos(27.1))
 @protocol MTLFXFrameInterpolatableScaler <NSObject>
 
 @end
@@ -213,6 +216,7 @@
 /// the only requirement is that you provide textures that match the pixel formats and dimensions you specify in the
 /// ``MTLFXTemporalScalerDescriptor`` descriptor instance that creates the scaler instance.
 ///
+API_AVAILABLE(tvos(27.1))
 @protocol MTLFXTemporalScalerBase <MTLFXFrameInterpolatableScaler>
 
 /// The minimal texture usage options that your app’s input color texture needs in order to support this scaler.
@@ -222,7 +226,7 @@
 /// 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 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);
+@property (nonatomic, readonly) MTLTextureUsage reactiveMaskTextureUsage API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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));
@@ -237,29 +241,29 @@
 
 
 /// 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);
+@property (nonatomic) NSUInteger colorContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic) NSUInteger colorContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic) NSUInteger depthContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic) NSUInteger depthContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic) NSUInteger motionContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic) NSUInteger motionContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic) NSUInteger reactiveMaskContentOffsetX API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic) NSUInteger reactiveMaskContentOffsetY API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic) NSUInteger outputOffsetX API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) 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);
+@property (nonatomic) NSUInteger outputOffsetY API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.1)) API_UNAVAILABLE(visionos);
 
 
 /// An input color texture you set for the scaler that supports the correct color texture usage options.
@@ -382,7 +386,7 @@
 ///
 /// See ``MTLFXTemporalScalerBase`` for more details on configuring and using temporal scalers.
 ///
-API_AVAILABLE(macos(13.0), ios(16.0))
+API_AVAILABLE(macos(13.0), ios(16.0), tvos(27.1))
 #if defined(TARGET_OS_VISION) && TARGET_OS_VISION
 API_UNAVAILABLE(visionos)
 #endif

Clone this wiki locally