Repository navigation
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