Skip to content

Metal macOS xcode9 beta3

Vincent Dondain edited this page Jul 10, 2017 · 1 revision

#Metal.framework

diff -ruN /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgument.h /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgument.h
--- /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgument.h	2017-06-10 19:41:50.000000000 -0400
+++ /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgument.h	2017-06-29 23:55:10.000000000 -0400
@@ -226,10 +226,11 @@
 @property (readonly, getter=isActive) BOOL active;
 
 // for buffer arguments
-@property (readonly) NSUInteger     bufferAlignment;		// min alignment of starting offset in the buffer
-@property (readonly) NSUInteger     bufferDataSize; 		// sizeof(T) for T *argName
-@property (readonly) MTLDataType    bufferDataType; 		// MTLDataTypeFloat, MTLDataTypeFloat4, MTLDataTypeStruct, ...
-@property (readonly) MTLStructType *bufferStructType;
+@property (readonly) NSUInteger      bufferAlignment;		// min alignment of starting offset in the buffer
+@property (readonly) NSUInteger      bufferDataSize; 		// sizeof(T) for T *argName
+@property (readonly) MTLDataType     bufferDataType; 		// MTLDataTypeFloat, MTLDataTypeFloat4, MTLDataTypeStruct, ...
+@property (readonly) MTLStructType  *bufferStructType;
+@property (readonly, nullable) MTLPointerType *bufferPointerType NS_AVAILABLE(10_13, 11_0);
 
 
 // for threadgroup memory arguments
diff -ruN /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h
--- /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h	2017-06-10 19:41:50.000000000 -0400
+++ /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLArgumentEncoder.h	2017-06-29 23:55:10.000000000 -0400
@@ -44,9 +44,7 @@
  * @property alignment
  * @abstract The alignment in bytes required to store the encoded resource bindings.
  */
-@optional
 @property (readonly) NSUInteger alignment;
-@required
 
 /*!
  * @method setArgumentBuffer:offset:
diff -ruN /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputeCommandEncoder.h /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputeCommandEncoder.h
--- /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputeCommandEncoder.h	2017-06-10 19:41:50.000000000 -0400
+++ /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputeCommandEncoder.h	2017-06-29 23:55:10.000000000 -0400
@@ -59,7 +59,7 @@
  @method setBuffers:offsets:withRange:
  @brief Set an array of global buffers for all compute kernels with the given bind point range.
  */
-- (void)setBuffers:(const id <MTLBuffer> __nullable [__nullable])buffers offsets:(const NSUInteger [__nonnull])offsets withRange:(NSRange)range;
+- (void)setBuffers:(const id <MTLBuffer> __nullable [__nonnull])buffers offsets:(const NSUInteger [__nonnull])offsets withRange:(NSRange)range;
 
 /*!
  @method setTexture:atIndex:
@@ -71,7 +71,7 @@
  @method setTextures:withRange:
  @brief Set an array of global textures for all compute kernels with the given bind point range.
  */
-- (void)setTextures:(const id <MTLTexture> __nullable [__nullable])textures withRange:(NSRange)range;
+- (void)setTextures:(const id <MTLTexture> __nullable [__nonnull])textures withRange:(NSRange)range;
 
 /*!
  @method setSamplerState:atIndex:
@@ -83,7 +83,7 @@
  @method setSamplers:withRange:
  @brief Set an array of global samplers for all compute kernels with the given bind point range.
  */
-- (void)setSamplerStates:(const id <MTLSamplerState> __nullable [__nullable])samplers withRange:(NSRange)range;
+- (void)setSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers withRange:(NSRange)range;
 
 /*!
  @method setSamplerState:lodMinClamp:lodMaxClamp:atIndex:
@@ -95,7 +95,8 @@
  @method setSamplers:lodMinClamps:lodMaxClamps:withRange:
  @brief Set an array of global samplers for all compute kernels with the given bind point range.
  */
