Metal macOS 11.3 to 12.0 API Differences

MTLAccelerationStructure.h
Added MTLAccelerationStructureUsageExtendedLimits
Added MTLAccelerationStructureGeometryDescriptor.label
Added MTLMotionBorderMode
Added MTLMotionBorderModeClamp
Added MTLMotionBorderModeVanish
Added MTLPrimitiveAccelerationStructureDescriptor.motionStartBorderMode
Added MTLPrimitiveAccelerationStructureDescriptor.motionEndBorderMode
Added MTLPrimitiveAccelerationStructureDescriptor.motionStartTime
Added MTLPrimitiveAccelerationStructureDescriptor.motionEndTime
Added MTLPrimitiveAccelerationStructureDescriptor.motionKeyframeCount
Added MTLMotionKeyframeData
Added MTLMotionKeyframeData.buffer
Added MTLMotionKeyframeData.offset
Added +[MTLMotionKeyframeData data]
Added MTLAccelerationStructureMotionTriangleGeometryDescriptor
Added MTLAccelerationStructureMotionTriangleGeometryDescriptor.vertexBuffers
Added MTLAccelerationStructureMotionTriangleGeometryDescriptor.vertexStride
Added MTLAccelerationStructureMotionTriangleGeometryDescriptor.indexBuffer
Added MTLAccelerationStructureMotionTriangleGeometryDescriptor.indexBufferOffset
Added MTLAccelerationStructureMotionTriangleGeometryDescriptor.indexType
Added MTLAccelerationStructureMotionTriangleGeometryDescriptor.triangleCount
Added +[MTLAccelerationStructureMotionTriangleGeometryDescriptor descriptor]
Added MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor
Added MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor.boundingBoxBuffers
Added MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor.boundingBoxStride
Added MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor.boundingBoxCount
Added +[MTLAccelerationStructureMotionBoundingBoxGeometryDescriptor descriptor]
Added MTLAccelerationStructureUserIDInstanceDescriptor
Added MTLAccelerationStructureInstanceDescriptorType
Added MTLAccelerationStructureInstanceDescriptorTypeDefault
Added MTLAccelerationStructureInstanceDescriptorTypeUserID
Added MTLAccelerationStructureInstanceDescriptorTypeMotion
Added MTLAccelerationStructureMotionInstanceDescriptor
Added MTLInstanceAccelerationStructureDescriptor.instanceDescriptorType
Added MTLInstanceAccelerationStructureDescriptor.motionTransformBuffer
Added MTLInstanceAccelerationStructureDescriptor.motionTransformBufferOffset
Added MTLInstanceAccelerationStructureDescriptor.motionTransformCount
Modified MTLPrimitiveAccelerationStructureDescriptor.geometryDescriptors
Declaration
From@property (nonatomic, retain) NSArray<MTLAccelerationStructureGeometryDescriptor *> *geometryDescriptors
To@property (nonatomic, retain) NSArray<MTLAccelerationStructureGeometryDescriptor *> *geometryDescriptors

Modified MTLAccelerationStructureTriangleGeometryDescriptor.vertexBuffer
Declaration
From@property (nonatomic, retain) id<MTLBuffer> vertexBuffer
To@property (nonatomic, retain) id<MTLBuffer> vertexBuffer

Modified MTLAccelerationStructureTriangleGeometryDescriptor.indexBuffer
Declaration
From@property (nonatomic, retain) id<MTLBuffer> indexBuffer
To@property (nonatomic, retain) id<MTLBuffer> indexBuffer

Modified MTLAccelerationStructureBoundingBoxGeometryDescriptor.boundingBoxBuffer
Declaration
From@property (nonatomic, retain) id<MTLBuffer> boundingBoxBuffer
To@property (nonatomic, retain) id<MTLBuffer> boundingBoxBuffer

