-
Notifications
You must be signed in to change notification settings - Fork 548
Metal tvOS xcode26.0 rc
Alex Soto edited this page Sep 10, 2025
·
2 revisions
#Metal.framework https://github.com/dotnet/macios/pull/23779
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTL4RenderCommandEncoder.h /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTL4RenderCommandEncoder.h
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTL4RenderCommandEncoder.h 2025-08-07 21:20:09
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTL4RenderCommandEncoder.h 2025-08-18 23:20:23
@@ -139,6 +139,17 @@
slopeScale:(float)slopeScale
clamp:(float)clamp;
+/// Configures the minimum and maximum bounds for depth bounds testing.
+///
+/// The render command encoder disables depth bounds testing by default.
+/// The render command encoder also disables depth bounds testing when all of the following properties equal a specific value:
+/// - The `minBound` property is equal to `0.0f`.
+/// - The `maxBound` property is equal to `1.0f`.
+/// Both `minBound` and `maxBound` need to be within `[0.0f, 1.0f]`, and `minBound` needs to be less than or equal to `maxBound`.
+/// - Parameters:
+/// - minBound: A minimum bound for depth testing, which discards fragments with a stored depth that is less than `minBound`.
+/// - maxBound: A maximum bound for depth testing, which discards fragments with a stored depth that is greater than `maxBound`.
+- (void)setDepthTestMinBound:(float)minBound maxBound:(float)maxBound;
/// Sets a scissor rectangle to discard fragments outside a specific area.
///
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h 2025-08-04 05:29:57
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h 2025-08-02 19:54:06
@@ -19,6 +19,7 @@
@protocol MTLVisibleFunctionTable;
@protocol MTLAccelerationStructure;
@protocol MTLIntersectionFunctionTable;
+@protocol MTLDepthStencilState;
/*
@brief
@@ -192,6 +193,17 @@
- (void)setIntersectionFunctionTables:(const id <MTLIntersectionFunctionTable> __nullable [__nonnull])intersectionFunctionTables withRange:(NSRange)range API_AVAILABLE(macos(11.0), ios(14.0), tvos(16.0));
+/*!
+ * @method setDepthStencilState:atIndex
+ * @brief Sets a depth stencil state at a given bind point index
+ */
+- (void)setDepthStencilState:(nullable id<MTLDepthStencilState>)depthStencilState atIndex:(NSUInteger)index API_AVAILABLE(macos(26.0), ios(26.0));
+
+/*!
+ * @method setDepthStencilStates:withRange:
+ * @brief Sets an array of depth stencil states at a given buffer index range
+ */
+- (void)setDepthStencilStates:(const id<MTLDepthStencilState> __nullable [__nonnull])depthStencilStates withRange:(NSRange)range API_AVAILABLE(macos(26.0), ios(26.0));
@end
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDataType.h /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDataType.h
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDataType.h 2025-08-04 07:50:58
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDataType.h 2025-08-03 02:59:24
@@ -225,6 +225,8 @@
/// Represents a data type consisting of a vector four BFloat values.
MTLDataTypeBFloat4 API_AVAILABLE(macos(14.0), ios(17.0)) = 124,
+ /// Represents a data type corresponding to a depth-stencil state object.
+ MTLDataTypeDepthStencilState API_AVAILABLE(macos(26.0), ios(26.0)) = 139,
/// Represents a data type corresponding to a machine learning tensor.
MTLDataTypeTensor API_AVAILABLE(macos(26.0), ios(26.0)) = 140,
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDepthStencil.h /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDepthStencil.h
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDepthStencil.h 2025-08-04 02:42:28
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDepthStencil.h 2025-08-02 19:54:06
@@ -89,5 +89,10 @@
*/
@property (readonly) id <MTLDevice> device;
+/*!
+ @property gpuResourceID
+ @abstract Handle of the GPU resource suitable for storing in an Argument Buffer
+ */
+@property (readonly) MTLResourceID gpuResourceID API_AVAILABLE(macos(26.0), ios(26.0));
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h 2025-08-07 21:20:06
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h 2025-08-02 19:54:04
@@ -197,6 +197,7 @@
MTLGPUFamilyApple7 = 1007,
MTLGPUFamilyApple8 = 1008,
MTLGPUFamilyApple9 = 1009,
+ MTLGPUFamilyApple10 = 1010,
MTLGPUFamilyMac1 API_DEPRECATED_WITH_REPLACEMENT("MTLGPUFamilyMac2", macos(10.15, 13.0), ios(13.0, 16.0)) = 2001,
MTLGPUFamilyMac2 = 2002,
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandBuffer.h /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandBuffer.h
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandBuffer.h 2025-08-04 07:50:57
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandBuffer.h 2025-08-03 00:24:38
@@ -72,6 +72,36 @@
*/
@property (readwrite, nonatomic) BOOL inheritBuffers;
+/// Configures whether the indirect command buffer inherits the depth stencil state from the encoder.
+///
+/// The property's default value is <doc://com.apple.documentation/documentation/swift/true>.
+@property (readwrite, nonatomic) BOOL inheritDepthStencilState API_AVAILABLE(macos(26.0), ios(26.0));
+
+/// Configures whether the indirect command buffer inherits the depth bias from the encoder.
+///
+/// The property's default value is <doc://com.apple.documentation/documentation/swift/true>.
+@property (readwrite, nonatomic) BOOL inheritDepthBias API_AVAILABLE(macos(26.0), ios(26.0));
+
+/// Configures whether the indirect command buffer inherits the depth clip mode from the encoder.
+///
+/// The property's default value is <doc://com.apple.documentation/documentation/swift/true>.
+@property (readwrite, nonatomic) BOOL inheritDepthClipMode API_AVAILABLE(macos(26.0), ios(26.0));
+
+/// Configures whether the indirect command buffer inherits the cull mode from the encoder.
+///
+/// The property's default value is <doc://com.apple.documentation/documentation/swift/true>.
+@property (readwrite, nonatomic) BOOL inheritCullMode API_AVAILABLE(macos(26.0), ios(26.0));
+
+/// Configures whether the indirect command buffer inherits the front facing winding from the encoder.
+///
+/// The property's default value is <doc://com.apple.documentation/documentation/swift/true>.
+@property (readwrite, nonatomic) BOOL inheritFrontFacingWinding API_AVAILABLE(macos(26.0), ios(26.0));
+
+/// Configures whether the indirect command buffer inherits the triangle fill mode from the encoder.
+///
+/// The property's default value is <doc://com.apple.documentation/documentation/swift/true>.
+@property (readwrite, nonatomic) BOOL inheritTriangleFillMode API_AVAILABLE(macos(26.0), ios(26.0));
+
/*!
@abstract
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandEncoder.h /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandEncoder.h
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandEncoder.h 2025-08-04 05:29:57
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandEncoder.h 2025-08-03 00:24:38
@@ -63,6 +63,12 @@
- (void)clearBarrier API_AVAILABLE(macos(14.0), ios(17.0), tvos(18.1), visionos(2.1));
+- (void)setDepthStencilState:(nullable id<MTLDepthStencilState>)depthStencilState API_AVAILABLE(macos(26.0), ios(26.0));
+- (void)setDepthBias:(float)depthBias slopeScale:(float)slopeScale clamp:(float)clamp API_AVAILABLE(macos(26.0), ios(26.0));
+- (void)setDepthClipMode:(MTLDepthClipMode)depthClipMode API_AVAILABLE(macos(26.0), ios(26.0));
+- (void)setCullMode:(MTLCullMode)cullMode API_AVAILABLE(macos(26.0), ios(26.0));
+- (void)setFrontFacingWinding:(MTLWinding)frontFacingWindning API_AVAILABLE(macos(26.0), ios(26.0));
+- (void)setTriangleFillMode:(MTLTriangleFillMode)fillMode API_AVAILABLE(macos(26.0), ios(26.0));
- (void)reset;
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h 2025-08-07 21:20:07
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h 2025-08-18 23:20:22
@@ -319,6 +319,17 @@
*/
- (void)setDepthBias:(float)depthBias slopeScale:(float)slopeScale clamp:(float)clamp;
+/// Configures the minimum and maximum bounds for depth bounds testing.
+///
+/// The render command encoder disables depth bounds testing by default.
+/// The render command encoder also disables depth bounds testing when all of the following properties equal a specific value:
+/// - The `minBound` property is equal to `0.0f`.
+/// - The `maxBound` property is equal to `1.0f`.
+/// Both `minBound` and `maxBound` need to be within `[0.0f, 1.0f]`, and `minBound` needs to be less than or equal to `maxBound`.
+/// - Parameters:
+/// - minBound: A minimum bound for depth testing, which discards fragments with a stored depth that is less than `minBound`.
+/// - maxBound: A maximum bound for depth testing, which discards fragments with a stored depth that is greater than `maxBound`.
+- (void)setDepthTestMinBound:(float)minBound maxBound:(float)maxBound API_AVAILABLE(macos(26.0), ios(26.0));
/*!
@method setScissorRect:
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLSampler.h /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLSampler.h
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLSampler.h 2025-08-04 02:16:33
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLSampler.h 2025-08-18 23:42:07
@@ -89,6 +89,15 @@
MTLSamplerBorderColorOpaqueWhite = 2, // {1,1,1,1}
} API_AVAILABLE(macos(10.12), ios(14.0), tvos(16.0));
+/// Configures how the sampler aggregates contributing samples to a final value.
+typedef NS_ENUM(NSUInteger, MTLSamplerReductionMode) {
+ /// A reduction mode that adds together the product of each contributing sample value by its weight.
+ MTLSamplerReductionModeWeightedAverage = 0,
+ /// A reduction mode that finds the minimum contributing sample value by separately evaluating each channel.
+ MTLSamplerReductionModeMinimum = 1,
+ /// A reduction mode that finds the maximum contributing sample value by separately evaluating each channel.
+ MTLSamplerReductionModeMaximum = 2,
+} API_AVAILABLE(macos(26.0), ios(26.0));
/*!
@class MTLSamplerDescriptor
@@ -149,6 +158,15 @@
*/
@property (nonatomic) MTLSamplerBorderColor borderColor API_AVAILABLE(macos(10.12), ios(14.0), tvos(16.0));
+/// Sets the reduction mode for filtering contributing samples.
+///
+/// The property's default value is ``MTLSamplerReductionModeWeightedAverage``.
+/// The sampler ignores this property if any of the following property values are equal to a specific value:
+/// - The sampler's ``mipFilter`` property is equal to ``MTLSamplerMipFilterNotMipmapped``.
+/// - The sampler's ``mipFilter`` property is equal to ``MTLSamplerMipFilterNearest``.
+/// - The sampler's ``minFilter`` property is equal to ``MTLSamplerMinMagFilterNearest``.
+/// - The sampler's ``magFilter`` property is equal to ``MTLSamplerMinMagFilterNearest``.
+@property (nonatomic) MTLSamplerReductionMode reductionMode API_AVAILABLE(macos(26.0), ios(26.0));
/*!
@property normalizedCoordinates.
@@ -179,6 +197,11 @@
@property (nonatomic) BOOL lodAverage API_AVAILABLE(ios(9.0), macos(11.0), macCatalyst(14.0));
+/// Sets the level-of-detail (lod) bias when sampling from a texture.
+///
+/// The property's default value is `0.0f`.
+/// The precision format is `S4.6`, and the range is `[-16.0, 15.999]`.
+@property (nonatomic) float lodBias API_AVAILABLE(macos(26.0), ios(26.0));
/*!
@property compareFunction
diff -ruN /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes
--- /Applications/Xcode_26.0.0-beta7.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes 2025-07-28 18:52:27
+++ /Applications/Xcode_26.0.0-rc.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes 2025-07-28 18:52:27
@@ -1235,6 +1235,12 @@
SwiftName: __setIntersectionFunctionTables(_:withBufferRange:)
MethodKind: Instance
SwiftPrivate: true
+ - Selector: 'setDepthStencilState:atIndex:'
+ SwiftName: setDepthStencilState(_:index:)
+ MethodKind: Instance
+ - Selector: 'setDepthStencilStates:withRange:'
+ SwiftPrivate: true
+ MethodKind: Instance
- Name: MTLLibrary
Methods:
@@ -1312,6 +1318,9 @@
- Selector: 'setScissorRects:count:'
MethodKind: Instance
SwiftPrivate: true
+ - Selector: 'setDepthTestMinBound:maxBound:'
+ SwiftPrivate: true
+ MethodKind: Instance
- Selector: 'setVertexBytes:length:atIndex:'
SwiftName: setVertexBytes(_:length:index:)
MethodKind: Instance
@@ -2070,6 +2079,9 @@
MethodKind: Instance
- Selector: 'writeTimestampWithGranularity:afterStage:intoHeap:atIndex:'
SwiftName: writeTimestamp(granularity:after:counterHeap:index:)
+ MethodKind: Instance
+ - Selector: 'setDepthTestMinBound:maxBound:'
+ SwiftPrivate: true
MethodKind: Instance
- Name: MTL4MachineLearningCommandEncoder