-- (void)setSamplerStates:(const id <MTLSamplerState> __nullable [__nullable])samplers lodMinClamps:(const float [__nullable])lodMinClamps lodMaxClamps:(const float [__nullable])lodMaxClamps withRange:(NSRange)range;
+- (void)setSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers lodMinClamps:(const float [__nonnull])lodMinClamps lodMaxClamps:(const float [__nonnull])lodMaxClamps withRange:(NSRange)range;
+
 
 /*!
  @method setThreadgroupMemoryLength:atIndex:
@@ -161,7 +162,7 @@
  * @discussion This method does not protect against data hazards; these hazards must be addressed using an MTLFence. This method must be called before encoding any dispatch commands which may access the resources through an argument buffer.
  */
 - (void)useResources:(const id <MTLResource> __nonnull[__nonnull])resources count:(NSUInteger)count usage:(MTLResourceUsage)usage NS_AVAILABLE(10_13, 11_0);
- 
+
 /*!
  * @method useHeap:
  * @abstract Declare that the resources allocated from a heap may be accessed by the render pass through an argument buffer
diff -ruN /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h
--- /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h	2017-06-10 19:41:50.000000000 -0400
+++ /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h	2017-06-29 23:55:10.000000000 -0400
@@ -61,17 +61,12 @@
 /*!
  @brief Type for device notifications
 */
-typedef NSString *MTLNotificationName NS_EXTENSIBLE_STRING_ENUM NS_AVAILABLE_MAC(10_13);
-
-/*!
- @brief Block signature for device notifications
-*/
-typedef void (^MTLDeviceNotificationHandler)(id <MTLDevice> device, MTLNotificationName notifyName);
+typedef NSString *MTLDeviceNotificationName NS_STRING_ENUM NS_AVAILABLE_MAC(10_13);
 
 /*!
  @brief This notification is posted when a new Metal device is added to the system
 */
-MTL_EXTERN MTLNotificationName const MTLDeviceWasAddedNotification NS_AVAILABLE_MAC(10_13);
+MTL_EXTERN MTLDeviceNotificationName const MTLDeviceWasAddedNotification NS_AVAILABLE_MAC(10_13);
 
 /*!
  @brief This notification is posted when the user has requested that applications cease using a particular device.  Applications
@@ -79,14 +74,19 @@
  device array prior to this notification being posted.  Applications should immediately begin the process of releasing all resources
  created on the given device, as well as any references to the device itself.
 */
-MTL_EXTERN MTLNotificationName const MTLDeviceRemovalRequestedNotification NS_AVAILABLE_MAC(10_13);
+MTL_EXTERN MTLDeviceNotificationName const MTLDeviceRemovalRequestedNotification NS_AVAILABLE_MAC(10_13);
 
 /*!
  @brief This notification is posted once the device has been removed.  Applications must expect that any attempt to use
  the device at this point will fail.  This includes creating new device specific objects of any kind.   Also, this notification
  may be posted without a prior MTLDeviceRemovalRequestedNotification notification in the case of unexpected removal.
 */
-MTL_EXTERN MTLNotificationName const MTLDeviceWasRemovedNotification NS_AVAILABLE_MAC(10_13);
+MTL_EXTERN MTLDeviceNotificationName const MTLDeviceWasRemovedNotification NS_AVAILABLE_MAC(10_13);
+
+/*!
+ @brief Block signature for device notifications
+ */
+typedef void (^MTLDeviceNotificationHandler)(id <MTLDevice> device, MTLDeviceNotificationName notifyName);
 
 /*!
  @brief Returns an NSArray of the current set of available Metal devices and installs a notification handler
@@ -307,7 +307,6 @@
  */
 @property (readonly, getter=isDepth24Stencil8PixelFormatSupported) BOOL depth24Stencil8PixelFormatSupported NS_AVAILABLE_MAC(10_11);
 
-@optional
 /*!
  @property readWriteTextureSupport
  @abstract Query support tier for read-write texture formats.
@@ -329,7 +328,6 @@
  @return BOOL value. If YES, the device supports raster order groups. If NO, the device does not.
  */
 @property (readonly, getter=areRasterOrderGroupsSupported) BOOL rasterOrderGroupsSupported NS_AVAILABLE(10_13, 11_0);
-@required
 
 
 /*!
diff -ruN /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLParallelRenderCommandEncoder.h /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLParallelRenderCommandEncoder.h
--- /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLParallelRenderCommandEncoder.h	2017-06-10 19:41:50.000000000 -0400
+++ /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLParallelRenderCommandEncoder.h	2017-06-29 23:55:11.000000000 -0400
@@ -50,5 +50,28 @@
 */
 - (void)setStencilStoreAction:(MTLStoreAction)storeAction NS_AVAILABLE(10_12, 10_0);
 