Modified MTLInstanceAccelerationStructureDescriptor.instanceDescriptorBuffer
Declaration
From@property (nonatomic, retain) id<MTLBuffer> instanceDescriptorBuffer
To@property (nonatomic, retain) id<MTLBuffer> instanceDescriptorBuffer

Modified MTLInstanceAccelerationStructureDescriptor.instancedAccelerationStructures
Declaration
From@property (nonatomic, retain) NSArray<id<MTLAccelerationStructure>> *instancedAccelerationStructures
To@property (nonatomic, retain) NSArray<id<MTLAccelerationStructure>> *instancedAccelerationStructures

MTLAccelerationStructureCommandEncoder.h
Added -[MTLAccelerationStructureCommandEncoder writeCompactedAccelerationStructureSize:toBuffer:offset:sizeDataType:]
MTLAccelerationStructureTypes.h
Added MTLPackedFloat3Make()
MTLArgument.h
Added MTLDataTypeLong
Added MTLDataTypeLong2
Added MTLDataTypeLong3
Added MTLDataTypeLong4
Added MTLDataTypeULong
Added MTLDataTypeULong2
Added MTLDataTypeULong3
Added MTLDataTypeULong4
MTLBinaryArchive.h
Added -[MTLBinaryArchive addFunctionWithDescriptor:library:error:]
MTLBlitPass.h
Removed #def MTLMaxBlitPassSampleBuffers
MTLCommandBuffer.h
Added MTLCommandBufferErrorAccessRevoked
Added MTLCommandBufferErrorStackOverflow
MTLComputePass.h
Removed #def MTLMaxComputePassSampleBuffers
MTLComputePipeline.h
Added MTLComputePipelineDescriptor.preloadedLibraries
Modified MTLComputePipelineDescriptor.insertLibraries
AvailabilityReplacement
FromAvailablenone
ToDeprecatedUse preloadedLibraries instead.

MTLDevice.h
Added -[MTLDevice newLibraryWithStitchedDescriptor:error:]
Added -[MTLDevice newLibraryWithStitchedDescriptor:completionHandler:]
Added MTLDevice.supportsRenderDynamicLibraries
Added MTLDevice.supportsFunctionPointersFromRender
Added MTLDevice.supportsRaytracingFromRender
Added MTLDevice.supportsPrimitiveMotionBlur
MTLFunctionDescriptor.h
Added MTLFunctionDescriptor.binaryArchives
MTLFunctionStitching.h
Added MTLFunctionStitchingAttribute
Added MTLFunctionStitchingAttributeAlwaysInline
Added MTLFunctionStitchingNode
Added MTLFunctionStitchingInputNode
Added MTLFunctionStitchingInputNode.argumentIndex
Added -[MTLFunctionStitchingInputNode initWithArgumentIndex:]
Added MTLFunctionStitchingFunctionNode
Added MTLFunctionStitchingFunctionNode.name
Added MTLFunctionStitchingFunctionNode.arguments
Added MTLFunctionStitchingFunctionNode.controlDependencies
Added -[MTLFunctionStitchingFunctionNode initWithName:arguments:controlDependencies:]
Added MTLFunctionStitchingGraph
Added MTLFunctionStitchingGraph.functionName
Added MTLFunctionStitchingGraph.nodes
Added MTLFunctionStitchingGraph.outputNode
Added MTLFunctionStitchingGraph.attributes
Added -[MTLFunctionStitchingGraph initWithFunctionName:nodes:outputNode:attributes:]
Added MTLStitchedLibraryDescriptor
Added MTLStitchedLibraryDescriptor.functionGraphs
Added MTLStitchedLibraryDescriptor.functions
MTLIntersectionFunctionTable.h
Added MTLIntersectionFunctionSignatureInstanceMotion
Added MTLIntersectionFunctionSignaturePrimitiveMotion
Added MTLIntersectionFunctionSignatureExtendedLimits
MTLLibrary.h
Added MTLLanguageVersion2_4
MTLLinkedFunctions.h
Added MTLLinkedFunctions.privateFunctions
MTLRasterizationRate.h
Added MTLRasterizationRateLayerDescriptor.maxSampleCount
Modified MTLRasterizationRateLayerDescriptor.sampleCount
Declaration
From@property (nonatomic, readonly) MTLSize sampleCount
To@property (nonatomic, readwrite) MTLSize sampleCount

