-
Notifications
You must be signed in to change notification settings - Fork 507
Metal tvOS xcode13.0 beta1
Manuel de la Pena edited this page Sep 29, 2021
·
2 revisions
#Metal.framework https://github.com/xamarin/xamarin-macios/pull/12875
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgument.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgument.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgument.h 2021-03-16 13:59:37.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgument.h 2021-06-02 05:39:02.000000000 -0400
@@ -91,25 +91,34 @@
MTLDataTypeSampler API_AVAILABLE(macos(10.13), ios(11.0)) = 59,
MTLDataTypePointer API_AVAILABLE(macos(10.13), ios(11.0)) = 60,
- MTLDataTypeR8Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 62,
- MTLDataTypeR8Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 63,
- MTLDataTypeR16Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 64,
- MTLDataTypeR16Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 65,
- MTLDataTypeRG8Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 66,
- MTLDataTypeRG8Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 67,
- MTLDataTypeRG16Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 68,
- MTLDataTypeRG16Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 69,
- MTLDataTypeRGBA8Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 70,
- MTLDataTypeRGBA8Unorm_sRGB API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 71,
- MTLDataTypeRGBA8Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 72,
- MTLDataTypeRGBA16Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 73,
- MTLDataTypeRGBA16Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 74,
- MTLDataTypeRGB10A2Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 75,
- MTLDataTypeRG11B10Float API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 76,
- MTLDataTypeRGB9E5Float API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 77,
+ MTLDataTypeR8Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 62,
+ MTLDataTypeR8Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 63,
+ MTLDataTypeR16Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 64,
+ MTLDataTypeR16Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 65,
+ MTLDataTypeRG8Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 66,
+ MTLDataTypeRG8Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 67,
+ MTLDataTypeRG16Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 68,
+ MTLDataTypeRG16Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 69,
+ MTLDataTypeRGBA8Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 70,
+ MTLDataTypeRGBA8Unorm_sRGB API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 71,
+ MTLDataTypeRGBA8Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 72,
+ MTLDataTypeRGBA16Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 73,
+ MTLDataTypeRGBA16Snorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 74,
+ MTLDataTypeRGB10A2Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 75,
+ MTLDataTypeRG11B10Float API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 76,
+ MTLDataTypeRGB9E5Float API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 77,
MTLDataTypeRenderPipeline API_AVAILABLE(macos(10.14), ios(13.0)) = 78,
- MTLDataTypeComputePipeline API_AVAILABLE(ios(13.0),macos(11.0)) = 79,
+ MTLDataTypeComputePipeline API_AVAILABLE(ios(13.0), macos(11.0)) = 79,
MTLDataTypeIndirectCommandBuffer API_AVAILABLE(macos(10.14), ios(12.0)) = 80,
+ MTLDataTypeLong API_AVAILABLE(macos(12.0), ios(14.0)) = 81,
+ MTLDataTypeLong2 API_AVAILABLE(macos(12.0), ios(14.0)) = 82,
+ MTLDataTypeLong3 API_AVAILABLE(macos(12.0), ios(14.0)) = 83,
+ MTLDataTypeLong4 API_AVAILABLE(macos(12.0), ios(14.0)) = 84,
+
+ MTLDataTypeULong API_AVAILABLE(macos(12.0), ios(14.0)) = 85,
+ MTLDataTypeULong2 API_AVAILABLE(macos(12.0), ios(14.0)) = 86,
+ MTLDataTypeULong3 API_AVAILABLE(macos(12.0), ios(14.0)) = 87,
+ MTLDataTypeULong4 API_AVAILABLE(macos(12.0), ios(14.0)) = 88,
} API_AVAILABLE(macos(10.11), ios(8.0));
@class MTLArgument;
@@ -137,8 +146,8 @@
MTLArgumentTypeTexture = 2,
MTLArgumentTypeSampler = 3,
- MTLArgumentTypeImageblockData API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 16,
- MTLArgumentTypeImageblock API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5)) = 17,
+ MTLArgumentTypeImageblockData API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 16,
+ MTLArgumentTypeImageblock API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5)) = 17,
} API_AVAILABLE(macos(10.11), ios(8.0));
/*!
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h 2021-03-16 13:59:37.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h 2021-06-02 05:39:03.000000000 -0400
@@ -120,13 +120,13 @@
* @method setComputePipelineState:atIndex
* @brief Sets a compute pipeline state at a given bind point index
*/
-- (void)setComputePipelineState:(nullable id <MTLComputePipelineState>)pipeline atIndex:(NSUInteger)index API_AVAILABLE(ios(13.0),macos(11.0));
+- (void)setComputePipelineState:(nullable id <MTLComputePipelineState>)pipeline atIndex:(NSUInteger)index API_AVAILABLE(ios(13.0), macos(11.0));
/*!
* @method setComputePipelineStates:withRange
* @brief Set an array of compute pipeline states at a given bind point index range
*/
-- (void)setComputePipelineStates:(const id <MTLComputePipelineState> __nullable [__nonnull])pipelines withRange:(NSRange)range API_AVAILABLE(ios(13.0),macos(11.0));
+- (void)setComputePipelineStates:(const id <MTLComputePipelineState> __nullable [__nonnull])pipelines withRange:(NSRange)range API_AVAILABLE(ios(13.0), macos(11.0));
/*!
* @method setIndirectCommandBuffer:atIndex
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBinaryArchive.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBinaryArchive.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBinaryArchive.h 2021-03-16 08:45:53.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBinaryArchive.h 2021-06-02 12:48:25.000000000 -0400
@@ -96,7 +96,7 @@
@param error If the function fails, this will be set to describe the failure. This can be (but is not required to be) an error from the MTLBinaryArchiveDomain domain.
@return Whether or not the addition succeeded. Functions referenced multiple times are silently accepted.
*/
-- (BOOL) addTileRenderPipelineFunctionsWithDescriptor:(MTLTileRenderPipelineDescriptor*)descriptor error:(NSError**)error;
+- (BOOL) addTileRenderPipelineFunctionsWithDescriptor:(MTLTileRenderPipelineDescriptor*)descriptor error:(NSError**)error API_AVAILABLE(tvos(14.5));
/*!
@method serializeToURL:error:
@@ -108,6 +108,16 @@
*/
- (BOOL) serializeToURL:(NSURL*)url error:(NSError**)error;
+/*!
+ @method addFunctionWithDescriptor:library:error:
+ @abstract Add a `visible` or `intersection` function to the archive.
+ @param descriptor The descriptor from which the function will be added.
+ @param library Library of functions to add the function from.
+ @param error If the function fails, this will be set to describe the failure. This can be (but is not required to be) an error from the MTLBinaryArchiveDomain domain. Other possible errors can be file access or I/O related.
+ @return Whether or not the addition succeeded. Functions referenced multiple times are silently accepted.
+ */
+- (BOOL) addFunctionWithDescriptor:(MTLFunctionDescriptor *)descriptor library:(id<MTLLibrary>)library error:(NSError **)error API_AVAILABLE(macos(12.0), ios(15.0));
+
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBlitCommandEncoder.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBlitCommandEncoder.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBlitCommandEncoder.h 2021-03-16 13:57:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBlitCommandEncoder.h 2021-06-02 05:39:01.000000000 -0400
@@ -104,7 +104,6 @@
*/
- (void)fillBuffer:(id<MTLBuffer>)buffer range:(NSRange)range value:(uint8_t)value;
-
/*!
@method copyFromTexture:sourceSlice:sourceLevel:toTexture:destinationSlice:destinationLevel:sliceCount:levelCount:
@abstract Copy whole surfaces between textures.
@@ -188,10 +187,10 @@
/*!
- @method resetCommandsInBuffer:buffer:withRange:
+ @method resetCommandsInBuffer:withRange:
@abstract reset commands in a indirect command buffer using the GPU
*/
-- (void) resetCommandsInBuffer: (id<MTLIndirectCommandBuffer>)buffer withRange:(NSRange)range API_AVAILABLE(macos(10.14), ios(12.0));
+- (void) resetCommandsInBuffer:(id<MTLIndirectCommandBuffer>)buffer withRange:(NSRange)range API_AVAILABLE(macos(10.14), ios(12.0));
/*!
@method copyIndirectCommandBuffer:source:sourceRange:destination:destinationIndex
@@ -201,7 +200,7 @@
destination:(id <MTLIndirectCommandBuffer>)destination destinationIndex:(NSUInteger)destinationIndex API_AVAILABLE(macos(10.14), ios(12.0));
/*!
- @method optimizeIndirectCommandBuffer:indirectCommandBuffer:range:
+ @method optimizeIndirectCommandBuffer:withRange:
@abstract Optimizes a subset of the texture data to ensure the best possible performance when accessing content on the CPU at the expense of GPU-access performance.
*/
- (void)optimizeIndirectCommandBuffer:(id <MTLIndirectCommandBuffer>)indirectCommandBuffer withRange:(NSRange)range API_AVAILABLE(macos(10.14), ios(12.0));
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBlitPass.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBlitPass.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBlitPass.h 2021-03-16 13:57:26.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBlitPass.h 2021-06-02 05:36:29.000000000 -0400
@@ -10,13 +10,11 @@
#import <Metal/MTLTypes.h>
+#import <Metal/MTLCounters.h>
+
NS_ASSUME_NONNULL_BEGIN
@protocol MTLDevice;
-@protocol MTLCounterSampleBuffer;
-#define MTLCounterDontSample ((NSUInteger)-1)
-#define MTLMaxBlitPassSampleBuffers 4
-
MTL_EXPORT API_AVAILABLE(macos(11.0), ios(14.0))
@interface MTLBlitPassSampleBufferAttachmentDescriptor : NSObject<NSCopying>
/*!
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLCommandBuffer.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLCommandBuffer.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLCommandBuffer.h 2021-03-16 13:57:25.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLCommandBuffer.h 2021-06-02 05:36:28.000000000 -0400
@@ -75,7 +75,7 @@
@constant MTLCommandBufferErrorPageFault
Execution of this command buffer generated an unserviceable GPU page fault. This can caused by buffer read write attribute mismatch or out of boundary access.
- @constant MTLCommandBufferErrorBlacklisted
+ @constant MTLCommandBufferErrorAccessRevoked
Access to this device has been revoked because this client has been responsible for too many timeouts or hangs.
@constant MTLCommandBufferErrorNotPermitted
@@ -92,6 +92,9 @@
@constant MTLCommandBufferErrorDeviceRemoved
The device was physically removed before the command could finish execution
+
+ @constant MTLCommandBufferErrorStackOverflow
+ Execution of the command buffer was stopped due to Stack Overflow Exception. [MTLComputePipelineDescriptor maxCallStackDepth] setting needs to be checked.
*/
typedef NS_ENUM(NSUInteger, MTLCommandBufferError)
@@ -100,12 +103,14 @@
MTLCommandBufferErrorInternal = 1,
MTLCommandBufferErrorTimeout = 2,
MTLCommandBufferErrorPageFault = 3,
- MTLCommandBufferErrorBlacklisted = 4,
+ MTLCommandBufferErrorBlacklisted = 4, // Deprecated. Please use MTLCommandBufferErrorAccessRevoked.
+ MTLCommandBufferErrorAccessRevoked = 4,
MTLCommandBufferErrorNotPermitted = 7,
MTLCommandBufferErrorOutOfMemory = 8,
MTLCommandBufferErrorInvalidResource = 9,
MTLCommandBufferErrorMemoryless API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(10.0)) = 10,
MTLCommandBufferErrorDeviceRemoved API_AVAILABLE(macos(10.13)) API_UNAVAILABLE(ios) = 11,
+ MTLCommandBufferErrorStackOverflow API_AVAILABLE(macos(12.0), ios(15.0)) = 12,
} API_AVAILABLE(macos(10.11), ios(8.0));
/*!
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputeCommandEncoder.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputeCommandEncoder.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputeCommandEncoder.h 2021-03-16 13:57:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputeCommandEncoder.h 2021-06-02 05:36:27.000000000 -0400
@@ -127,7 +127,7 @@
@method setImageblockWidth:height:
@brief Set imageblock sizes.
*/
-- (void)setImageblockWidth:(NSUInteger)width height:(NSUInteger)height API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0),tvos(14.5));
+- (void)setImageblockWidth:(NSUInteger)width height:(NSUInteger)height API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0), tvos(14.5));
/*
@method setStageInRegion:region:
@@ -162,7 +162,7 @@
@abstract Enqueue a compute function dispatch using an arbitrarily-sized grid.
@discussion threadsPerGrid does not have to be a multiple of the threadGroup size
*/
-- (void)dispatchThreads:(MTLSize)threadsPerGrid threadsPerThreadgroup:(MTLSize)threadsPerThreadgroup API_AVAILABLE(macos(10.13), ios(11.0),tvos(14.5));
+- (void)dispatchThreads:(MTLSize)threadsPerGrid threadsPerThreadgroup:(MTLSize)threadsPerThreadgroup API_AVAILABLE(macos(10.13), ios(11.0), tvos(14.5));
/*!
@method updateFence:
@@ -220,7 +220,7 @@
* @abstract Execute commands in the buffer within the range specified.
* @discussion The same indirect command buffer may be executed any number of times within the same encoder.
*/
-- (void)executeCommandsInBuffer:(id<MTLIndirectCommandBuffer>)indirectCommandBuffer withRange:(NSRange)executionRange API_AVAILABLE(ios(13.0),macos(11.0));
+- (void)executeCommandsInBuffer:(id<MTLIndirectCommandBuffer>)indirectCommandBuffer withRange:(NSRange)executionRange API_AVAILABLE(ios(13.0), macos(11.0));
/*!
* @method executeCommandsInBuffer:indirectBuffer:indirectBufferOffset:
@@ -229,7 +229,7 @@
* @param indirectBufferOffset The byte offset within indirectBuffer where the execution range parameter is located. Must be a multiple of 4 bytes.
* @discussion The same indirect command buffer may be executed any number of times within the same encoder.
*/
-- (void)executeCommandsInBuffer:(id<MTLIndirectCommandBuffer>)indirectCommandbuffer indirectBuffer:(id<MTLBuffer>)indirectRangeBuffer indirectBufferOffset:(NSUInteger)indirectBufferOffset API_AVAILABLE(ios(13.0),macos(11.0));
+- (void)executeCommandsInBuffer:(id<MTLIndirectCommandBuffer>)indirectCommandbuffer indirectBuffer:(id<MTLBuffer>)indirectRangeBuffer indirectBufferOffset:(NSUInteger)indirectBufferOffset API_AVAILABLE(ios(13.0), macos(11.0));
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePass.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePass.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePass.h 2021-03-16 13:57:26.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePass.h 2021-06-02 05:36:29.000000000 -0400
@@ -11,13 +11,12 @@
#import <Metal/MTLTypes.h>
#import <Metal/MTLCommandBuffer.h>
+
+#import <Metal/MTLCounters.h>
+
NS_ASSUME_NONNULL_BEGIN
@protocol MTLDevice;
-@protocol MTLCounterSampleBuffer;
-#define MTLCounterDontSample ((NSUInteger)-1)
-#define MTLMaxComputePassSampleBuffers 4
-
MTL_EXPORT API_AVAILABLE(macos(11.0), ios(14.0))
@interface MTLComputePassSampleBufferAttachmentDescriptor : NSObject<NSCopying>
/*!
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePipeline.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePipeline.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePipeline.h 2021-03-16 13:59:38.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePipeline.h 2021-06-02 05:36:29.000000000 -0400
@@ -70,7 +70,7 @@
@property supportIndirectCommandBuffers
@abstract This flag makes this pipeline usable with indirect command buffers.
*/
-@property (readwrite, nonatomic) BOOL supportIndirectCommandBuffers API_AVAILABLE(ios(13.0),macos(11.0));
+@property (readwrite, nonatomic) BOOL supportIndirectCommandBuffers API_AVAILABLE(ios(13.0), macos(11.0));
/*!
@property insertLibraries
@@ -80,7 +80,17 @@
It can also be used to provide dynamic libraries that are dynamically created (for example, from source) that have no stable installName that can be used to automatically load from the file system.
@see MTLDynamicLibrary
*/
-@property (readwrite, nullable, nonatomic, copy) NSArray<id<MTLDynamicLibrary>>* insertLibraries API_AVAILABLE(macos(11.0), ios(14.0));
+@property (readwrite, nullable, nonatomic, copy) NSArray<id<MTLDynamicLibrary>>* insertLibraries API_DEPRECATED_WITH_REPLACEMENT("Use preloadedLibraries instead.", macos(11.0, 12.0), ios(14.0, 15.0));
+
+/*!
+ @property preloadedLibraries
+ @abstract The set of MTLDynamicLibrary to use to resolve external symbols before considering symbols from dependent MTLDynamicLibrary.
+ @discussion Typical workflows use the libraries property of MTLCompileOptions to record dependent libraries at compile time without having to use preloadedLibraries.
+ This property can be used to override symbols from dependent libraries for experimentation or evaluating alternative implementations.
+ It can also be used to provide dynamic libraries that are dynamically created (for example, from source) that have no stable installName that can be used to automatically load from the file system.
+ @see MTLDynamicLibrary
+ */
+@property (readwrite, nonnull, nonatomic, copy) NSArray<id<MTLDynamicLibrary>>* preloadedLibraries API_AVAILABLE(macos(12.0), ios(15.0));
/*!
@property binaryArchives
@@ -98,6 +108,11 @@
- (void)reset;
+/*!
+ @property linkedFunctions
+ @abstract The set of functions to be linked with the pipeline state and accessed from the compute function.
+ @see MTLLinkedFunctions
+ */
@property (nullable, copy, nonatomic) MTLLinkedFunctions *linkedFunctions
API_AVAILABLE(macos(11.0), ios(14.0));
@@ -145,14 +160,14 @@
@method imageblockMemoryLengthForDimensions:
@brief Returns imageblock memory length for given image block dimensions.
*/
-- (NSUInteger)imageblockMemoryLengthForDimensions:(MTLSize)imageblockDimensions API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0),tvos(14.5));
+- (NSUInteger)imageblockMemoryLengthForDimensions:(MTLSize)imageblockDimensions API_AVAILABLE(ios(11.0), macos(11.0), macCatalyst(14.0), tvos(14.5));
/*!
@property supportIndirectCommandBuffers
@abstract Tells whether this pipeline state is usable through an Indirect Command Buffer.
*/
-@property (readonly) BOOL supportIndirectCommandBuffers API_AVAILABLE(ios(13.0),macos(11.0));
+@property (readonly) BOOL supportIndirectCommandBuffers API_AVAILABLE(ios(13.0), macos(11.0));
@end
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLCounters.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLCounters.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLCounters.h 2021-03-16 09:55:41.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLCounters.h 2021-06-02 05:36:29.000000000 -0400
@@ -17,6 +17,7 @@
NS_ASSUME_NONNULL_BEGIN
#define MTLCounterErrorValue ((uint64_t)-1)
+#define MTLCounterDontSample ((NSUInteger)-1)
/*!
@enum MTLCommonCounter
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h 2021-03-16 13:57:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h 2021-06-02 05:36:27.000000000 -0400
@@ -56,6 +56,7 @@
@protocol MTLDynamicLibrary;
@protocol MTLBinaryArchive;
@class MTLBinaryArchiveDescriptor;
+@class MTLStitchedLibraryDescriptor;
/*!
@brief Returns a reference to the preferred system default Metal device.
@@ -221,10 +222,10 @@
typedef void (^MTLNewLibraryCompletionHandler)(id <MTLLibrary> __nullable library, NSError * __nullable error);
typedef void (^MTLNewRenderPipelineStateCompletionHandler)(id <MTLRenderPipelineState> __nullable renderPipelineState, NSError * __nullable error);
-typedef void (^MTLNewRenderPipelineStateWithReflectionCompletionHandler)(id <MTLRenderPipelineState> __nullable renderPipelineState, MTLRenderPipelineReflection * __nullable reflection, NSError * __nullable error);
+typedef void (^MTLNewRenderPipelineStateWithReflectionCompletionHandler)(id <MTLRenderPipelineState> __nullable renderPipelineState, MTLRenderPipelineReflection * _Nullable_result reflection, NSError * __nullable error);
typedef void (^MTLNewComputePipelineStateCompletionHandler)(id <MTLComputePipelineState> __nullable computePipelineState, NSError * __nullable error);
-typedef void (^MTLNewComputePipelineStateWithReflectionCompletionHandler)(id <MTLComputePipelineState> __nullable computePipelineState, MTLComputePipelineReflection * __nullable reflection, NSError * __nullable error);
+typedef void (^MTLNewComputePipelineStateWithReflectionCompletionHandler)(id <MTLComputePipelineState> __nullable computePipelineState, MTLComputePipelineReflection * _Nullable_result reflection, NSError * __nullable error);
/*!
@@ -562,6 +563,12 @@
- (void)newLibraryWithSource:(NSString *)source options:(nullable MTLCompileOptions *)options completionHandler:(MTLNewLibraryCompletionHandler)completionHandler;
/*!
+ @method newLibraryWithDescriptor:error:
+ @abstract Returns a library generated using the graphs in the descriptor.
+ */
+- (nullable id <MTLLibrary>)newLibraryWithDescriptor:(MTLStitchedLibraryDescriptor *)descriptor error:(__autoreleasing NSError **)error API_AVAILABLE(macos(12.0), ios(15.0));
+
+/*!
@method newRenderPipelineStateWithDescriptor:error:
@abstract Create and compile a new MTLRenderPipelineState object synchronously.
*/
@@ -663,14 +670,14 @@
@method newRenderPipelineStateWithTileDescriptor:options:reflection:error:
@abstract Create and compile a new MTLRenderPipelineState object synchronously given a MTLTileRenderPipelineDescriptor.
*/
-- (nullable id <MTLRenderPipelineState>)newRenderPipelineStateWithTileDescriptor:(MTLTileRenderPipelineDescriptor*)descriptor options:(MTLPipelineOption)options reflection:(MTLAutoreleasedRenderPipelineReflection * __nullable)reflection error:(__autoreleasing NSError **)error API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (nullable id <MTLRenderPipelineState>)newRenderPipelineStateWithTileDescriptor:(MTLTileRenderPipelineDescriptor*)descriptor options:(MTLPipelineOption)options reflection:(MTLAutoreleasedRenderPipelineReflection * __nullable)reflection error:(__autoreleasing NSError **)error API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method newRenderPipelineStateWithTileDescriptor:options:completionHandler:
@abstract Create and compile a new MTLRenderPipelineState object asynchronously given a MTLTileRenderPipelineDescriptor.
*/
-- (void)newRenderPipelineStateWithTileDescriptor:(MTLTileRenderPipelineDescriptor *)descriptor options:(MTLPipelineOption)options completionHandler:(MTLNewRenderPipelineStateWithReflectionCompletionHandler)completionHandler API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)newRenderPipelineStateWithTileDescriptor:(MTLTileRenderPipelineDescriptor *)descriptor options:(MTLPipelineOption)options completionHandler:(MTLNewRenderPipelineStateWithReflectionCompletionHandler)completionHandler API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@property maxThreadgroupMemoryLength
@@ -795,12 +802,19 @@
/*!
@property supportsDynamicLibraries
- @abstract Query device support for compiling dynamic libraries.
- @return BOOL value. If YES, the device supports compiling dynamic libraries. If NO, the devices does not.
+ @abstract Query device support for creating and using dynamic libraries in a compute pipeline.
+ @return BOOL value. If YES, the device supports creating and using dynamic libraries in a compute pipeline. If NO, the device does not.
*/
@property(readonly) BOOL supportsDynamicLibraries API_AVAILABLE(macos(11.0), ios(14.0));
/*!
+ @property supportsRenderDynamicLibraries
+ @abstract Query device support for creating and using dynamic libraries in render pipeline stages.
+ @return BOOL value. If YES, the device supports creating and using dynamic libraries in render pipeline stages. If NO, the device does not.
+ */
+@property (readonly) BOOL supportsRenderDynamicLibraries API_AVAILABLE(macos(12.0), ios(15.0));
+
+/*!
@method newDynamicLibrary:error:
@abstract Creates a MTLDynamicLibrary by compiling the code in a MTLLibrary.
@see MTLDynamicLibrary
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDynamicLibrary.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDynamicLibrary.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDynamicLibrary.h 2021-03-16 08:48:43.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDynamicLibrary.h 2021-06-02 12:48:24.000000000 -0400
@@ -34,12 +34,12 @@
Otherwise, as a fallback, the MTLLibrary contents used to create the MTLDynamicLibrary are compiled for the current device similar to path #1 above.
This path may also be taken if the driver for the current device has been updated or has otherwise become incompatible with the compiled code.
Either way, if a MTLDynamicLibrary is successfully created, it contains compiled code for the current device.
- That code may be used via MTLComputePipelineDescriptor .insertLibraries to allow the code to be loaded into a MTLComputePipelineState
+ That code may be used via MTLComputePipelineDescriptor .preloadedLibraries to allow the code to be loaded into a MTLComputePipelineState
It may also be used as an argument to MTLCompileOptions .libraries so that another MTLLibrary is linked against the code in this MTLDynamicLibrary.
Such library dependencies are encoded into the resulting MTLLibrary by embedding the install name of the MTLDynamicLibrary.
When creating a MTLComputePipelineState from a function in that MTLLibrary, the embedded install names are used to load MTLDynamicLibrary instances via path #2 (possibly falling back to #1 as well).
If an embedded install name could not be used to load a MTLDynamicLibrary from the path indicated by the install name, the creation of the MTLComputePipelineState fails.
- The set of both the implictly loaded MTLDynamicLibrary and the MTLDynamicLibrary specified with .insertLibraries are used to resolve any unresolved symbols in the source MTLLibrary (or in other MTLDynamicLibrary).
+ The set of both the implictly loaded MTLDynamicLibrary and the MTLDynamicLibrary specified with .preloadedLibraries are used to resolve any unresolved symbols in the source MTLLibrary (or in other MTLDynamicLibrary).
If any unresolved symbols remain after searching the set, the creation of the MTLComputePipelineState fails.
Otherwise, the MTLComputePipelineState creation succeeds, and the set of MTLDynamicLibraries used are retained by the MTLComputePipelineState.
*/
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionDescriptor.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionDescriptor.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionDescriptor.h 2021-03-16 13:57:25.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionDescriptor.h 2021-06-02 05:36:28.000000000 -0400
@@ -11,6 +11,7 @@
#import <Metal/MTLArgument.h>
#import <Metal/MTLFunctionConstantValues.h>
+@protocol MTLBinaryArchive;
typedef NS_OPTIONS(NSUInteger, MTLFunctionOptions) {
/**
@@ -53,6 +54,12 @@
*/
@property (nonatomic) MTLFunctionOptions options;
+/*!
+@property binaryArchives
+@abstract The array of archives to be searched.
+@discussion Binary archives to be searched for precompiled functions during the compilation of this function.
+*/
+@property (readwrite, nullable, nonatomic, copy) NSArray<id<MTLBinaryArchive>> *binaryArchives API_AVAILABLE(macos(12.0), ios(15.0));
@end
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionLog.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionLog.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionLog.h 2021-03-16 13:57:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionLog.h 2021-06-02 05:36:27.000000000 -0400
@@ -5,9 +5,6 @@
// Copyright © 2020 Apple, Inc. All rights reserved.
//
-#ifndef MTLFunctionLog_h
-#define MTLFunctionLog_h
-
#import <Metal/MTLTypes.h>
@protocol MTLFunction;
@@ -38,7 +35,3 @@
@property (readonly, nullable, nonatomic) id<MTLFunctionLogDebugLocation> debugLocation;
@end
-
-
-
-#endif /* MTLFunctionLog_h */
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionStitching.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionStitching.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionStitching.h 1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLFunctionStitching.h 2021-06-02 05:36:29.000000000 -0400
@@ -0,0 +1,96 @@
+//
+// MTLFunctionStitching.h
+// Framework
+//
+// Copyright © 2021 Apple, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <Metal/MTLDefines.h>
+#import <Metal/MTLResource.h>
+#import <Metal/MTLArgument.h>
+
+
+#import <Metal/MTLFunctionDescriptor.h>
+
+@protocol MTLFunction;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/*!
+ @protocol MTLFunctionStitchingAttribute
+ @abstract An attribute to be applied to the produced stitched function.
+*/
+API_AVAILABLE(macos(12.0), ios(15.0))
+@protocol MTLFunctionStitchingAttribute <NSObject>
+@end
+
+/*!
+ @interface MTLFunctionStitchingAttributeAlwaysInline
+ @abstract Applies the `__attribute__((always_inline))` attribute to the produced stitched function.
+ */
+MTL_EXPORT API_AVAILABLE(macos(12.0), ios(15.0))
+@interface MTLFunctionStitchingAttributeAlwaysInline : NSObject<MTLFunctionStitchingAttribute>
+@end
+
+/*!
+ @protocol MTLFunctionStitchingNode
+ @abstract A node used in a graph for stitching.
+*/
+API_AVAILABLE(macos(12.0), ios(15.0))
+@protocol MTLFunctionStitchingNode <NSObject, NSCopying>
+@end
+
+/*!
+ @interface MTLFunctionStitchingInputNode
+ @abstract An indexed input node of the produced stitched function.
+ */
+MTL_EXPORT API_AVAILABLE(macos(12.0), ios(15.0))
+@interface MTLFunctionStitchingInputNode : NSObject<MTLFunctionStitchingNode>
+@property (readwrite, nonatomic) NSUInteger argumentIndex;
+- (instancetype)initWithArgumentIndex:(NSUInteger)argument;
+@end
+
+/*!
+ @interface MTLFunctionStitchingFunctionNode
+ @abstract A function node that calls the specified function with arguments and ordering determined by data and control dependencies.
+ */
+MTL_EXPORT API_AVAILABLE(macos(12.0), ios(15.0))
+@interface MTLFunctionStitchingFunctionNode : NSObject<MTLFunctionStitchingNode>
+@property (readwrite, copy, nonnull, nonatomic) NSString* name;
+@property (readwrite, copy, nonnull, nonatomic) NSArray<id<MTLFunctionStitchingNode>>* arguments;
+@property (readwrite, copy, nonnull, nonatomic) NSArray<MTLFunctionStitchingFunctionNode *>* controlDependencies;
+- (instancetype)initWithName:(nonnull NSString*)name
+ arguments:(nonnull NSArray<id<MTLFunctionStitchingNode>>*)arguments
+ controlDependencies:(nonnull NSArray<MTLFunctionStitchingFunctionNode *>*)controlDependencies;
+@end
+
+/*!
+ @interface MTLFunctionStitchingGraph
+ @abstract A function graph that describes a directed acyclic graph.
+ @discussion The return value of the output node will be used as the return value for the final stitched graph.
+ */
+MTL_EXPORT API_AVAILABLE(macos(12.0), ios(15.0))
+@interface MTLFunctionStitchingGraph : NSObject<NSCopying>
+@property (readwrite, copy, nonnull, nonatomic) NSString* functionName;
+@property (readwrite, copy, nonnull, nonatomic) NSArray<MTLFunctionStitchingFunctionNode *>* nodes;
+@property (readwrite, copy, nullable, nonatomic) MTLFunctionStitchingFunctionNode* outputNode;
+@property (readwrite, copy, nonnull, nonatomic) NSArray<id<MTLFunctionStitchingAttribute>>* attributes;
+- (instancetype)initWithFunctionName:(nonnull NSString*)functionName
+ nodes:(nonnull NSArray<MTLFunctionStitchingFunctionNode *>*)nodes
+ outputNode:(nullable MTLFunctionStitchingFunctionNode*)outputNode
+ attributes:(nonnull NSArray<id<MTLFunctionStitchingAttribute>>*)attributes;
+@end
+
+/*!
+ @interface MTLStitchedLibraryDescriptor
+ @abstract A container for the graphs and functions needed to create the stitched functions described by the graphs.
+ */
+MTL_EXPORT API_AVAILABLE(macos(12.0), ios(15.0))
+@interface MTLStitchedLibraryDescriptor : NSObject<NSCopying>
+@property (readwrite, copy, nonnull, nonatomic) NSArray<MTLFunctionStitchingGraph *>* functionGraphs;
+@property (readwrite, copy, nonnull, nonatomic) NSArray<id<MTLFunction>>* functions;
+@end
+
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandBuffer.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandBuffer.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandBuffer.h 2021-03-16 13:57:25.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandBuffer.h 2021-06-02 05:36:29.000000000 -0400
@@ -22,9 +22,9 @@
MTLIndirectCommandTypeDrawPatches API_AVAILABLE(tvos(14.5)) = (1 << 2),
MTLIndirectCommandTypeDrawIndexedPatches API_AVAILABLE(tvos(14.5)) = (1 << 3) ,
- MTLIndirectCommandTypeConcurrentDispatch API_AVAILABLE(ios(13.0),macos(11.0)) = (1 << 5), /* Dispatch threadgroups with concurrent execution */
+ MTLIndirectCommandTypeConcurrentDispatch API_AVAILABLE(ios(13.0), macos(11.0)) = (1 << 5), /* Dispatch threadgroups with concurrent execution */
- MTLIndirectCommandTypeConcurrentDispatchThreads API_AVAILABLE(ios(13.0),macos(11.0)) = (1 << 6), /* Dispatch threads with concurrent execution */
+ MTLIndirectCommandTypeConcurrentDispatchThreads API_AVAILABLE(ios(13.0), macos(11.0)) = (1 << 6), /* Dispatch threads with concurrent execution */
} API_AVAILABLE(macos(10.14), ios(12.0));
@@ -86,8 +86,7 @@
@absract
The maximum bind index of kernel (or tile) argument buffers that can be set per command.
*/
-@property (readwrite, nonatomic) NSUInteger maxKernelBufferBindCount API_AVAILABLE(ios(13.0),macos(11.0));
-
+@property (readwrite, nonatomic) NSUInteger maxKernelBufferBindCount API_AVAILABLE(ios(13.0), macos(11.0));
@end
@@ -100,7 +99,7 @@
-(void)resetWithRange:(NSRange)range;
- (id <MTLIndirectRenderCommand>)indirectRenderCommandAtIndex:(NSUInteger)commandIndex;
-- (id <MTLIndirectComputeCommand>)indirectComputeCommandAtIndex:(NSUInteger)commandIndex API_AVAILABLE(ios(13.0),macos(11.0));
+- (id <MTLIndirectComputeCommand>)indirectComputeCommandAtIndex:(NSUInteger)commandIndex API_AVAILABLE(ios(13.0), macos(11.0));
@end
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandEncoder.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandEncoder.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandEncoder.h 2021-03-16 13:57:25.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLIndirectCommandEncoder.h 2021-06-02 05:36:28.000000000 -0400
@@ -38,14 +38,15 @@
- (void)drawPrimitives:(MTLPrimitiveType)primitiveType vertexStart:(NSUInteger)vertexStart vertexCount:(NSUInteger)vertexCount instanceCount:(NSUInteger)instanceCount baseInstance:(NSUInteger)baseInstance;
- (void)drawIndexedPrimitives:(MTLPrimitiveType)primitiveType indexCount:(NSUInteger)indexCount indexType:(MTLIndexType)indexType indexBuffer:(id <MTLBuffer>)indexBuffer indexBufferOffset:(NSUInteger)indexBufferOffset instanceCount:(NSUInteger)instanceCount baseVertex:(NSInteger)baseVertex baseInstance:(NSUInteger)baseInstance;
+
- (void)reset;
@end
-API_AVAILABLE(ios(13.0),macos(11.0))
+API_AVAILABLE(ios(13.0), macos(11.0))
@protocol MTLIndirectComputeCommand <NSObject>
-- (void)setComputePipelineState:(id <MTLComputePipelineState>)pipelineState API_AVAILABLE(ios(13.0),macos(11.0));
+- (void)setComputePipelineState:(id <MTLComputePipelineState>)pipelineState API_AVAILABLE(ios(13.0), macos(11.0));
- (void)setKernelBuffer:(id <MTLBuffer>)buffer offset:(NSUInteger)offset atIndex:(NSUInteger)index;
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLLibrary.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLLibrary.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLLibrary.h 2021-03-16 13:57:26.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLLibrary.h 2021-06-02 05:39:03.000000000 -0400
@@ -177,7 +177,7 @@
MTLLanguageVersion2_1 API_AVAILABLE(macos(10.14), ios(12.0)) = (2 << 16) + 1,
MTLLanguageVersion2_2 API_AVAILABLE(macos(10.15), ios(13.0)) = (2 << 16) + 2,
MTLLanguageVersion2_3 API_AVAILABLE(macos(11.0), ios(14.0)) = (2 << 16) + 3,
-
+ MTLLanguageVersion2_4 API_AVAILABLE(macos(12.0), ios(15.0)) = (2 << 16) + 4,
} API_AVAILABLE(macos(10.11), ios(9.0));
typedef NS_ENUM(NSInteger, MTLLibraryType) {
@@ -242,7 +242,7 @@
@abstract A set of MTLDynamicLibrary instances to link against.
The installName of the provided MTLDynamicLibrary is embedded into the compilation result.
When a function from the resulting MTLLibrary is used (either as an MTLFunction, or as an to create a pipeline state, the embedded install names are used to automatically load the MTLDynamicLibrary instances.
- This property can be null if no libraries should be automatically loaded, either because the MTLLibrary has no external dependencies, or because you will use insertLibraries to specify the libraries to use at pipeline creation time.
+ This property can be null if no libraries should be automatically loaded, either because the MTLLibrary has no external dependencies, or because you will use preloadedLibraries to specify the libraries to use at pipeline creation time.
*/
@property (readwrite, nullable, copy, nonatomic) NSArray<id<MTLDynamicLibrary>> *libraries API_AVAILABLE(macos(11.0), ios(14.0));
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLLinkedFunctions.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLLinkedFunctions.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLLinkedFunctions.h 2021-03-16 13:57:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLLinkedFunctions.h 2021-06-02 05:36:27.000000000 -0400
@@ -13,7 +13,12 @@
@protocol MTLFunction;
-MTL_EXTERN API_AVAILABLE(macos(11.0), ios(14.0))
+/*!
+ @class MTLLinkedFunctions
+ @abstract A class to set functions to be linked.
+ @discussion All functions set on this object must have unique names.
+ */
+MTL_EXPORT API_AVAILABLE(macos(11.0), ios(14.0))
@interface MTLLinkedFunctions : NSObject <NSCopying>
/*!
@@ -29,12 +34,19 @@
@property (readwrite, nonatomic, copy, nullable) NSArray<id<MTLFunction>> *functions;
-
/*!
* @property groups
* @abstract Groups of functions, grouped to match callsites in the shader code.
*/
@property (readwrite, nonatomic, copy, nullable) NSDictionary<NSString*, NSArray<id<MTLFunction>>*> *groups;
+/*!
+@property privateFunctions
+@abstract The array of functions to be AIR linked.
+@discussion These functions are not exported by the pipeline state as MTLFunctionHandle objects.
+ Function pointer support is not required to link private functions.
+*/
+@property (readwrite, nonatomic, copy, nullable) NSArray<id<MTLFunction>> *privateFunctions API_AVAILABLE(macos(12.0), ios(15.0));
+
@end
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h 2021-03-16 13:59:37.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h 2021-06-02 05:36:28.000000000 -0400
@@ -104,7 +104,8 @@
} MTLTriangleTessellationFactorsHalf;
/*!
- @abstract Points at which a fence may be waited on or signaled.
+ @abstract Generic render stage enum
+ @brief Can also be used for points at which a fence may be waited on or signaled.
@constant MTLRenderStageVertex All vertex work prior to rasterization has completed.
@constant MTLRenderStageFragment All rendering work has completed.
*/
@@ -112,6 +113,7 @@
{
MTLRenderStageVertex = (1UL << 0),
MTLRenderStageFragment = (1UL << 1),
+ MTLRenderStageTile API_AVAILABLE(macos(12.0), ios(15.0)) = (1UL << 2),
} API_AVAILABLE(macos(10.13), ios(10.0));
/*!
@@ -190,6 +192,7 @@
*/
- (void)setVertexSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers lodMinClamps:(const float [__nonnull])lodMinClamps lodMaxClamps:(const float [__nonnull])lodMaxClamps withRange:(NSRange)range;
+
/*!
@method setViewport:
@brief Set the viewport, which is used to transform vertexes from normalized device coordinates to window coordinates. Fragments that lie outside of the viewport are clipped, and optionally clamped for fragments outside of znear/zfar.
@@ -201,7 +204,7 @@
@method setViewports:
@brief Specifies an array of viewports, which are used to transform vertices from normalized device coordinates to window coordinates based on [[ viewport_array_index ]] value specified in the vertex shader.
*/
-- (void)setViewports:(const MTLViewport [__nonnull])viewports count:(NSUInteger)count API_AVAILABLE(macos(10.13), ios(12.0),tvos(14.5));
+- (void)setViewports:(const MTLViewport [__nonnull])viewports count:(NSUInteger)count API_AVAILABLE(macos(10.13), ios(12.0), tvos(14.5));
/*!
@method setFrontFacingWinding:
@@ -239,7 +242,7 @@
@method setScissorRects:
@brief Specifies an array of rectangles for a fragment scissor test. The specific rectangle used is based on the [[ viewport_array_index ]] value output by the vertex shader. Fragments that lie outside the scissor rectangle are discarded.
*/
-- (void)setScissorRects:(const MTLScissorRect [__nonnull])scissorRects count:(NSUInteger)count API_AVAILABLE(macos(10.13), ios(12.0),tvos(14.5));
+- (void)setScissorRects:(const MTLScissorRect [__nonnull])scissorRects count:(NSUInteger)count API_AVAILABLE(macos(10.13), ios(12.0), tvos(14.5));
/*!
@method setTriangleFillMode:
@@ -507,24 +510,24 @@
-(void)drawPatches:(NSUInteger)numberOfPatchControlPoints patchStart:(NSUInteger)patchStart patchCount:(NSUInteger)patchCount patchIndexBuffer:(nullable id <MTLBuffer>)patchIndexBuffer patchIndexBufferOffset:(NSUInteger)patchIndexBufferOffset instanceCount:(NSUInteger)instanceCount baseInstance:(NSUInteger)baseInstance API_AVAILABLE(macos(10.12), ios(10.0));
--(void)drawPatches:(NSUInteger)numberOfPatchControlPoints patchIndexBuffer:(nullable id <MTLBuffer>)patchIndexBuffer patchIndexBufferOffset:(NSUInteger)patchIndexBufferOffset indirectBuffer:(id <MTLBuffer>)indirectBuffer indirectBufferOffset:(NSUInteger)indirectBufferOffset API_AVAILABLE(macos(10.12), ios(12.0),tvos(14.5));
+-(void)drawPatches:(NSUInteger)numberOfPatchControlPoints patchIndexBuffer:(nullable id <MTLBuffer>)patchIndexBuffer patchIndexBufferOffset:(NSUInteger)patchIndexBufferOffset indirectBuffer:(id <MTLBuffer>)indirectBuffer indirectBufferOffset:(NSUInteger)indirectBufferOffset API_AVAILABLE(macos(10.12), ios(12.0), tvos(14.5));
-(void)drawIndexedPatches:(NSUInteger)numberOfPatchControlPoints patchStart:(NSUInteger)patchStart patchCount:(NSUInteger)patchCount patchIndexBuffer:(nullable id <MTLBuffer>)patchIndexBuffer patchIndexBufferOffset:(NSUInteger)patchIndexBufferOffset controlPointIndexBuffer:(id <MTLBuffer>)controlPointIndexBuffer controlPointIndexBufferOffset:(NSUInteger)controlPointIndexBufferOffset instanceCount:(NSUInteger)instanceCount baseInstance:(NSUInteger)baseInstance API_AVAILABLE(macos(10.12), ios(10.0));
--(void)drawIndexedPatches:(NSUInteger)numberOfPatchControlPoints patchIndexBuffer:(nullable id <MTLBuffer>)patchIndexBuffer patchIndexBufferOffset:(NSUInteger)patchIndexBufferOffset controlPointIndexBuffer:(id <MTLBuffer>)controlPointIndexBuffer controlPointIndexBufferOffset:(NSUInteger)controlPointIndexBufferOffset indirectBuffer:(id <MTLBuffer>)indirectBuffer indirectBufferOffset:(NSUInteger)indirectBufferOffset API_AVAILABLE(macos(10.12), ios(12.0),tvos(14.5));
+-(void)drawIndexedPatches:(NSUInteger)numberOfPatchControlPoints patchIndexBuffer:(nullable id <MTLBuffer>)patchIndexBuffer patchIndexBufferOffset:(NSUInteger)patchIndexBufferOffset controlPointIndexBuffer:(id <MTLBuffer>)controlPointIndexBuffer controlPointIndexBufferOffset:(NSUInteger)controlPointIndexBufferOffset indirectBuffer:(id <MTLBuffer>)indirectBuffer indirectBufferOffset:(NSUInteger)indirectBufferOffset API_AVAILABLE(macos(10.12), ios(12.0), tvos(14.5));
/*!
@property tileWidth:
@abstract The width of the tile for this render pass.
*/
-@property (readonly) NSUInteger tileWidth API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (readonly) NSUInteger tileWidth API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@property tileHeight:
@abstract The height of the tile for this render pass.
*/
-@property (readonly) NSUInteger tileHeight API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (readonly) NSUInteger tileHeight API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/* Tile Resources */
@@ -532,74 +535,75 @@
@method setTileBytes:length:atIndex:
@brief Set the data (by copy) for a given tile buffer binding point. This will remove any existing MTLBuffer from the binding point.
*/
-- (void)setTileBytes:(const void *)bytes length:(NSUInteger)length atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)setTileBytes:(const void *)bytes length:(NSUInteger)length atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setTileBuffer:offset:atIndex:
@brief Set a global buffer for all tile shaders at the given bind point index.
*/
-- (void)setTileBuffer:(nullable id <MTLBuffer>)buffer offset:(NSUInteger)offset atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)setTileBuffer:(nullable id <MTLBuffer>)buffer offset:(NSUInteger)offset atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setTileBufferOffset:atIndex:
@brief Set the offset within the current global buffer for all tile shaders at the given bind point index.
*/
-- (void)setTileBufferOffset:(NSUInteger)offset atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)setTileBufferOffset:(NSUInteger)offset atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setTileBuffers:offsets:withRange:
@brief Set an array of global buffers for all tile shaders with the given bind point range.
*/
-- (void)setTileBuffers:(const id <MTLBuffer> __nullable [__nonnull])buffers offsets:(const NSUInteger [__nonnull])offsets withRange:(NSRange)range API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)setTileBuffers:(const id <MTLBuffer> __nullable [__nonnull])buffers offsets:(const NSUInteger [__nonnull])offsets withRange:(NSRange)range API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setTileTexture:atIndex:
@brief Set a global texture for all tile shaders at the given bind point index.
*/
-- (void)setTileTexture:(nullable id <MTLTexture>)texture atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)setTileTexture:(nullable id <MTLTexture>)texture atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setTileTextures:withRange:
@brief Set an array of global textures for all tile shaders with the given bind point range.
*/
-- (void)setTileTextures:(const id <MTLTexture> __nullable [__nonnull])textures withRange:(NSRange)range API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)setTileTextures:(const id <MTLTexture> __nullable [__nonnull])textures withRange:(NSRange)range API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setTileSamplerState:atIndex:
@brief Set a global sampler for all tile shaders at the given bind point index.
*/
-- (void)setTileSamplerState:(nullable id <MTLSamplerState>)sampler atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)setTileSamplerState:(nullable id <MTLSamplerState>)sampler atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setTileSamplerStates:withRange:
@brief Set an array of global samplers for all fragment shaders with the given bind point range.
*/
-- (void)setTileSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers withRange:(NSRange)range API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)setTileSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers withRange:(NSRange)range API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setTileSamplerState:lodMinClamp:lodMaxClamp:atIndex:
@brief Set a global sampler for all tile shaders at the given bind point index.
*/
-- (void)setTileSamplerState:(nullable id <MTLSamplerState>)sampler lodMinClamp:(float)lodMinClamp lodMaxClamp:(float)lodMaxClamp atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (void)setTileSamplerState:(nullable id <MTLSamplerState>)sampler lodMinClamp:(float)lodMinClamp lodMaxClamp:(float)lodMaxClamp atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setTileSamplerStates:lodMinClamps:lodMaxClamps:withRange:
@brief Set an array of global samplers for all tile shaders with the given bind point range.
*/
-- (void)setTileSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers lodMinClamps:(const float [__nonnull])lodMinClamps lodMaxClamps:(const float [__nonnull])lodMaxClamps withRange:(NSRange)range API_AVAILABLE(ios(11.0),tvos(14.5), macos(11.0), macCatalyst(14.0));
+- (void)setTileSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers lodMinClamps:(const float [__nonnull])lodMinClamps lodMaxClamps:(const float [__nonnull])lodMaxClamps withRange:(NSRange)range API_AVAILABLE(ios(11.0), tvos(14.5), macos(11.0), macCatalyst(14.0));
+
/*!
@method dispatchThreadsPerTile:
@brief dispatch threads to perform a mid-render compute operation.
*/
-- (void)dispatchThreadsPerTile:(MTLSize)threadsPerTile API_AVAILABLE(macos(11.0), macCatalyst(14.0),tvos(14.5));
+- (void)dispatchThreadsPerTile:(MTLSize)threadsPerTile API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method setThreadgroupMemoryLength:offset:atIndex:
@brief Set the size of the threadgroup memory argument at the given bind point index and offset.
*/
-- (void)setThreadgroupMemoryLength:(NSUInteger)length offset:(NSUInteger)offset atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0),tvos(14.5));
+- (void)setThreadgroupMemoryLength:(NSUInteger)length offset:(NSUInteger)offset atIndex:(NSUInteger)index API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPass.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPass.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPass.h 2021-03-16 13:57:26.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPass.h 2021-06-02 05:39:03.000000000 -0400
@@ -13,13 +13,11 @@
#import <Metal/MTLTypes.h>
+#import <Metal/MTLCounters.h>
+
NS_ASSUME_NONNULL_BEGIN
@protocol MTLDevice;
-@protocol MTLCounterSampleBuffer;
-#define MTLCounterDontSample ((NSUInteger)-1)
-#define MTLMaxRenderPassSampleBuffers 4
-
typedef NS_ENUM(NSUInteger, MTLLoadAction) {
MTLLoadActionDontCare = 0,
MTLLoadActionLoad = 1,
@@ -186,7 +184,7 @@
@abstract The stencil sample corresponding to whichever depth sample is selected by the depth resolve filter. If depth resolve is not enabled, the stencil sample is chosen based on what a depth resolve filter would have selected.
*/
MTLMultisampleStencilResolveFilterDepthResolvedSample = 1,
-} API_AVAILABLE(macos(10.14), ios(12.0),tvos(14.5));
+} API_AVAILABLE(macos(10.14), ios(12.0), tvos(14.5));
@@ -203,7 +201,7 @@
@property stencilResolveFilter
@abstract The filter to be used for stencil multisample resolve. Defaults to MTLMultisampleStencilResolveFilterSample0.
*/
-@property (nonatomic) MTLMultisampleStencilResolveFilter stencilResolveFilter API_AVAILABLE(macos(10.14), ios(12.0),tvos(14.5));
+@property (nonatomic) MTLMultisampleStencilResolveFilter stencilResolveFilter API_AVAILABLE(macos(10.14), ios(12.0), tvos(14.5));
@end
@@ -308,54 +306,54 @@
@property renderTargetArrayLength:
@abstract The number of active layers
*/
-@property (nonatomic) NSUInteger renderTargetArrayLength API_AVAILABLE(macos(10.11), ios(12.0),tvos(14.5));
+@property (nonatomic) NSUInteger renderTargetArrayLength API_AVAILABLE(macos(10.11), ios(12.0), tvos(14.5));
/*!
@property imageblockSampleLength:
@abstract The per sample size in bytes of the largest explicit imageblock layout in the renderPass.
*/
-@property (nonatomic) NSUInteger imageblockSampleLength API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (nonatomic) NSUInteger imageblockSampleLength API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@property threadgroupMemoryLength:
@abstract The per tile size in bytes of the persistent threadgroup memory allocation.
*/
-@property (nonatomic) NSUInteger threadgroupMemoryLength API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (nonatomic) NSUInteger threadgroupMemoryLength API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@property tileWidth:
@abstract The width in pixels of the tile.
@discssion Defaults to 0. Zero means Metal chooses a width that fits within the local memory.
*/
-@property (nonatomic) NSUInteger tileWidth API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (nonatomic) NSUInteger tileWidth API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@property tileHeight:
@abstract The height in pixels of the tile.
@discssion Defaults to 0. Zero means Metal chooses a height that fits within the local memory.
*/
-@property (nonatomic) NSUInteger tileHeight API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (nonatomic) NSUInteger tileHeight API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@property defaultRasterSampleCount:
@abstract The raster sample count for the render pass when no attachments are given.
*/
-@property (nonatomic) NSUInteger defaultRasterSampleCount API_AVAILABLE(ios(11.0),tvos(14.5), macos(10.15), macCatalyst(13.0));
+@property (nonatomic) NSUInteger defaultRasterSampleCount API_AVAILABLE(ios(11.0), tvos(14.5), macos(10.15), macCatalyst(13.0));
/*!
@property renderTargetWidth:
@abstract The width in pixels to constrain the render target to.
@discussion Defaults to 0. If non-zero the value must be smaller than or equal to the minimum width of all attachments.
*/
-@property (nonatomic) NSUInteger renderTargetWidth API_AVAILABLE(ios(11.0),tvos(14.5), macos(10.15), macCatalyst(13.0));
+@property (nonatomic) NSUInteger renderTargetWidth API_AVAILABLE(ios(11.0), tvos(14.5), macos(10.15), macCatalyst(13.0));
/*!
@property renderTargetHeight:
@abstract The height in pixels to constrain the render target to.
@discussion Defaults to 0. If non-zero the value must be smaller than or equal to the minimum height of all attachments.
*/
-@property (nonatomic) NSUInteger renderTargetHeight API_AVAILABLE(ios(11.0),tvos(14.5), macos(10.15), macCatalyst(13.0));
+@property (nonatomic) NSUInteger renderTargetHeight API_AVAILABLE(ios(11.0), tvos(14.5), macos(10.15), macCatalyst(13.0));
/*!
@method setSamplePositions:count:
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPipeline.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPipeline.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPipeline.h 2021-03-16 13:57:25.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPipeline.h 2021-06-02 05:39:02.000000000 -0400
@@ -15,6 +15,7 @@
#import <Metal/MTLPipeline.h>
+
NS_ASSUME_NONNULL_BEGIN
@class MTLVertexDescriptor;
@@ -130,7 +131,7 @@
@property (nullable, readonly) NSArray <MTLArgument *> *vertexArguments;
@property (nullable, readonly) NSArray <MTLArgument *> *fragmentArguments;
-@property (nullable, readonly) NSArray <MTLArgument *> *tileArguments API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (nullable, readonly) NSArray <MTLArgument *> *tileArguments API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
@end
MTL_EXPORT API_AVAILABLE(macos(10.11), ios(8.0))
@@ -157,7 +158,7 @@
@property (nonatomic) MTLPixelFormat depthAttachmentPixelFormat;
@property (nonatomic) MTLPixelFormat stencilAttachmentPixelFormat;
-@property (readwrite, nonatomic) MTLPrimitiveTopologyClass inputPrimitiveTopology API_AVAILABLE(macos(10.11), ios(12.0),tvos(14.5));
+@property (readwrite, nonatomic) MTLPrimitiveTopologyClass inputPrimitiveTopology API_AVAILABLE(macos(10.11), ios(12.0), tvos(14.5));
@property (readwrite, nonatomic) MTLTessellationPartitionMode tessellationPartitionMode API_AVAILABLE(macos(10.12), ios(10.0));
@property (readwrite, nonatomic) NSUInteger maxTessellationFactor API_AVAILABLE(macos(10.12), ios(10.0));
@@ -180,6 +181,28 @@
*/
@property (readwrite, nullable, nonatomic, copy) NSArray<id<MTLBinaryArchive>> *binaryArchives API_AVAILABLE(macos(11.0), ios(14.0));
+
+/*!
+ @property vertexPreloadedLibraries
+ @abstract The set of MTLDynamicLibrary to use to resolve external symbols for the vertexFunction before considering symbols from dependent MTLDynamicLibrary.
+ @discussion Typical workflows use the libraries property of MTLCompileOptions to record dependent libraries at compile time without having to use vertexPreloadedLibraries.
+ This property can be used to override symbols from dependent libraries for experimentation or evaluating alternative implementations.
+ It can also be used to provide dynamic libraries that are dynamically created (for example, from source) that have no stable installName that can be used to automatically load from the file system.
+ @see MTLDynamicLibrary
+ */
+@property (readwrite, nonnull, nonatomic, copy) NSArray<id<MTLDynamicLibrary>>* vertexPreloadedLibraries API_AVAILABLE(macos(12.0), ios(15.0));
+
+/*!
+ @property fragmentPreloadedLibraries
+ @abstract The set of MTLDynamicLibrary to use to resolve external symbols for the fragmentFunction before considering symbols from dependent MTLDynamicLibrary.
+ @discussion Typical workflows use the libraries property of MTLCompileOptions to record dependent libraries at compile time without having to use fragmentPreloadedLibraries.
+ This property can be used to override symbols from dependent libraries for experimentation or evaluating alternative implementations.
+ It can also be used to provide dynamic libraries that are dynamically created (for example, from source) that have no stable installName that can be used to automatically load from the file system.
+ @see MTLDynamicLibrary
+ */
+@property (readwrite, nonnull, nonatomic, copy) NSArray<id<MTLDynamicLibrary>>* fragmentPreloadedLibraries API_AVAILABLE(macos(12.0), ios(15.0));
+
+
/*!
@method reset
@abstract Restore all pipeline descriptor properties to their default values.
@@ -188,6 +211,7 @@
@end
+
/*!
@protocol MTLRenderPipelineState
@abstract MTLRenderPipelineState represents a compiled render pipeline
@@ -202,15 +226,15 @@
/*!
@property maxTotalThreadsPerThreadgroup
- @abstract The maximum total number of threads that can be in a single threadgroup.
+ @abstract The maximum total number of threads that can be in a single tile shader threadgroup.
*/
-@property (readonly) NSUInteger maxTotalThreadsPerThreadgroup API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (readonly) NSUInteger maxTotalThreadsPerThreadgroup API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@property threadgroupSizeMatchesTileSize
- @abstract Returns true when the pipeline state requires a threadgroup size equal to the tile size
+ @abstract Returns true when the pipeline state requires a tile shader threadgroup size equal to the tile size
*/
-@property (readonly) BOOL threadgroupSizeMatchesTileSize API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (readonly) BOOL threadgroupSizeMatchesTileSize API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
@@ -218,17 +242,19 @@
@property imageblockSampleLength
@brief Returns imageblock memory length used by a single sample when rendered using this pipeline.
*/
-@property (readonly) NSUInteger imageblockSampleLength API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+@property (readonly) NSUInteger imageblockSampleLength API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
/*!
@method imageblockMemoryLengthForDimensions:sampleCount:
@brief Returns imageblock memory length for given image block dimensions. Dimensions must be valid tile dimensions.
*/
-- (NSUInteger)imageblockMemoryLengthForDimensions:(MTLSize)imageblockDimensions API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5));
+- (NSUInteger)imageblockMemoryLengthForDimensions:(MTLSize)imageblockDimensions API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5));
@property (readonly) BOOL supportIndirectCommandBuffers API_AVAILABLE(macos(10.14), ios(12.0));
+
+
@end
MTL_EXPORT API_AVAILABLE(macos(10.11), ios(8.0))
@@ -243,7 +269,7 @@
@end
-MTL_EXPORT API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5))
+MTL_EXPORT API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5))
@interface MTLTileRenderPipelineColorAttachmentDescriptor : NSObject <NSCopying>
/*! Pixel format. Defaults to MTLPixelFormatInvalid */
@@ -251,7 +277,7 @@
@end
-MTL_EXPORT API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5))
+MTL_EXPORT API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5))
@interface MTLTileRenderPipelineColorAttachmentDescriptorArray : NSObject
/* Individual tile attachment state access */
@@ -262,7 +288,7 @@
@end
-MTL_EXPORT API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0),tvos(14.5))
+MTL_EXPORT API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(11.0), tvos(14.5))
@interface MTLTileRenderPipelineDescriptor : NSObject <NSCopying>
/*!
@@ -307,10 +333,21 @@
*/
@property (readwrite, nullable, nonatomic, copy) NSArray<id<MTLBinaryArchive>> *binaryArchives API_AVAILABLE(macos(11.0), ios(14.0));
+
+/*!
+ @property preloadedLibraries
+ @abstract The set of MTLDynamicLibrary to use to resolve external symbols before considering symbols from dependent MTLDynamicLibrary.
+ @discussion Typical workflows use the libraries property of MTLCompileOptions to record dependent libraries at compile time without having to use preloadedLibraries.
+ This property can be used to override symbols from dependent libraries for experimentation or evaluating alternative implementations.
+ It can also be used to provide dynamic libraries that are dynamically created (for example, from source) that have no stable installName that can be used to automatically load from the file system.
+ @see MTLDynamicLibrary
+ */
+@property (readwrite, nonnull, nonatomic, copy) NSArray<id<MTLDynamicLibrary>>* preloadedLibraries API_AVAILABLE(macos(12.0), ios(15.0));
+
+
- (void)reset;
@end
-
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTexture.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTexture.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTexture.h 2021-03-16 13:57:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTexture.h 2021-06-02 05:36:27.000000000 -0400
@@ -103,6 +103,7 @@
MTLTextureUsagePixelFormatView = 0x0010,
} API_AVAILABLE(macos(10.11), ios(9.0));
+
MTL_EXPORT API_AVAILABLE(macos(10.11), ios(8.0))
@interface MTLTextureDescriptor : NSObject <NSCopying>
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes 2021-03-16 02:33:25.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes 2021-05-27 00:59:54.000000000 -0400
@@ -52,6 +52,14 @@
SwiftName: uchar3
- Name: MTLDataTypeUChar4
SwiftName: uchar4
+- Name: MTLDataTypeULong
+ SwiftName: ulong
+- Name: MTLDataTypeULong2
+ SwiftName: ulong2
+- Name: MTLDataTypeULong3
+ SwiftName: ulong3
+- Name: MTLDataTypeULong4
+ SwiftName: ulong4
- Name: MTLDataTypeRGBA8Unorm_sRGB
SwiftName: rgba8Unorm_srgb
- Name: MTLDataTypeRGB10A2Unorm
@@ -551,6 +559,8 @@
SwiftPrivate: true
- Name: MTLComputePipelineState
Methods:
+- Name: MTLRenderPipelineState
+ Methods:
- Name: MTLDevice
Methods:
- Selector: 'getDefaultSamplePositions:count:'
@@ -577,6 +587,9 @@
- Selector: 'newLibraryWithSource:options:completionHandler:'
SwiftName: makeLibrary(source:options:completionHandler:)
MethodKind: Instance
+ - Selector: 'newLibraryWithDescriptor:error:'
+ SwiftName: makeLibrary(descriptor:)
+ MethodKind: Instance
- Selector: 'newRenderPipelineStateWithDescriptor:completionHandler:'
SwiftName: makeRenderPipelineState(descriptor:completionHandler:)
MethodKind: Instance
@@ -1063,6 +1076,9 @@
- Selector: 'addTileRenderPipelineFunctionsWithDescriptor:error:'
SwiftName: addTileRenderPipelineFunctions(descriptor:)
MethodKind: Instance
+ - Selector: 'addFunctionWithDescriptor:library:error:'
+ SwiftName: addFunction(descriptor:library:)
+ MethodKind: Instance
SwiftVersions:
- Version: 3
diff -ruN /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.h /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.h
--- /Applications/Xcode_12.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.h 2021-03-16 13:52:41.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.h 2021-05-27 01:04:03.000000000 -0400
@@ -44,4 +44,5 @@
#import <Metal/MTLFunctionHandle.h>
#import <Metal/MTLVisibleFunctionTable.h>
#import <Metal/MTLBinaryArchive.h>
-#import <Metal/MTLIntersectionFunctionTable.h>
\ No newline at end of file
+#import <Metal/MTLIntersectionFunctionTable.h>
+#import <Metal/MTLFunctionStitching.h>
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status