+/*!
+ @method setColorStoreActionOptions:atIndex:
+ @brief If the the store action for a given color attachment was set to MTLStoreActionUnknown when the render command encoder was created,
+ setColorStoreActionOptions:atIndex: may be used to finalize the store action options before endEncoding is called.
+ @param storeActionOptions The desired store action options for the given color attachment.
+ @param colorAttachmentIndex The index of the color attachment
+ */
+- (void)setColorStoreActionOptions:(MTLStoreActionOptions)storeActionOptions atIndex:(NSUInteger)colorAttachmentIndex NS_AVAILABLE(10_13, 11_0);
+
+/*!
+ @method setDepthStoreActionOptions:
+ @brief If the the store action for the depth attachment was set to MTLStoreActionUnknown when the render command encoder was created,
+ setDepthStoreActionOptions: may be used to finalize the store action options before endEncoding is called.
+ */
+- (void)setDepthStoreActionOptions:(MTLStoreActionOptions)storeActionOptions NS_AVAILABLE(10_13, 11_0);
+
+/*!
+ @method setStencilStoreActionOptions:
+ @brief If the the store action for the stencil attachment was set to MTLStoreActionUnknown when the render command encoder was created,
+ setStencilStoreActionOptions: may be used to finalize the store action options before endEncoding is called.
+ */
+- (void)setStencilStoreActionOptions:(MTLStoreActionOptions)storeActionOptions NS_AVAILABLE(10_13, 11_0);
+
 @end
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h
--- /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h	2017-06-10 19:41:50.000000000 -0400
+++ /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderCommandEncoder.h	2017-06-29 23:55:11.000000000 -0400
@@ -151,7 +151,7 @@
  @method setVertexBuffers:offsets:withRange:
  @brief Set an array of global buffers for all vertex shaders with the given bind point range.
  */
-- (void)setVertexBuffers:(const id <MTLBuffer> __nullable [__nullable])buffers offsets:(const NSUInteger [__nullable])offsets withRange:(NSRange)range;
+- (void)setVertexBuffers:(const id <MTLBuffer> __nullable [__nonnull])buffers offsets:(const NSUInteger [__nonnull])offsets withRange:(NSRange)range;
 
 /*!
  @method setVertexTexture:atIndex:
@@ -163,7 +163,7 @@
  @method setVertexTextures:withRange:
  @brief Set an array of global textures for all vertex shaders with the given bind point range.
  */
-- (void)setVertexTextures:(const id <MTLTexture> __nullable [__nullable])textures withRange:(NSRange)range;
+- (void)setVertexTextures:(const id <MTLTexture> __nullable [__nonnull])textures withRange:(NSRange)range;
 
 /*!
  @method setVertexSamplerState:atIndex:
@@ -175,7 +175,7 @@
  @method setVertexSamplerStates:withRange:
  @brief Set an array of global samplers for all vertex shaders with the given bind point range.
  */
-- (void)setVertexSamplerStates:(const id <MTLSamplerState> __nullable [__nullable])samplers withRange:(NSRange)range;
+- (void)setVertexSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers withRange:(NSRange)range;
 
 /*!
  @method setVertexSamplerState:lodMinClamp:lodMaxClamp:atIndex:
@@ -187,7 +187,7 @@
  @method setVertexSamplerStates:lodMinClamps:lodMaxClamps:withRange:
  @brief Set an array of global samplers for all vertex shaders with the given bind point range.
  */
-- (void)setVertexSamplerStates:(const id <MTLSamplerState> __nullable [__nullable])samplers lodMinClamps:(const float [__nullable])lodMinClamps lodMaxClamps:(const float [__nullable])lodMaxClamps withRange:(NSRange)range;
+- (void)setVertexSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers lodMinClamps:(const float [__nonnull])lodMinClamps lodMaxClamps:(const float [__nonnull])lodMaxClamps withRange:(NSRange)range;
 
 /*!
  @method setViewport:
@@ -268,7 +268,7 @@
  @method setFragmentBuffers:offsets:withRange:
  @brief Set an array of global buffers for all fragment shaders with the given bind point range.
  */
