API Differences in Metal in iOS 17.0

It can be difficult to find what changed in Apple SDKs. These pages are algorithmically generated and show what is new in Metal in the iOS 17.0 SDK.

Table of Contents

Functions & Methods

MTLComputeCommandEncoder
public func setBuffers(_ buffers: [(any Metal.MTLBuffer)?], offsets: [Swift.Int], attributeStrides: [Swift.Int], range: Swift.Range<Swift.Int>)
MTLRenderCommandEncoder
public func setVertexBuffers(_ buffers: [(any Metal.MTLBuffer)?], offsets: [Swift.Int], attributeStrides: [Swift.Int], range: Swift.Range<Swift.Int>)
MTLDevice
- (nullable id<MTLIOFileHandle>)newIOFileHandleWithURL:(nonnull NSURL *)url error:(NSError * _Nullable * _Nullable)error;
MTLDevice
- (nullable id<MTLIOFileHandle>)newIOFileHandleWithURL:(nonnull NSURL *)url compressionMethod:(MTLIOCompressionMethod)compressionMethod error:(NSError * _Nullable * _Nullable)error;
MTLComputeCommandEncoder
- (void)setBuffer:(nonnull id<MTLBuffer>)buffer offset:(NSUInteger)offset attributeStride:(NSUInteger)stride atIndex:(NSUInteger)index;
MTLComputeCommandEncoder
- (void)setBuffers:(id<MTLBuffer> _Nullable const * _Nonnull)buffers offsets:(const NSUInteger * _Nonnull)offsets attributeStrides:(const NSUInteger * _Nonnull)strides withRange:(NSRange)range;
MTLComputeCommandEncoder
- (void)setBufferOffset:(NSUInteger)offset attributeStride:(NSUInteger)stride atIndex:(NSUInteger)index;
MTLComputeCommandEncoder
- (void)setBytes:(nonnull const void *)bytes length:(NSUInteger)length attributeStride:(NSUInteger)stride atIndex:(NSUInteger)index;
MTLIndirectRenderCommand
- (void)setVertexBuffer:(nonnull id<MTLBuffer>)buffer offset:(NSUInteger)offset attributeStride:(NSUInteger)stride atIndex:(NSUInteger)index;
MTLIndirectRenderCommand
- (void)setObjectThreadgroupMemoryLength:(NSUInteger)length atIndex:(NSUInteger)index;
MTLIndirectRenderCommand
- (void)setObjectBuffer:(nonnull id<MTLBuffer>)buffer offset:(NSUInteger)offset atIndex:(NSUInteger)index;
MTLIndirectRenderCommand
- (void)setMeshBuffer:(nonnull id<MTLBuffer>)buffer offset:(NSUInteger)offset atIndex:(NSUInteger)index;
MTLIndirectRenderCommand
- (void)drawMeshThreadgroups:(MTLSize)threadgroupsPerGrid threadsPerObjectThreadgroup:(MTLSize)threadsPerObjectThreadgroup threadsPerMeshThreadgroup:(MTLSize)threadsPerMeshThreadgroup;
MTLIndirectRenderCommand
- (void)drawMeshThreads:(MTLSize)threadsPerGrid threadsPerObjectThreadgroup:(MTLSize)threadsPerObjectThreadgroup threadsPerMeshThreadgroup:(MTLSize)threadsPerMeshThreadgroup;
MTLIndirectRenderCommand
- (void)setBarrier;
MTLIndirectRenderCommand
- (void)clearBarrier;
MTLIndirectComputeCommand
- (void)setKernelBuffer:(nonnull id<MTLBuffer>)buffer offset:(NSUInteger)offset attributeStride:(NSUInteger)stride atIndex:(NSUInteger)index;
MTLRenderCommandEncoder
- (void)setVertexBuffer:(nullable id<MTLBuffer>)buffer offset:(NSUInteger)offset attributeStride:(NSUInteger)stride atIndex:(NSUInteger)index;
MTLRenderCommandEncoder
- (void)setVertexBuffers:(id<MTLBuffer> _Nullable const * _Nonnull)buffers offsets:(const NSUInteger * _Nonnull)offsets attributeStrides:(const NSUInteger * _Nonnull)strides withRange:(NSRange)range;
MTLRenderCommandEncoder
- (void)setVertexBufferOffset:(NSUInteger)offset attributeStride:(NSUInteger)stride atIndex:(NSUInteger)index;
MTLRenderCommandEncoder
- (void)setVertexBytes:(nonnull const void *)bytes length:(NSUInteger)length attributeStride:(NSUInteger)stride atIndex:(NSUInteger)index;

Classes

MTLArchitecture
MTLAccelerationStructureCurveGeometryDescriptor
MTLAccelerationStructureMotionCurveGeometryDescriptor
MTLIndirectInstanceAccelerationStructureDescriptor

Typealiases

typedef struct MTLIndirectAccelerationStructureInstanceDescriptor MTLIndirectAccelerationStructureInstanceDescriptor
typedef struct MTLIndirectAccelerationStructureMotionInstanceDescriptor MTLIndirectAccelerationStructureMotionInstanceDescriptor

Properties & Constants

MTLDevice
@property(atomic, readonly, nonnull) MTLArchitecture *architecture;
MTLMeshRenderPipelineDescriptor
@property(nonatomic, assign, unsafe_unretained, readwrite) BOOL supportIndirectCommandBuffers;
MTLMeshRenderPipelineDescriptor
@property(nonatomic, copy, readwrite, null_resettable) MTLLinkedFunctions *objectLinkedFunctions;
MTLMeshRenderPipelineDescriptor
@property(nonatomic, copy, readwrite, null_resettable) MTLLinkedFunctions *meshLinkedFunctions;
MTLMeshRenderPipelineDescriptor
@property(nonatomic, copy, readwrite, null_resettable) MTLLinkedFunctions *fragmentLinkedFunctions;
static const NSUInteger MTLBufferLayoutStrideDynamic = (9223372036854775807L * 2UL + 1UL)
MTLIndirectCommandBufferDescriptor
@property(nonatomic, assign, unsafe_unretained, readwrite) NSUInteger maxKernelThreadgroupMemoryBindCount;
MTLIndirectCommandBufferDescriptor
@property(nonatomic, assign, unsafe_unretained, readwrite) NSUInteger maxObjectBufferBindCount;
MTLIndirectCommandBufferDescriptor
@property(nonatomic, assign, unsafe_unretained, readwrite) NSUInteger maxMeshBufferBindCount;
MTLIndirectCommandBufferDescriptor
@property(nonatomic, assign, unsafe_unretained, readwrite) NSUInteger maxObjectThreadgroupMemoryBindCount;
MTLIndirectCommandBufferDescriptor
@property(nonatomic, assign, unsafe_unretained, readwrite) BOOL supportDynamicAttributeStride;
static const NSUInteger MTLAttributeStrideStatic = (9223372036854775807L * 2UL + 1UL)