MTLRenderCommandEncoder.h
Added MTLRenderStageTile
Added -[MTLRenderCommandEncoder setVertexVisibleFunctionTable:atBufferIndex:]
Added -[MTLRenderCommandEncoder setVertexVisibleFunctionTables:withBufferRange:]
Added -[MTLRenderCommandEncoder setVertexIntersectionFunctionTable:atBufferIndex:]
Added -[MTLRenderCommandEncoder setVertexIntersectionFunctionTables:withBufferRange:]
Added -[MTLRenderCommandEncoder setVertexAccelerationStructure:atBufferIndex:]
Added -[MTLRenderCommandEncoder setFragmentVisibleFunctionTable:atBufferIndex:]
Added -[MTLRenderCommandEncoder setFragmentVisibleFunctionTables:withBufferRange:]
Added -[MTLRenderCommandEncoder setFragmentIntersectionFunctionTable:atBufferIndex:]
Added -[MTLRenderCommandEncoder setFragmentIntersectionFunctionTables:withBufferRange:]
Added -[MTLRenderCommandEncoder setFragmentAccelerationStructure:atBufferIndex:]
Added -[MTLRenderCommandEncoder setTileVisibleFunctionTable:atBufferIndex:]
Added -[MTLRenderCommandEncoder setTileVisibleFunctionTables:withBufferRange:]
Added -[MTLRenderCommandEncoder setTileIntersectionFunctionTable:atBufferIndex:]
Added -[MTLRenderCommandEncoder setTileIntersectionFunctionTables:withBufferRange:]
Added -[MTLRenderCommandEncoder setTileAccelerationStructure:atBufferIndex:]
MTLRenderPass.h
Removed #def MTLMaxRenderPassSampleBuffers
MTLRenderPipeline.h
Added MTLRenderPipelineDescriptor.vertexPreloadedLibraries
Added MTLRenderPipelineDescriptor.fragmentPreloadedLibraries
Added MTLRenderPipelineDescriptor.vertexLinkedFunctions
Added MTLRenderPipelineDescriptor.fragmentLinkedFunctions
Added MTLRenderPipelineDescriptor.supportAddingVertexBinaryFunctions
Added MTLRenderPipelineDescriptor.supportAddingFragmentBinaryFunctions
Added MTLRenderPipelineDescriptor.maxVertexCallStackDepth
Added MTLRenderPipelineDescriptor.maxFragmentCallStackDepth
Added MTLRenderPipelineFunctionsDescriptor
Added MTLRenderPipelineFunctionsDescriptor.vertexAdditionalBinaryFunctions
Added MTLRenderPipelineFunctionsDescriptor.fragmentAdditionalBinaryFunctions
Added MTLRenderPipelineFunctionsDescriptor.tileAdditionalBinaryFunctions
Added -[MTLRenderPipelineState functionHandleWithFunction:stage:]
Added -[MTLRenderPipelineState newVisibleFunctionTableWithDescriptor:stage:]
Added -[MTLRenderPipelineState newIntersectionFunctionTableWithDescriptor:stage:]
Added -[MTLRenderPipelineState newRenderPipelineStateWithAdditionalBinaryFunctions:error:]
Added MTLTileRenderPipelineDescriptor.preloadedLibraries
Added MTLTileRenderPipelineDescriptor.linkedFunctions
Added MTLTileRenderPipelineDescriptor.supportAddingBinaryFunctions
Added MTLTileRenderPipelineDescriptor.maxCallStackDepth
MTLResourceStatePass.h
Removed #def MTLMaxResourceStatePassSampleBuffers