-- (void)setFragmentBuffers:(const id <MTLBuffer> __nullable [__nullable])buffers offsets:(const NSUInteger [__nullable])offsets withRange:(NSRange)range;
+- (void)setFragmentBuffers:(const id <MTLBuffer> __nullable [__nonnull])buffers offsets:(const NSUInteger [__nonnull])offsets withRange:(NSRange)range;
 
 /*!
  @method setFragmentTexture:atIndex:
@@ -280,7 +280,7 @@
  @method setFragmentTextures:withRange:
  @brief Set an array of global textures for all fragment shaders with the given bind point range.
  */
-- (void)setFragmentTextures:(const id <MTLTexture> __nullable [__nullable])textures withRange:(NSRange)range;
+- (void)setFragmentTextures:(const id <MTLTexture> __nullable [__nonnull])textures withRange:(NSRange)range;
 
 /*!
  @method setFragmentSamplerState:atIndex:
@@ -292,7 +292,7 @@
  @method setFragmentSamplerStates:withRange:
  @brief Set an array of global samplers for all fragment shaders with the given bind point range.
  */
-- (void)setFragmentSamplerStates:(const id <MTLSamplerState> __nullable [__nullable])samplers withRange:(NSRange)range;
+- (void)setFragmentSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers withRange:(NSRange)range;
 
 /*!
  @method setFragmentSamplerState:lodMinClamp:lodMaxClamp:atIndex:
@@ -304,7 +304,8 @@
  @method setFragmentSamplerStates:lodMinClamps:lodMaxClamps:withRange:
  @brief Set an array of global samplers for all fragment shaders with the given bind point range.
  */
-- (void)setFragmentSamplerStates:(const id <MTLSamplerState> __nullable [__nullable])samplers lodMinClamps:(const float [__nullable])lodMinClamps lodMaxClamps:(const float [__nullable])lodMaxClamps withRange:(NSRange)range;
+- (void)setFragmentSamplerStates:(const id <MTLSamplerState> __nullable [__nonnull])samplers lodMinClamps:(const float [__nonnull])lodMinClamps lodMaxClamps:(const float [__nonnull])lodMaxClamps withRange:(NSRange)range;
+
 
 /* Constant Blend Color */
 /*!
@@ -362,6 +363,29 @@
 */
 - (void)setStencilStoreAction:(MTLStoreAction)storeAction NS_AVAILABLE(10_12, 10_0);
 
+/*!
+ @method setColorStoreActionOptions:atIndex:
+ @brief If the the store action for a given color attachment was set to MTLStoreActionUnknown when the render command encoder was created,
+ setColorStoreActionOptions:atIndex: may be used to finalize the store action options before endEncoding is called.
+ @param storeActionOptions The desired store action options for the given color attachment.
+ @param colorAttachmentIndex The index of the color attachment
+ */
+- (void)setColorStoreActionOptions:(MTLStoreActionOptions)storeActionOptions atIndex:(NSUInteger)colorAttachmentIndex NS_AVAILABLE(10_13, 11_0);
+
+/*!
+ @method setDepthStoreActionOptions:
+ @brief If the the store action for the depth attachment was set to MTLStoreActionUnknown when the render command encoder was created,
+ setDepthStoreActionOptions: may be used to finalize the store action options before endEncoding is called.
+ */
+- (void)setDepthStoreActionOptions:(MTLStoreActionOptions)storeActionOptions NS_AVAILABLE(10_13, 11_0);
+
+/*!
+ @method setStencilStoreActionOptions:
+ @brief If the the store action for the stencil attachment was set to MTLStoreActionUnknown when the render command encoder was created,
+ setStencilStoreActionOptions: may be used to finalize the store action options before endEncoding is called.
+ */
+- (void)setStencilStoreActionOptions:(MTLStoreActionOptions)storeActionOptions NS_AVAILABLE(10_13, 11_0);
+
 /* Drawing */
 
 /*!
@@ -506,7 +530,7 @@
    the command buffer has been executed.
 */
 - (void)useResources:(const id <MTLResource> __nonnull[__nonnull])resources count:(NSUInteger)count usage:(MTLResourceUsage)usage NS_AVAILABLE(10_13, 11_0);
