Metal tvOS 15.4 to 16.0 API Differences

MTLArgument.h
Added MTLBindingType
Added MTLBindingTypeBuffer
Added MTLBindingTypeThreadgroupMemory
Added MTLBindingTypeTexture
Added MTLBindingTypeSampler
Added MTLBindingTypeImageblockData
Added MTLBindingTypeImageblock
Added MTLBindingTypeVisibleFunctionTable
Added MTLBindingTypePrimitiveAccelerationStructure
Added MTLBindingTypeInstanceAccelerationStructure
Added MTLBindingTypeIntersectionFunctionTable
Added MTLBindingTypeObjectPayload
Added MTLArgument.objectPayloadAlignment
Added MTLArgument.objectPayloadDataSize
Added MTLBinding
Added MTLBinding.name
Added MTLBinding.type
Added MTLBinding.access
Added MTLBinding.index
Added MTLBinding.used
Added MTLBinding.argument
Added MTLBufferBinding
Added MTLBufferBinding.bufferAlignment
Added MTLBufferBinding.bufferDataSize
Added MTLBufferBinding.bufferDataType
Added MTLBufferBinding.bufferStructType
Added MTLBufferBinding.bufferPointerType
Added MTLThreadgroupBinding
Added MTLThreadgroupBinding.threadgroupMemoryAlignment
Added MTLThreadgroupBinding.threadgroupMemoryDataSize
Added MTLTextureBinding
Added MTLTextureBinding.textureType
Added MTLTextureBinding.textureDataType
Added MTLTextureBinding.depthTexture
Added MTLTextureBinding.arrayLength
Added MTLObjectPayloadBinding
Added MTLObjectPayloadBinding.objectPayloadAlignment
Added MTLObjectPayloadBinding.objectPayloadDataSize
Modified MTLArgumentTypeBuffer
Availability
FromAvailable
ToDeprecated

Modified MTLArgumentTypeThreadgroupMemory
Availability
FromAvailable
ToDeprecated

Modified MTLArgumentTypeTexture
Availability
FromAvailable
ToDeprecated

Modified MTLArgumentTypeSampler
Availability
FromAvailable
ToDeprecated

Modified MTLArgumentTypeImageblockData
Availability
FromAvailable
ToDeprecated

Modified MTLArgumentTypeImageblock
Availability
FromAvailable
ToDeprecated

Modified MTLArgument
Availability
FromAvailable
ToDeprecated

MTLArgumentEncoder.h
Modified MTLArgumentEncoder
AvailabilityDeprecation Message
FromAvailablenone
ToDeprecatedUse 'gpuAddress' or 'gpuHandle' instead

MTLBinaryArchive.h
Added MTLBinaryArchiveErrorInternalError
MTLBuffer.h
Added MTLBuffer.gpuAddress
MTLCommandBuffer.h
Modified MTLCommandBufferErrorBlacklisted
Availability
FromAvailable
ToDeprecated

MTLCommandEncoder.h
Modified MTLResourceUsageSample
Availability
FromAvailable
ToDeprecated

MTLComputePipeline.h
Added MTLComputePipelineReflection.bindings
Added MTLComputePipelineState.gpuHandle
Added MTLComputePipelineState.gpuResourceID
Modified MTLComputePipelineReflection.arguments
Availability
FromAvailable
ToDeprecated

MTLDevice.h
Added MTLIOCompressionMethod
Added MTLIOCompressionMethodZlib
Added MTLIOCompressionMethodLZFSE
Added MTLIOCompressionMethodLZ4
Added MTLIOCompressionMethodLZMA
Added MTLIOCompressionMethodLZBitmap
Added MTLGPUFamilyMetal3
Added -[MTLDevice newIOHandleWithURL:error:]
Added -[MTLDevice newIOCommandQueueWithDescriptor:error:]
Added -[MTLDevice newIOHandleWithURL:compressionMethod:error:]
Added -[MTLDevice newArgumentEncoderWithBufferBinding:]
Modified MTLFeatureSet_tvOS_GPUFamily1_v1
Availability
FromAvailable
ToDeprecated

Modified MTLFeatureSet_TVOS_GPUFamily1_v1
Availability
FromAvailable
ToDeprecated

Modified MTLFeatureSet_tvOS_GPUFamily1_v2
Availability
FromAvailable
ToDeprecated

Modified MTLFeatureSet_tvOS_GPUFamily1_v3
Availability
FromAvailable
ToDeprecated

Modified MTLFeatureSet_tvOS_GPUFamily2_v1
Availability
FromAvailable
ToDeprecated

Modified MTLFeatureSet_tvOS_GPUFamily1_v4
Availability
FromAvailable
ToDeprecated

Modified MTLFeatureSet_tvOS_GPUFamily2_v2
Availability
FromAvailable
ToDeprecated

Modified MTLGPUFamilyMac1
Availability
FromAvailable
ToDeprecated

Modified MTLGPUFamilyMacCatalyst1
Availability
FromAvailable
ToDeprecated

Modified MTLGPUFamilyMacCatalyst2
Availability
FromAvailable
ToDeprecated

Modified -[MTLDevice newLibraryWithFile:error:]
AvailabilityDeprecation Message
FromAvailablenone
ToDeprecatedUse -newLibraryWithURL:error: instead

Modified -[MTLDevice supportsFeatureSet:]
AvailabilityDeprecation Message
FromAvailablenone
ToDeprecatedUse supportsFamily instead