- 
+
 /*!
  * @method useHeap:
  * @abstract Declare that the resources allocated from a heap may be accessed by the render pass through an argument buffer
diff -ruN /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPass.h /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPass.h
--- /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPass.h	2017-06-10 19:41:50.000000000 -0400
+++ /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLRenderPass.h	2017-06-29 01:05:22.000000000 -0400
@@ -31,6 +31,11 @@
     MTLStoreActionCustomSampleDepthStore NS_ENUM_AVAILABLE(10_13, 11_0) = 5,
 } NS_ENUM_AVAILABLE(10_11, 8_0);
 
+typedef NS_OPTIONS(NSUInteger, MTLStoreActionOptions) {
+    MTLStoreActionOptionNone                  = 0,
+    MTLStoreActionOptionCustomSamplePositions = 1 << 0,
+} NS_ENUM_AVAILABLE(10_13, 11_0);
+
 typedef struct
 {
     double red;
@@ -111,6 +116,13 @@
  */
 @property (nonatomic) MTLStoreAction storeAction;
 
+/*!
+ @property storeActionOptions
+ @abstract Optional configuration for the store action performed with this attachment at the end of a render pass.  Default is
+ MTLStoreActionOptionNone.
+ */
+@property (nonatomic) MTLStoreActionOptions storeActionOptions NS_AVAILABLE(10_13, 11_0);
+
 @end
 
 NS_CLASS_AVAILABLE(10_11, 8_0)
diff -ruN /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes
--- /Applications/Xcode9-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes	2017-06-10 19:41:48.000000000 -0400
+++ /Applications/Xcode9-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Metal.framework/Headers/Metal.apinotes	2017-06-29 23:55:08.000000000 -0400
@@ -5,6 +5,13 @@
   NSErrorDomain: MTLCommandBufferErrorDomain
 - Name: MTLLibraryError
   NSErrorDomain: MTLLibraryErrorDomain
+Globals:
+- Name: MTLDeviceWasAddedNotification
+  SwiftName: wasAdded
+- Name: MTLDeviceRemovalRequestedNotification
+  SwiftName: removalRequested
+- Name: MTLDeviceWasRemovedNotification
+  SwiftName: wasRemoved
 Enumerators:
 - Name: MTLResourceStorageModeShared
   SwiftName: storageModeShared
@@ -307,11 +314,23 @@
   - Selector: 'newCaptureScopeWithCommandQueue:'
     SwiftName: makeCaptureScope(commandQueue:)
     MethodKind: Instance
+  - Selector: 'startCaptureWithDevice:'
+    SwiftName: startCapture(device:)
+    MethodKind: Instance
+  - Selector: 'startCaptureWithCommandQueue:'
+    SwiftName: startCapture(commandQueue:)
+    MethodKind: Instance
+  - Selector: 'startCaptureWithScope:'
+    SwiftName: startCapture(scope:)
+    MethodKind: Instance
 - Name: MTLFunctionConstantValues
   Methods:
   - Selector: 'setConstantValue:type:atIndex:'
     SwiftName: setConstantValue(_:type:index:)
     MethodKind: Instance
+  - Selector: 'setConstantValues:type:withRange:'
+    SwiftName: setConstantValues(_:type:range:)
+    MethodKind: Instance
 - Name: MTLStructType
   Methods:
   - Selector: 'memberByName:'
@@ -381,18 +400,30 @@
   - Selector: 'setBuffer:offset:atIndex:'
     SwiftName: setBuffer(_:offset:index:)
     MethodKind: Instance
+  - Selector: 'setBuffers:offsets:withRange:'
+    SwiftName: setBuffers(_:offsets:range:)
+    MethodKind: Instance
   - Selector: 'setBufferOffset:atIndex:'
     SwiftName: setBufferOffset(_:index:)
     MethodKind: Instance
   - Selector: 'setTexture:atIndex:'
     SwiftName: setTexture(_:index:)
     MethodKind: Instance
+  - Selector: 'setTextures:withRange:'
+    SwiftName: setTextures(_:range:)
+    MethodKind: Instance
   - Selector: 'setSamplerState:atIndex:'
     SwiftName: setSamplerState(_:index:)
     MethodKind: Instance
+  - Selector: 'setSamplerStates:withRange:'
+    SwiftName: setSamplerStates(_:range:)
+    MethodKind: Instance
   - Selector: 'setSamplerState:lodMinClamp:lodMaxClamp:atIndex:'
     SwiftName: setSamplerState(_:lodMinClamp:lodMaxClamp:index:)
     MethodKind: Instance
+  - Selector: 'setSamplerStates:lodMinClamps:lodMaxClamps:withRange:'
+    SwiftName: setSamplerStates(_:lodMinClamps:lodMaxClamps:range:)
+    MethodKind: Instance
   - Selector: 'setThreadgroupMemoryLength:atIndex:'
     SwiftName: setThreadgroupMemoryLength(_:index:)
     MethodKind: Instance
@@ -431,6 +462,9 @@
   - Selector: 'newLibraryWithFile:error:'
     SwiftName: makeLibrary(filepath:)
     MethodKind: Instance
+  - Selector: 'newLibraryWithURL:error:'
+    SwiftName: makeLibrary(URL:)
+    MethodKind: Instance
   - Selector: 'newLibraryWithData:error:'
     SwiftName: makeLibrary(data:)
     MethodKind: Instance
@@ -521,11 +555,11 @@
   - Selector: 'newSamplerStateWithDescriptor:'
     SwiftName: makeSamplerState(descriptor:)
     MethodKind: Instance
-  - Selector: 'newIndirectArgumentEncoderWithArguments:count:'
-    SwiftName: makeIndirectArgumentEncoder(arguments:count:)
+  - Selector: 'newIndirectArgumentEncoderWithArguments:'
+    SwiftName: makeIndirectArgumentEncoder(arguments:)
     MethodKind: Instance
-  - Selector: 'newArgumentEncoderWithArguments:count:'
-    SwiftName: makeArgumentEncoder(arguments:count:)
+  - Selector: 'newArgumentEncoderWithArguments:'
+    SwiftName: makeArgumentEncoder(arguments:)
     MethodKind: Instance
 - Name: MTLDrawable
   Methods:
@@ -565,12 +599,21 @@
   - Selector: 'setBuffer:offset:atIndex:'
     SwiftName: setBuffer(_:offset:index:)
     MethodKind: Instance
+  - Selector: 'setBuffers:offsets:withRange:'
+    SwiftName: 'setBuffers(_:offsets:range:)'
+    MethodKind: Instance
   - Selector: 'setTexture:atIndex:'
     SwiftName: setTexture(_:index:)
     MethodKind: Instance
+  - Selector: 'setTextures:withRange:'
+    SwiftName: 'setTextures(_:range:)'
+    MethodKind: Instance
   - Selector: 'setSamplerState:atIndex:'
     SwiftName: setSamplerState(_:index:)
     MethodKind: Instance
+  - Selector: 'setSamplerStates:withRange:'
+    SwiftName: 'setSamplerStates(_:range:)'
+    MethodKind: Instance
 - Name: MTLLibrary
   Methods:
   - Selector: 'newFunctionWithName:'
@@ -604,6 +647,9 @@
   - Selector: 'setColorStoreAction:atIndex:'
     SwiftName: setColorStoreAction(_:index:)
     MethodKind: Instance
+  - Selector: 'setColorStoreActionOptions:atIndex:'
+    SwiftName: setColorStoreActionOptions(_:index:)
+    MethodKind: Instance
 - Name: MTLRenderCommandEncoder
   Methods:
   - Selector: 'setVertexBytes:length:atIndex:'
@@ -612,39 +658,66 @@
   - Selector: 'setVertexBuffer:offset:atIndex:'
     SwiftName: setVertexBuffer(_:offset:index:)
     MethodKind: Instance
+  - Selector: 'setVertexBuffers:offsets:withRange:'
+    SwiftName: setVertexBuffers(_:offsets:range:)
+    MethodKind: Instance
   - Selector: 'setVertexBufferOffset:atIndex:'
     SwiftName: setVertexBufferOffset(_:index:)
     MethodKind: Instance
   - Selector: 'setVertexTexture:atIndex:'
     SwiftName: setVertexTexture(_:index:)
     MethodKind: Instance