MTLIndirectCommandBuffer.h
Added MTLIndirectCommandBuffer.gpuHandle
Added MTLIndirectCommandBuffer.gpuResourceID
MTLIOCommandBuffer.h
Added MTLIOStatus
Added MTLIOStatusPending
Added MTLIOStatusCancelled
Added MTLIOStatusError
Added MTLIOStatusComplete
Added MTLIOCommandBufferHandler
Added MTLIOCommandBuffer
Added -[MTLIOCommandBuffer addCompletedHandler:]
Added -[MTLIOCommandBuffer loadBytes:size:sourceHandle:sourceHandleOffset:]
Added -[MTLIOCommandBuffer loadBuffer:offset:size:sourceHandle:sourceHandleOffset:]
Added -[MTLIOCommandBuffer loadTexture:slice:level:size:sourceBytesPerRow:sourceBytesPerImage:destinationOrigin:sourceHandle:sourceHandleOffset:]
Added -[MTLIOCommandBuffer copyStatusToBuffer:offset:]
Added -[MTLIOCommandBuffer commit]
Added -[MTLIOCommandBuffer waitUntilCompleted]
Added -[MTLIOCommandBuffer tryCancel]
Added -[MTLIOCommandBuffer addBarrier]
Added -[MTLIOCommandBuffer pushDebugGroup:]
Added -[MTLIOCommandBuffer popDebugGroup]
Added -[MTLIOCommandBuffer enqueue]
Added -[MTLIOCommandBuffer waitForEvent:value:]
Added -[MTLIOCommandBuffer signalEvent:value:]
Added MTLIOCommandBuffer.label
Added MTLIOCommandBuffer.status
Added MTLIOCommandBuffer.error
MTLIOCommandQueue.h
Added MTLIOPriority
Added MTLIOPriorityHigh
Added MTLIOPriorityNormal
Added MTLIOPriorityLow
Added MTLIOCommandQueueType
Added MTLIOCommandQueueTypeConcurrent
Added MTLIOCommandQueueTypeSerial
Added MTLIOErrorDomain
Added MTLIOError
Added MTLIOErrorURLInvalid
Added MTLIOErrorInternal
Added MTLIOCommandQueue
Added -[MTLIOCommandQueue enqueueBarrier]
Added -[MTLIOCommandQueue commandBuffer]
Added -[MTLIOCommandQueue commandBufferWithUnretainedReferences]
Added MTLIOCommandQueue.label
Added MTLIOScratchBuffer
Added MTLIOScratchBuffer.buffer
Added MTLIOScratchBufferAllocator
Added -[MTLIOScratchBufferAllocator newScratchBufferWithMinimumSize:]
Added -[MTLIOScratchBufferAllocator allocateScratchBufferWithMinimumSize:]
Added MTLIOCommandQueueDescriptor
Added MTLIOCommandQueueDescriptor.maxCommandBufferCount
Added MTLIOCommandQueueDescriptor.priority
Added MTLIOCommandQueueDescriptor.type
Added MTLIOCommandQueueDescriptor.maxCommandsInFlight
Added MTLIOCommandQueueDescriptor.scratchBufferAllocator
Added MTLIOFileHandle
Added MTLIOFileHandle.label
MTLIOCompressor.h
Added MTLIOCompressionStatus
Added MTLIOCompressionStatusComplete
Added MTLIOCompressionStatusError
Added kMTLIOCompressionContextDefaultChunkSize
Added MTLIOCreateCompressionContext()
Added MTLIOCompressionContextAppendData()
Added MTLIOFlushAndDestroyCompressionContext()
MTLLibrary.h
Added MTLLanguageVersion3_0
Added MTLLibraryOptimizationLevel
Added MTLLibraryOptimizationLevelDefault
Added MTLLibraryOptimizationLevelSize
Added MTLCompileOptions.optimizationLevel
Modified MTLLanguageVersion1_0
AvailabilityDeprecation Message
FromAvailablenone
ToDeprecatedUse a newer language standard

MTLRenderCommandEncoder.h
Modified -[MTLRenderCommandEncoder useResource:usage:]
Availability
FromAvailable
ToDeprecated

Modified -[MTLRenderCommandEncoder useResources:count:usage:]
Availability
FromAvailable
ToDeprecated

Modified -[MTLRenderCommandEncoder useHeap:]
Availability
FromAvailable
ToDeprecated

Modified -[MTLRenderCommandEncoder useHeaps:count:]
Availability
FromAvailable
ToDeprecated

MTLRenderPipeline.h
Added MTLRenderPipelineReflection.vertexBindings
Added MTLRenderPipelineReflection.fragmentBindings
Added MTLRenderPipelineReflection.tileBindings
Added MTLRenderPipelineState.gpuHandle
Added MTLRenderPipelineState.gpuResourceID
Modified MTLRenderPipelineReflection.vertexArguments
Availability
FromAvailable
ToDeprecated

Modified MTLRenderPipelineReflection.fragmentArguments
Availability
FromAvailable
ToDeprecated

Modified MTLRenderPipelineDescriptor.sampleCount
Availability
FromAvailable
ToDeprecated

MTLResource.h
Modified MTLResourceOptionCPUCacheModeDefault
Availability
FromAvailable
ToDeprecated

Modified MTLResourceOptionCPUCacheModeWriteCombined
Availability
FromAvailable
ToDeprecated

MTLSampler.h
Added MTLSamplerState.gpuHandle
Added MTLSamplerState.gpuResourceID
MTLTexture.h
Added MTLTexture.gpuHandle
Added MTLTexture.gpuResourceID
MTLTypes.h
Added MTLGPUHandle
Added MTLResourceID