+  - Selector: 'setVertexTextures:withRange:'
+    SwiftName: setVertexTextures(_:range:)
+    MethodKind: Instance
   - Selector: 'setVertexSamplerState:atIndex:'
     SwiftName: setVertexSamplerState(_:index:)
     MethodKind: Instance
+  - Selector: 'setVertexSamplerStates:withRange:'
+    SwiftName: setVertexSamplerStates(_:range:)
+    MethodKind: Instance
   - Selector: 'setVertexSamplerState:lodMinClamp:lodMaxClamp:atIndex:'
     SwiftName: setVertexSamplerState(_:lodMinClamp:lodMaxClamp:index:)
     MethodKind: Instance
+  - Selector: 'setVertexSamplerStates:lodMinClamps:lodMaxClamps:withRange:'
+    SwiftName: setVertexSamplerStates(_:lodMinClamps:lodMaxClamps:range:)
+    MethodKind: Instance
   - Selector: 'setFragmentBytes:length:atIndex:'
     SwiftName: setFragmentBytes(_:length:index:)
     MethodKind: Instance
   - Selector: 'setFragmentBuffer:offset:atIndex:'
     SwiftName: setFragmentBuffer(_:offset:index:)
     MethodKind: Instance
+  - Selector: 'setFragmentBuffers:offsets:withRange:'
+    SwiftName: setFragmentBuffers(_:offsets:range:)
+    MethodKind: Instance
   - Selector: 'setFragmentBufferOffset:atIndex:'
     SwiftName: setFragmentBufferOffset(_:index:)
     MethodKind: Instance
   - Selector: 'setFragmentTexture:atIndex:'
     SwiftName: setFragmentTexture(_:index:)
     MethodKind: Instance
+  - Selector: 'setFragmentTextures:withRange:'
+    SwiftName: setFragmentTextures(_:range:)
+    MethodKind: Instance
   - Selector: 'setFragmentSamplerState:atIndex:'
     SwiftName: setFragmentSamplerState(_:index:)
     MethodKind: Instance
+  - Selector: 'setFragmentSamplerStates:withRange:'
+    SwiftName: setFragmentSamplerStates(_:range:)
+    MethodKind: Instance
   - Selector: 'setFragmentSamplerState:lodMinClamp:lodMaxClamp:atIndex:'
     SwiftName: setFragmentSamplerState(_:lodMinClamp:lodMaxClamp:index:)
     MethodKind: Instance
+  - Selector: 'setFragmentSamplerStates:lodMinClamps:lodMaxClamps:withRange:'
+    SwiftName: setFragmentSamplerStates(_:lodMinClamps:lodMaxClamps:range:)
+    MethodKind: Instance
   - Selector: 'setColorStoreAction:atIndex:'
     SwiftName: setColorStoreAction(_:index:)
     MethodKind: Instance
+  - Selector: 'setColorStoreActionOptions:atIndex:'
+    SwiftName: setColorStoreActionOptions(_:index:)
+    MethodKind: Instance
   - Selector: 'setTileBytes:length:atIndex:'
     SwiftName: setTileBytes(_:length:index:)
     MethodKind: Instance
@@ -752,6 +825,9 @@
     - Selector: 'setConstantValue:type:atIndex:'
       SwiftName: setConstantValue(_:type:at:)
       MethodKind: Instance
+    - Selector: 'setConstantValues:type:withRange:'
+      SwiftName: setConstantValues(_:type:with:)
+      MethodKind: Instance
   Protocols:
   - Name: MTLBuffer
     Methods:
@@ -840,12 +916,12 @@
       SwiftName: makeSamplerState(descriptor:)
       MethodKind: Instance
       NullabilityOfRet: N
-    - Selector: 'newIndirectArgumentEncoderWithArguments:count:'
-      SwiftName: makeIndirectArgumentEncoder(arguments:count:)
+    - Selector: 'newIndirectArgumentEncoderWithArguments:'
+      SwiftName: makeIndirectArgumentEncoder(arguments:)
       MethodKind: Instance
       NullabilityOfRet: N
-    - Selector: 'newArgumentEncoderWithArguments:count:'
-      SwiftName: makeArgumentEncoder(arguments:count:)
+    - Selector: 'newArgumentEncoderWithArguments:'
+      SwiftName: makeArgumentEncoder(arguments:)
       MethodKind: Instance
       NullabilityOfRet: N
     Properties:
@@ -881,6 +957,34 @@
     - Selector: 'setThreadgroupMemoryLength:atIndex:'
       SwiftName: setThreadgroupMemoryLength(_:at:)
       MethodKind: Instance
+    - Selector: 'setSamplerStates:lodMinClamps:lodMaxClamps:withRange:'
+      SwiftName: setSamplerStates(_:lodMinClamps:lodMaxClamps:with:)
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: O
+      - Position: 1
+        Nullability: O
+      - Position: 2
+        Nullability: O
+      - Position: 3
+        Nullability: U
+    - Selector: 'setTextures:withRange:'
+      SwiftName: setTextures(_:with:)
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: O
+      - Position: 1
+        Nullability: U
+    - Selector: 'setSamplerStates:withRange:'
+      SwiftName: setSamplerStates(_:with:)
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: O
+      - Position: 1
+        Nullability: U
   - Name: MTLIndirectArgumentEncoder
     Methods:
     - Selector: 'newIndirectArgumentEncoderForBufferAtIndex:'
@@ -918,6 +1022,9 @@
     - Selector: 'setColorStoreAction:atIndex:'
       SwiftName: setColorStoreAction(_:at:)
       MethodKind: Instance
+    - Selector: 'setColorStoreActionOptions:atIndex:'
+      SwiftName: setColorStoreActionOptions(_:at:)
+      MethodKind: Instance
   - Name: MTLRenderCommandEncoder
     Methods:
     - Selector: 'setVertexBytes:length:atIndex:'
@@ -973,6 +1080,9 @@
     - Selector: 'setColorStoreAction:atIndex:'
       SwiftName: setColorStoreAction(_:at:)
       MethodKind: Instance
+    - Selector: 'setColorStoreActionOptions:atIndex:'
+      SwiftName: setColorStoreActionOptions(_:at:)
+      MethodKind: Instance
     - Selector: 'setTileBytes:length:atIndex:'
       SwiftName: setTileBytes(_:length:at:)
       MethodKind: Instance
@@ -994,6 +1104,62 @@
     - Selector: 'setThreadgroupMemoryLength:offset:atIndex:'
       SwiftName: setThreadgroupMemoryLength(_:offset:at:)
       MethodKind: Instance
+    - Selector: 'setFragmentSamplerStates:lodMinClamps:lodMaxClamps:withRange:'
+      SwiftName: setFragmentSamplerStates(_:lodMinClamps:lodMaxClamps:with:)
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: O
+      - Position: 1
+        Nullability: O
+      - Position: 2
+        Nullability: O
+      - Position: 3
+        Nullability: U
+    - Selector: 'setVertexSamplerStates:lodMinClamps:lodMaxClamps:withRange:'
+      SwiftName: setVertexSamplerStates(_:lodMinClamps:lodMaxClamps:with:)
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: O
+      - Position: 1
+        Nullability: O
+      - Position: 2
+        Nullability: O
+      - Position: 3
+        Nullability: U
+    - Selector: 'setFragmentSamplerStates:withRange:'
+      SwiftName: setFragmentSamplerStates(_:with:)
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: O
+      - Position: 1
+        Nullability: U
+    - Selector: 'setFragmentTextures:withRange:'
+      SwiftName: setFragmentTextures(_:with:)
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: O
+      - Position: 1
+        Nullability: U
+    - Selector: 'setVertexSamplerStates:withRange:'
+      SwiftName: setVertexSamplerStates(_:with:)
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: O
+      - Position: 1
+        Nullability: U
+    - Selector: 'setVertexTextures:withRange:'
+      SwiftName: setVertexTextures(_:with:)
+      MethodKind: Instance
+      Parameters:
+      - Position: 0
+        Nullability: O
+      - Position: 1
+        Nullability: U
   - Name: MTLTexture
     Methods:
     - Selector: 'newTextureViewWithPixelFormat:'
Clone this wiki locally