Metal is a low-level GPU API for rendering and compute on iOS, macOS, tvOS, and visionOS. You build command buffers, encode work through encoders such as MTL4ComputeCommandEncoder, and submit it on a MTL4CommandQueue using allocators and argument tables like MTL4CommandAllocator and MTL4ArgumentTable. For ray tracing and spatial queries, you describe geometry with acceleration-structure descriptors including MTL4PrimitiveAccelerationStructureDescriptor and MTL4AccelerationStructureTriangleGeometryDescriptor. Compilation types such as MTL4Compiler, MTL4BinaryFunction, and MTL4ComputePipelineDescriptor let you prepare functions and pipeline state for execution on the GPU.
Devices and Architecture 3
The GPU abstraction your app queries for capabilities and uses to create every other Metal object.
- PrMTLDeviceiOS 8.0+@protocol MTLDevice
- ClMTLArchitectureiOS 17.0+@class MTLArchitecture
- PrMTLAllocationiOS 18.0+Base class for Metal allocations.
Metal 4 Command Submission 8
The Metal 4 queue, buffers, allocators, and feedback types that record and submit GPU work.
- PrMTL4CommandQueueiOS 26.0+An abstraction representing a command queue that you use commit and synchronize command buffers and to
- ClMTL4CommandQueueDescriptoriOS 26.0+Groups together parameters for the creation of a new command queue.
- PrMTL4CommandBufferiOS 26.0+Records a sequence of GPU commands.
- ClMTL4CommandBufferOptionsiOS 26.0+Options to configure a command buffer before encoding work into it.
- PrMTL4CommandAllocatoriOS 26.0+Manages the memory backing the encoding of GPU commands into command buffers.
- ClMTL4CommandAllocatorDescriptoriOS 26.0+Groups together parameters for creating a command allocator.
- ClMTL4CommitOptionsiOS 26.0+Represents options to configure a commit operation on a command queue.
- PrMTL4CommitFeedbackiOS 26.0+Describes an object containing debug information from Metal to your app after completing a workload.
Metal 4 Command Encoders 4
Encoders that translate render, compute, and machine-learning commands into Metal 4 command buffers.
- PrMTL4CommandEncoderiOS 26.0+An encoder that writes GPU commands into a command buffer.
- PrMTL4RenderCommandEncoderiOS 26.0+Encodes a render pass into a command buffer, including all its draw calls and configuration.
- PrMTL4ComputeCommandEncoderiOS 26.0+Encodes a compute pass and other memory operations into a command buffer.
- PrMTL4MachineLearningCommandEncoderiOS 26.0+Encodes commands for dispatching machine learning networks on Apple silicon.
Metal 4 Argument Tables 2
Tables and descriptors that bind resources to functions in the Metal 4 encoding model.
- PrMTL4ArgumentTableiOS 26.0+Provides a mechanism to manage and provide resource bindings for buffers, textures, sampler states and other Metal resources.
- ClMTL4ArgumentTableDescriptoriOS 26.0+Groups parameters for the creation of a Metal argument table.
Metal 4 Compilation and Functions 16
Compiler, archive, and function types that prepare Metal 4 shaders and pipeline state for execution.
- PrMTL4CompileriOS 26.0+A abstraction for a pipeline state and shader function compiler.
- ClMTL4CompilerDescriptoriOS 26.0+Groups together properties for creating a compiler context.
- ClMTL4CompilerTaskOptionsiOS 26.0+The configuration options that control the behavior of a compilation task for a Metal 4 compiler instance.
- PrMTL4ArchiveiOS 26.0+A read-only container that stores pipeline states from a shader compiler.
- PrMTL4BinaryFunctioniOS 26.0+Represents a binary function.
- ClMTL4BinaryFunctionDescriptoriOS 26.0+Base interface for other function-derived interfaces.
- ClMTL4FunctionDescriptoriOS 26.0+Base interface for describing a Metal 4 shader function.
- ClMTL4LibraryDescriptoriOS 26.0+Serves as the base descriptor for creating a Metal library.
- ClMTL4LibraryFunctionDescriptoriOS 26.0+Describes a shader function from a Metal library.
- ClMTL4SpecializedFunctionDescriptoriOS 26.0+Groups together properties to configure and create a specialized function by passing it to a factory method.
- ClMTL4StitchedFunctionDescriptoriOS 26.0+Groups together properties that describe a shader function suitable for stitching.
- ClMTL4StaticLinkingDescriptoriOS 26.0+Groups together properties to drive a static linking process.
- ClMTL4PipelineStageDynamicLinkingDescriptoriOS 26.0+Groups together properties to drive the dynamic linking process of a pipeline stage.
- ClMTL4RenderPipelineDynamicLinkingDescriptoriOS 26.0+Groups together properties that provide linking properties for render pipelines.
- PrMTL4PipelineDataSetSerializeriOS 26.0+A fast-addition container for collecting data during pipeline state creation.
- ClMTL4PipelineDataSetSerializerDescriptoriOS 26.0+Groups together properties to create a pipeline data set serializer.
Metal 4 Pipeline State 13
Descriptors that configure Metal 4 compute, render, mesh, tile, and machine-learning pipeline state.
- ClMTL4PipelineDescriptoriOS 26.0+Base type for descriptors you use for building pipeline state objects.
- ClMTL4PipelineOptionsiOS 26.0+Provides options controlling how to compile a pipeline state.
- ClMTL4ComputePipelineDescriptoriOS 26.0+Describes a compute pipeline state.
- ClMTL4RenderPipelineDescriptoriOS 26.0+Groups together properties to create a render pipeline state object.
- ClMTL4RenderPipelineColorAttachmentDescriptoriOS 26.0+An object that configures a single color attachment of a Metal 4 render pipeline.
- ClMTL4RenderPipelineColorAttachmentDescriptorArrayiOS 26.0+An array of color attachment descriptions for a render pipeline.
- ClMTL4RenderPipelineBinaryFunctionsDescriptoriOS 26.0+Allows you to specify additional binary functions to link to each stage of a render pipeline.
- ClMTL4MeshRenderPipelineDescriptoriOS 26.0+Groups together properties you use to create a mesh render pipeline state object.
- ClMTL4TileRenderPipelineDescriptoriOS 26.0+Groups together properties you use to create a tile render pipeline state object.
- ClMTL4MachineLearningPipelineDescriptoriOS 26.0+Description for a machine learning pipeline state.
- ClMTL4MachineLearningPipelineReflectioniOS 26.0+Represents reflection information for a machine learning pipeline state.
- PrMTL4MachineLearningPipelineStateiOS 26.0+A pipeline state that you can use with machine-learning encoder instances.
- ClMTL4RenderPassDescriptoriOS 26.0+Describes a render pass.
Metal 4 Acceleration Structures 11
Descriptors that describe ray-tracing geometry and instances for Metal 4 acceleration structures.
- ClMTL4AccelerationStructureDescriptoriOS 26.0+Base class for Metal 4 acceleration structure descriptors.
- ClMTL4AccelerationStructureGeometryDescriptoriOS 26.0+Base class for all Metal 4 acceleration structure geometry descriptors.
- ClMTL4PrimitiveAccelerationStructureDescriptoriOS 26.0+Descriptor for a primitive acceleration structure that directly references geometric shapes, such as triangles and
- ClMTL4AccelerationStructureTriangleGeometryDescriptoriOS 26.0+Describes triangle geometry suitable for ray tracing.
- ClMTL4AccelerationStructureBoundingBoxGeometryDescriptoriOS 26.0+Describes bounding-box geometry suitable for ray tracing.
- ClMTL4AccelerationStructureMotionTriangleGeometryDescriptoriOS 26.0+Describes motion triangle geometry, suitable for motion ray tracing.
- ClMTL4AccelerationStructureMotionBoundingBoxGeometryDescriptoriOS 26.0+Describes motion bounding box geometry, suitable for motion ray tracing.
- ClMTL4AccelerationStructureCurveGeometryDescriptoriOS 26.0+Describes curve geometry suitable for ray tracing.
- ClMTL4AccelerationStructureMotionCurveGeometryDescriptoriOS 26.0+Describes motion curve geometry, suitable for motion ray tracing.
- ClMTL4InstanceAccelerationStructureDescriptoriOS 26.0+Descriptor for an instance acceleration structure.
- ClMTL4IndirectInstanceAccelerationStructureDescriptoriOS 26.0+Descriptor for an "indirect" instance acceleration structure that allows providing the instance count and
Command Queues and Buffers 8
The queues, command buffers, and encoder protocols that record and submit GPU work in Metal.
- PrMTLCommandQueueiOS 8.0+@protocol MTLCommandQueue
- ClMTLCommandQueueDescriptoriOS 18.0+An object that configures the properties of a command queue before you create it.
- PrMTLCommandBufferiOS 8.0+@protocol MTLCommandBuffer
- ClMTLCommandBufferDescriptoriOS 14.0+@class MTLCommandBufferDescriptor
- PrMTLCommandBufferEncoderInfoiOS 14.0+@abstract Provides execution status information for a Metal command encoder.
- PrMTLCommandEncoderiOS 8.0+@protocol MTLCommandEncoder
- ClMTLIOCommandQueueDescriptoriOS 16.0+@interface MTLIOCommandQueueDescriptor
- ClMTLIndirectCommandBufferDescriptoriOS 12.0+@abstract
Render Command Encoding 9
Render pass descriptors and attachment types that configure how Metal draws into render targets.
- ClMTLRenderPassDescriptoriOS 8.0+@class MTLRenderPassDescriptor
- ClMTLRenderPassAttachmentDescriptoriOS 8.0+A base object that describes a single attachment of a render pass.
- ClMTLRenderPassColorAttachmentDescriptoriOS 8.0+An object that describes a color attachment and its load and store actions for a render pass.
- ClMTLRenderPassColorAttachmentDescriptorArrayiOS 8.0+An indexed collection of color attachment descriptors for a render pass.
- ClMTLRenderPassDepthAttachmentDescriptoriOS 8.0+An object that describes the depth attachment and its actions for a render pass.
- ClMTLRenderPassStencilAttachmentDescriptoriOS 8.0+An object that describes the stencil attachment and its actions for a render pass.
- ClMTLRenderPassSampleBufferAttachmentDescriptoriOS 14.0+An object that describes a sample buffer attachment for capturing counters during a render pass.
- ClMTLRenderPassSampleBufferAttachmentDescriptorArrayiOS 14.0+An indexed collection of sample buffer attachment descriptors for a render pass.
- ClMTLLogicalToPhysicalColorAttachmentMapiOS 26.0+Allows you to easily specify color attachment remapping from logical to physical indices.
Compute, Blit, and Resource-State Passes 11
Encoder protocols and pass descriptors for compute, blit, and resource-state work outside of rendering.
- PrMTLComputeCommandEncoderiOS 8.0+@protocol MTLComputeCommandEncoder
- ClMTLComputePassDescriptoriOS 14.0+@class MTLComputePassDescriptor
- ClMTLComputePassSampleBufferAttachmentDescriptoriOS 14.0+An object that describes a sample buffer attachment for capturing counters during a compute pass.
- ClMTLComputePassSampleBufferAttachmentDescriptorArrayiOS 14.0+An indexed collection of sample buffer attachment descriptors for a compute pass.
- PrMTLBlitCommandEncoderiOS 8.0+@protocol MTLBlitCommandEncoder
- ClMTLBlitPassDescriptoriOS 14.0+@class MTLBlitPassDescriptor
- ClMTLBlitPassSampleBufferAttachmentDescriptoriOS 14.0+An object that describes a sample buffer attachment for capturing counters during a blit pass.
- ClMTLBlitPassSampleBufferAttachmentDescriptorArrayiOS 14.0+An indexed collection of sample buffer attachment descriptors for a blit pass.
- ClMTLResourceStatePassDescriptoriOS 14.0+@class MTLResourceStatePassDescriptor
- ClMTLResourceStatePassSampleBufferAttachmentDescriptoriOS 14.0+An object that describes a sample buffer attachment for capturing counters during a resource-state pass.
- ClMTLResourceStatePassSampleBufferAttachmentDescriptorArrayiOS 14.0+An indexed collection of sample buffer attachment descriptors for a resource-state pass.
Render Pipeline State 9
Descriptors and reflection types that configure and inspect Metal render, mesh, and tile pipelines.
- ClMTLRenderPipelineDescriptoriOS 8.0+An object that configures a graphics render pipeline state before you create it.
- ClMTLRenderPipelineReflectioniOS 8.0+An object that describes the buffers, textures, and arguments of a render pipeline.
- ClMTLRenderPipelineFunctionsDescriptoriOS 15.0+An object that lists additional functions to link into a render pipeline.
- ClMTLRenderPipelineColorAttachmentDescriptoriOS 8.0+An object that configures a single color attachment, including blending, of a render pipeline.
- ClMTLRenderPipelineColorAttachmentDescriptorArrayiOS 8.0+An indexed collection of color attachment descriptors for a render pipeline.
- ClMTLMeshRenderPipelineDescriptoriOS 16.0+@class MTLMeshRenderPipelineDescriptor
- ClMTLTileRenderPipelineDescriptoriOS 11.0+An object that configures a tile render pipeline state for tile shading.
- ClMTLTileRenderPipelineColorAttachmentDescriptoriOS 11.0+An object that configures a single color attachment of a tile render pipeline.
- ClMTLTileRenderPipelineColorAttachmentDescriptorArrayiOS 11.0+An indexed collection of color attachment descriptors for a tile render pipeline.
Compute Pipeline State 3
Descriptors and reflection types that configure and inspect Metal compute pipeline state.
- ClMTLComputePipelineDescriptoriOS 9.0+An object that configures a compute pipeline state before you create it.
- ClMTLComputePipelineReflectioniOS 8.0+An object that describes the buffers, textures, and arguments of a compute pipeline.
- PrMTLComputePipelineStateiOS 8.0+@protocol MTLComputePipelineState
Depth, Stencil, and Sampler State 4
Descriptors and state objects that configure depth testing, stencil operations, and texture sampling.
- ClMTLDepthStencilDescriptoriOS 8.0+An object that configures depth and stencil testing before you create a depth-stencil state.
- ClMTLStencilDescriptoriOS 8.0+An object that configures the stencil test operations for one face of geometry.
- PrMTLDepthStencilStateiOS 8.0+A protocol for a compiled depth and stencil state you set on a render encoder.
- ClMTLSamplerDescriptoriOS 8.0+@class MTLSamplerDescriptor
Shader Compilation and Functions 14
Compile options, function descriptors, and stitching types that build and link Metal shader functions.
- ClMTLCompileOptionsiOS 8.0+An object that configures how Metal compiles shader source into a library.
- ClMTLFunctionDescriptoriOS 14.0+An object that identifies a function and its specialization within a shader library.
- ClMTLIntersectionFunctionDescriptoriOS 14.0+An object that identifies a custom intersection function for ray tracing.
- PrMTLFunctionHandleiOS 14.0+A protocol for a reference to a function usable from a function table during ray tracing.
- ClMTLFunctionReflectioniOS 26.0+Represents a reflection object containing information about a function in a Metal library.
- ClMTLFunctionConstantiOS 10.0+@interface MTLFunctionConstant
- ClMTLFunctionConstantValuesiOS 10.0+An object that holds the constant values used to specialize a shader function at build time.
- ClMTLLinkedFunctionsiOS 14.0+@class MTLLinkedFunctions
- PrMTLDynamicLibraryiOS 14.0+@protocol MTLDynamicLibrary
- ClMTLFunctionStitchingGraphiOS 15.0+@interface MTLFunctionStitchingGraph
- ClMTLFunctionStitchingInputNodeiOS 15.0+@interface MTLFunctionStitchingInputNode
- ClMTLFunctionStitchingFunctionNodeiOS 15.0+@interface MTLFunctionStitchingFunctionNode
- ClMTLFunctionStitchingAttributeAlwaysInlineiOS 15.0+@interface MTLFunctionStitchingAttributeAlwaysInline
- ClMTLStitchedLibraryDescriptoriOS 15.0+@interface MTLStitchedLibraryDescriptor
Binary Archives and Logging 4
Archives that cache compiled pipelines plus descriptors and containers for GPU shader logging.
- PrMTLBinaryArchiveiOS 14.0+@protocol MTLBinaryArchive
- ClMTLBinaryArchiveDescriptoriOS 14.0+@class MTLBinaryArchiveDescriptor
- ClMTLLogStateDescriptoriOS 18.0+An object that configures a log state for capturing GPU shader log messages.
- Pr__MTLLogContaineriOS 14.0+A protocol for a container that delivers log messages produced by GPU shaders.
Resources and Memory 6
Buffers, heaps, residency sets, and resource views that allocate and manage GPU memory.
- PrMTLBufferiOS 8.0+@protocol MTLBuffer
- ClMTLHeapDescriptoriOS 10.0+@class MTLHeapDescriptor
- ClMTLResidencySetDescriptoriOS 18.0+@interface MTLResidencySetDescriptor
- ClMTLResourceViewPoolDescriptoriOS 26.0+Provides parameters for creating a resource view pool.
- ClMTLPipelineBufferDescriptoriOS 11.0+An object that configures the mutability and behavior of a buffer bound to a pipeline.
- ClMTLPipelineBufferDescriptorArrayiOS 11.0+An indexed collection of pipeline buffer descriptors.
Textures and Drawables 4
Texture descriptors, drawables, and shared handles that create and present image resources.
- ClMTLTextureDescriptoriOS 8.0+An object that configures the dimensions, format, and usage of a texture before you create it.
- ClMTLTextureViewDescriptoriOS 26.0+An object that configures a reinterpreted view of an existing texture.
- ClMTLSharedTextureHandleiOS 13.0+An object that references a texture shared across processes or devices.
- PrMTLDrawableiOS 8.0+@protocol MTLDrawable
Tensors 5
Descriptors and extents that define multidimensional tensor resources for machine-learning workloads.
- ClMTLTensorDescriptoriOS 26.0+A configuration type for creating new tensor instances.
- ClMTLTensorExtentsiOS 26.0+An array of length matching the rank, holding the dimensions of a tensor.
- ClMTLTensorAuxiliaryPlaneDescriptoriOS 27.0+A configuration for an auxiliary plane in a multi-plane tensor.
- ClMTLTensorAuxiliaryPlaneDescriptorMapiOS 27.0+A map of auxiliary plane descriptors keyed by plane type.
- ClMTLTensorBufferAttachmentsiOS 27.0+Per-plane buffer backing storage for multi-plane tensor creation.
Vertex and Stage Layout 12
Descriptors that lay out vertex attributes and stage input and output for the graphics pipeline.
- ClMTLVertexDescriptoriOS 8.0+An object that describes the layout of vertex data fed into a render pipeline.
- ClMTLVertexAttributeiOS 8.0+An object that describes a single vertex attribute declared in a shader.
- ClMTLVertexAttributeDescriptoriOS 8.0+An object that maps a vertex attribute to its format and buffer offset.
- ClMTLVertexAttributeDescriptorArrayiOS 8.0+An indexed collection of vertex attribute descriptors.
- ClMTLVertexBufferLayoutDescriptoriOS 8.0+An object that describes the stride and step behavior of a vertex buffer.
- ClMTLVertexBufferLayoutDescriptorArrayiOS 8.0+An indexed collection of vertex buffer layout descriptors.
- ClMTLAttributeiOS 10.0+An object that describes a per-patch or stage input or output attribute of a shader.
- ClMTLAttributeDescriptoriOS 10.0+An object that maps a stage input attribute to its format and buffer offset.
- ClMTLAttributeDescriptorArrayiOS 10.0+An indexed collection of stage input attribute descriptors.
- ClMTLBufferLayoutDescriptoriOS 10.0+An object that describes the stride and step behavior of a stage input buffer.
- ClMTLBufferLayoutDescriptorArrayiOS 10.0+An indexed collection of stage input buffer layout descriptors.
- ClMTLStageInputOutputDescriptoriOS 10.0+An object that describes the input and output layout of a compute or tessellation stage.
Argument Binding and Reflection 17
Encoders, bindings, and shader type descriptions that bind resources and reflect on shader arguments.
- PrMTLArgumentEncoderiOS 11.0+@protocol MTLArgumentEncoder
- ClMTLArgumentDescriptoriOS 11.0+@class MTLArgumentDescriptor
- ClMTLArgumentMTLArgument
- PrMTLBindingiOS 16.0+A protocol that describes a resource binding of a shader function.
- PrMTLBufferBindingiOS 16.0+A protocol that describes a buffer binding of a shader function.
- PrMTLTextureBindingiOS 16.0+A protocol that describes a texture binding of a shader function.
- PrMTLThreadgroupBindingiOS 16.0+A protocol that describes a threadgroup memory binding of a shader function.
- PrMTLObjectPayloadBindingiOS 16.0+A protocol that describes an object-payload binding in a mesh shader pipeline.
- PrMTLTensorBindingiOS 26.0+An object that represents a tensor bound to a graphics or compute function or a machine learning function.
- ClMTLTypeiOS 11.0+A base object that describes the type of a shader argument or struct member.
- ClMTLStructTypeiOS 8.0+An object that describes a structure type and its members in a shader.
- ClMTLStructMemberiOS 8.0+An object that describes a single member of a shader structure type.
- ClMTLArrayTypeiOS 8.0+An object that describes an array type within a shader argument.
- ClMTLPointerTypeiOS 11.0+An object that describes a pointer type within a shader argument.
- ClMTLTextureReferenceTypeiOS 11.0+An object that describes a texture reference type within a shader argument.
- ClMTLTensorReferenceTypeiOS 26.0+An object that represents a tensor in the shading language in a struct or array.
- ClMTLTensorAuxiliaryPlaneTypeiOS 27.0+An auxiliary plane that a shader's tensor argument requires.
Acceleration Structures and Ray Tracing 19
Acceleration structures, encoders, and geometry descriptors that build ray-tracing data on the GPU.
- PrMTLAccelerationStructureiOS 14.0+A protocol for a GPU resource holding geometry data the hardware uses to accelerate ray tracing.
- PrMTLAccelerationStructureCommandEncoderiOS 14.0+A protocol for encoding commands that build, refit, and copy acceleration structures.
- ClMTLAccelerationStructureDescriptoriOS 14.0+@brief Base class for acceleration structure descriptors. Do not use this class directly. Use
- ClMTLAccelerationStructureGeometryDescriptoriOS 14.0+@brief Base class for all geometry descriptors. Do not use this class directly. Use one of the derived
- ClMTLPrimitiveAccelerationStructureDescriptoriOS 14.0+@brief Descriptor for a primitive acceleration structure
- ClMTLAccelerationStructureTriangleGeometryDescriptoriOS 14.0+@brief Descriptor for triangle geometry
- ClMTLAccelerationStructureBoundingBoxGeometryDescriptoriOS 14.0+@brief Descriptor for bounding box geometry
- ClMTLAccelerationStructureMotionTriangleGeometryDescriptoriOS 15.0+@brief Descriptor for motion triangle geometry
- ClMTLAccelerationStructureMotionBoundingBoxGeometryDescriptoriOS 15.0+@brief Descriptor for motion bounding box geometry
- ClMTLAccelerationStructureCurveGeometryDescriptoriOS 17.0+@brief Acceleration structure geometry descriptor describing geometry
- ClMTLAccelerationStructureMotionCurveGeometryDescriptoriOS 17.0+@brief Acceleration structure motion geometry descriptor describing
- ClMTLInstanceAccelerationStructureDescriptoriOS 14.0+@brief Descriptor for an instance acceleration structure
- ClMTLIndirectInstanceAccelerationStructureDescriptoriOS 17.0+@brief Descriptor for an instance acceleration structure built with an indirected buffer of instances.
- ClMTLMotionKeyframeDataiOS 15.0+@brief MTLbuffer and description how the data is stored in it.
- ClMTLAccelerationStructurePassDescriptoriOS 16.0+@class MTLAccelerationStructurePassDescriptor
- ClMTLAccelerationStructurePassSampleBufferAttachmentDescriptoriOS 16.0+An object that describes a sample buffer attachment for an acceleration-structure pass.
- ClMTLAccelerationStructurePassSampleBufferAttachmentDescriptorArrayiOS 16.0+An indexed collection of sample buffer attachment descriptors for an acceleration-structure pass.
- ClMTLIntersectionFunctionTableDescriptoriOS 14.0+An object that configures a table of intersection functions for ray tracing.
- ClMTLVisibleFunctionTableDescriptoriOS 14.0+An object that configures a table of visible functions callable from shaders.
Synchronization 5
Events, fences, and listeners that coordinate ordering between GPU and CPU work.
- PrMTLEventiOS 12.0+A protocol for an object that synchronizes execution between command buffers on the GPU.
- PrMTLSharedEventiOS 12.0+A protocol for an event that synchronizes work across processes, devices, or the CPU.
- ClMTLSharedEventHandleiOS 12.0+An object that references a shared event for use across process boundaries.
- ClMTLSharedEventListeneriOS 12.0+@class MTLSharedEventListener
- PrMTLFenceiOS 10.0+A protocol for a lightweight object that tracks resource dependencies within a command buffer.
GPU Counters and Profiling 6
Counter sets, sample buffers, and heaps that capture GPU performance and timing data.
- PrMTLCounteriOS 14.0+@protocol MTLCounter
- PrMTLCounterSetiOS 14.0+@protocol MTLCounterSet
- PrMTLCounterSampleBufferiOS 14.0+@protocol MTLCounterSampleBuffer
- ClMTLCounterSampleBufferDescriptoriOS 14.0+@interface MTLCounterSampleBufferDescriptor
- PrMTL4CounterHeapiOS 26.0+Represents an opaque, driver-controlled section of memory that can store GPU counter data.
- ClMTL4CounterHeapDescriptoriOS 26.0+Groups together parameters for configuring a counter heap object at creation time.
GPU Capture and Debugging 3
Managers and scopes that capture GPU command streams for inspection in debugging tools.
- ClMTLCaptureManageriOS 11.0+An object that starts and stops GPU command capture for inspection in debugging tools.
- ClMTLCaptureDescriptoriOS 13.0+An object that configures a GPU capture, including its scope and destination.
- PrMTLCaptureScopeiOS 11.0+A protocol that defines the boundaries of a GPU capture region.
Variable Rasterization Rate 4
Descriptors and arrays that map screen regions to reduced rasterization rates for foveated rendering.
- ClMTLRasterizationRateMapDescriptoriOS 13.0+@interface MTLRasterizationRateMapDescriptor
- ClMTLRasterizationRateLayerDescriptoriOS 13.0+@interface MTLRasterizationRateLayerDescriptor
- ClMTLRasterizationRateLayerArrayiOS 13.0+@interface MTLRasterizationRateLayerArray
- ClMTLRasterizationRateSampleArrayiOS 13.0+@interface MTLRasterizationRateSampleArray
Structures 80
- StMTL4BinaryFunctionOptionsiOS 26.0+Options for configuring the creation of binary functions.
- StMTL4BufferRange@brief A struct representing a range of a Metal buffer. The offset into the buffer is included in the address.
- StMTL4VisibilityOptionsiOS 26.0+Memory consistency options for synchronization commands.
- StMTL4CommandQueueErroriOS 26.0+
- StMTL4UpdateSparseTextureMappingOperationiOS 26.0+Groups together arguments for an operation to update a sparse texture mapping.
- StMTL4CopySparseTextureMappingOperationiOS 26.0+Groups together arguments for an operation to copy a sparse texture mapping.
- StMTL4UpdateSparseBufferMappingOperationiOS 26.0+Groups together arguments for an operation to update a sparse buffer mapping.
- StMTL4CopySparseBufferMappingOperationiOS 26.0+Groups together arguments for an operation to copy a sparse buffer mapping.
- StMTL4TimestampHeapEntryiOS 26.0+Represents a timestamp data entry in a counter heap of type `MTL4CounterHeapTypeTimestamp`.
- StMTL4PipelineDataSetSerializerConfigurationiOS 26.0+Configuration options for pipeline dataset serializer objects.
- StMTL4ShaderReflectioniOS 26.0+Option mask for requesting reflection information at pipeline build time.
- StMTL4RenderEncoderOptionsiOS 26.0+Custom render pass options you specify at encoder creation time.
- StMTLAccelerationStructureRefitOptionsiOS 16.0+@enum MTLAccelerationStructureRefitOptions
- StMTLAccelerationStructureUsageiOS 14.0+
- StMTLAccelerationStructureInstanceOptionsiOS 14.0+
- StMTLAccelerationStructureInstanceDescriptoriOS 14.0+
Show 64 more
- StMTLAccelerationStructureUserIDInstanceDescriptoriOS 15.0+
- StMTLAccelerationStructureMotionInstanceDescriptoriOS 15.0+
- StMTLIndirectAccelerationStructureInstanceDescriptoriOS 17.0+
- StMTLIndirectAccelerationStructureMotionInstanceDescriptoriOS 17.0+
- St_MTLPackedFloat3
- StMTLPackedFloatQuaternion
- St_MTLPackedFloat4x3
- St_MTLAxisAlignedBoundingBox@brief An axis aligned bounding box with a min and max point
- StMTLComponentTransform@brief A transformation represented by individual components such as translation and
- StMTLBinaryArchiveErroriOS 14.0+
- StMTLBlitOptioniOS 9.0+@enum MTLBlitOption
- StMTLCommandBufferErroriOS 8.0+
- StMTLCommandBufferErrorOptioniOS 14.0+@abstract Options for controlling the error reporting for Metal command buffer objects.
- StMTLResourceUsageiOS 11.0+@brief Describes how a resource will be used by a shader through an argument buffer
- StMTLBarrierScopeiOS 12.0+@brief Describes the types of resources that the a barrier operates on
- StMTLStagesiOS 26.0+Describes stages of GPU work.
- StMTLDispatchThreadgroupsIndirectArguments
- StMTLDispatchThreadsIndirectArguments
- StMTLStageInRegionIndirectArgumentsiOS 12.0+
- StMTLCommonCounteriOS 14.0+@enum MTLCommonCounter
- StMTLCommonCounterSetiOS 14.0+@enum MTLCommonCounterSet
- StMTLCounterResultTimestampiOS 14.0+
- StMTLCounterResultStageUtilizationiOS 14.0+
- StMTLCounterResultStatisticiOS 14.0+
- StMTLCounterSampleBufferErroriOS 14.0+
- StMTLPipelineOptioniOS 8.0+@enum MTLPipelineOption
- StMTLAccelerationStructureSizes@brief Describes the memory requirements for an acceleration structure
- StMTLDeviceErroriOS 26.4+
- StMTLSizeAndAlign@abstract Represent a memory size and alignment in bytes.
- StNSDeviceCertificationiOS 18.0+
- StNSProcessPerformanceProfileiOS 18.0+
- StMTLDynamicLibraryErroriOS 14.0+
- StMTLFunctionOptionsiOS 14.0+
- StMTLStitchedLibraryOptionsiOS 18.0+@abstract
- StMTLIOErroriOS 16.0+
- StMTLIndirectCommandTypeiOS 12.0+@abstract
- StMTLIndirectCommandBufferExecutionRangeiOS 13.0+@abstract The data layout required for specifying an indirect command buffer execution range.
- StMTLIntersectionFunctionBufferArguments@brief struct containing arguments for intersection function buffers.
- StMTLIntersectionFunctionSignatureiOS 14.0+@brief Signature defining what data is provided to an intersection function. The signature
- StMTLLibraryErroriOS 8.0+
- StMTLScissorRect
- StMTLViewport
- StMTLDrawPrimitivesIndirectArguments
- StMTLDrawIndexedPrimitivesIndirectArguments
- StMTLVertexAmplificationViewMappingiOS 13.0+
- StMTLDrawPatchIndirectArguments
- StMTLQuadTessellationFactorsHalf
- StMTLTriangleTessellationFactorsHalf
- StMTLRenderStagesiOS 10.0+@abstract Generic render stage enum
- StMTLClearColor
- StMTLStoreActionOptionsiOS 11.0+
- StMTLColorWriteMaskiOS 8.0+
- StMTLResourceOptionsiOS 8.0+
- StMTLMapIndirectArguments@enum MTLMapIndirectArguments
- StMTLTensorErroriOS 26.0+
- StMTLTensorUsageiOS 26.0+The type that represents the different contexts for a tensor.
- StMTLTextureSwizzleChannelsiOS 13.0+
- StMTLTextureUsageiOS 9.0+@enum MTLTextureUsage
- StMTLOrigin@struct MTLOrigin
- StMTLSize@typedef MTLSize
- StMTLRegion@struct MTLRegion
- StMTLSamplePosition@struct MTLSamplePosition
- StMTLResourceIDiOS 16.0+@typedef MTLResourceID
- StMTLLogContaineriOS 14.0+
Enumerations 93
- EnMTL4CompilerTaskStatusiOS 26.0+Represents the status of a compiler task.
- EnMTL4CounterHeapTypeiOS 26.0+Defines the type of a ``MTL4CounterHeap`` and the contents of its entries.
- EnMTL4TimestampGranularityiOS 26.0+Provides a hint to the system about the desired accuracy when writing GPU counter timestamps.
- EnMTL4AlphaToOneStateiOS 26.0+Enumeration for controlling alpha-to-one state of a pipeline state object.
- EnMTL4AlphaToCoverageStateiOS 26.0+Enumeration for controlling alpha-to-coverage state of a pipeline state object.
- EnMTL4BlendStateiOS 26.0+Enumeration for controlling the blend state of a pipeline state object.
- EnMTL4IndirectCommandBufferSupportStateiOS 26.0+Enumeration for controlling support for ``MTLIndirectCommandBuffer``.
- EnMTL4LogicalToPhysicalColorAttachmentMappingStateiOS 26.0+Enumerates possible behaviors of how a pipeline maps its logical outputs to its color attachments.
- EnMTLMatrixLayoutiOS 18.0+
- EnMTLMotionBorderModeiOS 15.0+@brief Describes what happens to the object before the first motion key and after the last
- EnMTLCurveTypeiOS 17.0+@brief Curve types
- EnMTLCurveBasisiOS 17.0+@brief Basis function to use to interpolate curve control points
- EnMTLCurveEndCapsiOS 17.0+@brief Type of end cap to insert at the beginning and end of each connected
- EnMTLAccelerationStructureInstanceDescriptorTypeiOS 15.0+
- EnMTLTransformTypeiOS 18.0+
- EnMTLIndexTypeiOS 8.0+
Show 77 more
- EnMTLBindingTypeiOS 14.0+@enum MTLBindingsType
- EnMTLArgumentType@enum MTLArgumentType
- EnMTLBindingAccess
- EnMTLCaptureErroriOS 13.0+
- EnMTLCaptureDestinationiOS 13.0+The destination where you want the GPU trace to be captured to.
- EnMTLCommandBufferStatusiOS 8.0+@enum MTLCommandBufferStatus
- EnMTLCommandEncoderErrorStateiOS 14.0+@abstract The error states for a Metal command encoder after command buffer execution.
- EnMTLDispatchTypeiOS 12.0+@enum MTLDispatchType
- EnMTLDataTypeiOS 8.0+An enumeration of the different data types in Metal.
- EnMTLCompareFunctioniOS 8.0+
- EnMTLStencilOperationiOS 8.0+
- EnMTLIOCompressionMethod
- EnMTLFeatureSet
- EnMTLGPUFamilyiOS 13.0+
- EnMTLReadWriteTextureTieriOS 11.0+@enum MTLReadWriteTextureTier
- EnMTLArgumentBuffersTieriOS 11.0+@enum MTLArgumentBuffersTier
- EnMTLSparseTextureRegionAlignmentModeiOS 13.0+@enum MTLSparseTextureRegionAlignmentMode
- EnMTLCounterSamplingPointiOS 14.0+@enum MTLCounterSamplingPoint
- EnMTLFunctionLogTypeiOS 14.0+
- EnMTLHeapTypeiOS 13.0+@enum MTLHeapType
- EnMTLIOStatusiOS 16.0+
- EnMTLIOPriorityiOS 16.0+
- EnMTLIOCommandQueueTypeiOS 16.0+
- EnMTLIOCompressionStatusiOS 16.0+
- EnMTLPatchTypeiOS 10.0+
- EnMTLFunctionTypeiOS 8.0+@enum MTLFunctionType
- EnMTLLanguageVersioniOS 9.0+
- EnMTLLibraryTypeiOS 14.0+
- EnMTLLibraryOptimizationLeveliOS 16.0+@enum MTLLibraryOptimizationLevel
- EnMTLCompileSymbolVisibilityiOS 16.4+
- EnMTLMathMode@enum MTLMathMode
- EnMTLMathFloatingPointFunctions@enum MTLMathFloatingPointFunctions
- EnMTLLogLeveliOS 18.0+@enum MTLLogLevel
- EnMTLLogStateErroriOS 18.0+@enum
- EnMTLMutabilityiOS 11.0+@enum MTLMutability
- EnMTLShaderValidationiOS 18.0+
- EnMTLPixelFormatiOS 8.0+
- EnMTLPrimitiveTypeiOS 8.0+
- EnMTLVisibilityResultModeiOS 8.0+
- EnMTLCullModeiOS 8.0+
- EnMTLWindingiOS 8.0+
- EnMTLDepthClipModeiOS 9.0+
- EnMTLTriangleFillModeiOS 8.0+
- EnMTLLoadActioniOS 8.0+
- EnMTLStoreActioniOS 8.0+
- EnMTLVisibilityResultTypeiOS 26.0+This enumeration controls if Metal accumulates visibility results between render encoders or resets them.
- EnMTLMultisampleDepthResolveFilteriOS 9.0+@enum MTLMultisampleDepthResolveFilter
- EnMTLMultisampleStencilResolveFilteriOS 12.0+@enum MTLMultisampleStencilResolveFilter
- EnMTLBlendFactoriOS 8.0+
- EnMTLBlendOperationiOS 8.0+
- EnMTLPrimitiveTopologyClassiOS 12.0+
- EnMTLTessellationPartitionModeiOS 10.0+
- EnMTLTessellationFactorStepFunctioniOS 10.0+
- EnMTLTessellationFactorFormatiOS 10.0+
- EnMTLTessellationControlPointIndexTypeiOS 10.0+
- EnMTLPurgeableStateiOS 8.0+@enum MTLPurgeableOption
- EnMTLCPUCacheModeiOS 8.0+@enum MTLCPUCacheMode
- EnMTLStorageModeiOS 9.0+@enum MTLStorageMode
- EnMTLHazardTrackingModeiOS 13.0+@enum MTLHazardTrackingMode
- EnMTLSparsePageSizeiOS 16.0+@enum MTLSparsePageSize
- EnMTLBufferSparseTieriOS 26.0+Enumerates the different support levels for sparse buffers.
- EnMTLTextureSparseTieriOS 26.0+Enumerates the different support levels for sparse textures.
- EnMTLSparseTextureMappingModeiOS 13.0+@enum MTLSparseTextureMappingMode
- EnMTLSamplerMinMagFilteriOS 8.0+@enum MTLSamplerMinMagFilter
- EnMTLSamplerMipFilteriOS 8.0+@enum MTLSamplerMipFilter
- EnMTLSamplerAddressModeiOS 8.0+@enum MTLSamplerAddressMode
- EnMTLSamplerBorderColoriOS 14.0+@enum MTLSamplerBorderColor
- EnMTLSamplerReductionModeiOS 26.0+Configures how the sampler aggregates contributing samples to a final value.
- EnMTLAttributeFormatiOS 10.0+
- EnMTLStepFunctioniOS 10.0+
- EnMTLTensorDataTypeiOS 26.0+The possible data types for the elements of a tensor.
- EnMTLTensorPlaneTypeiOS 27.0+The possible tensor plane types.
- EnMTLTextureTypeiOS 8.0+@enum MTLTextureType
- EnMTLTextureSwizzleiOS 13.0+
- EnMTLTextureCompressionTypeiOS 15.0+
- EnMTLVertexFormatiOS 8.0+@enum MTLVertexFormat
- EnMTLVertexStepFunctioniOS 8.0+
Protocols 31
- PrMTLFunctionLogDebugLocationiOS 14.0+
- PrMTLFunctionLogiOS 14.0+
- PrMTLFunctionStitchingAttributeiOS 15.0+@protocol MTLFunctionStitchingAttribute
- PrMTLFunctionStitchingNodeiOS 15.0+@protocol MTLFunctionStitchingNode
- PrMTLHeapiOS 10.0+@protocol MTLHeap
- PrMTLIOCommandBufferiOS 16.0+@protocol MTLIOCommandBuffer
- PrMTLIOCommandQueueiOS 16.0+@protocol MTLIOCommandQueue
- PrMTLIOScratchBufferiOS 16.0+@protocol MTLIOScratchBuffer
- PrMTLIOScratchBufferAllocatoriOS 16.0+@protocol MTLIOScratchBufferAllocator
- PrMTLIOFileHandleiOS 16.0+@protocol MTLIOFileHandle
- PrMTLIndirectCommandBufferiOS 12.0+
- PrMTLIndirectRenderCommandiOS 12.0+
- PrMTLIndirectComputeCommandiOS 13.0+
- PrMTLIntersectionFunctionTableiOS 14.0+
- PrMTLFunctioniOS 8.0+@protocol MTLFunction
- PrMTLLibraryiOS 8.0+
Show 15 more
- PrMTLLogStateiOS 18.0+
- PrMTLParallelRenderCommandEncoderiOS 8.0+@protocol MTLParallelRenderCommandEncoder
- PrMTLRasterizationRateMapiOS 13.0+@protocol MTLRasterizationRateMap
- PrMTLRenderCommandEncoderiOS 8.0+@protocol MTLRenderCommandEncoder
- PrMTLRenderPipelineStateiOS 8.0+@protocol MTLRenderPipelineState
- PrMTLResidencySetiOS 18.0+@protocol MTLResidencySet
- PrMTLResourceiOS 8.0+@protocol MTLResource
- PrMTLResourceStateCommandEncoderiOS 13.0+
- PrMTLResourceViewPooliOS 26.0+Contains views over resources of a specific type, and allows you to manage those views.
- PrMTLSamplerStateiOS 8.0+@protocol MTLSamplerState
- PrMTLTensorAuxiliaryPlaneiOS 27.0+A type that represents the configuration and storage of an auxiliary plane in a multi-plane tensor.
- PrMTLTensoriOS 26.0+A resource representing a multi-dimensional array that you can use with machine learning workloads.
- PrMTLTextureiOS 8.0+@protocol MTLTexture
- PrMTLTextureViewPooliOS 26.0+A pool of lightweight texture views.
- PrMTLVisibleFunctionTableiOS 14.0+
Type Aliases 24
- TyMTL4CommitFeedbackHandlerDefines the block signature for a callback Metal invokes to provide your app feedback after completing a workload.
- TyMTL4NewBinaryFunctionCompletionHandlerProvides a signature for a callback block that Metal calls when the compiler finishes a build task for a binary function.
- TyMTL4NewMachineLearningPipelineStateCompletionHandlerProvides a signature for a callback block that Metal calls when the compiler finishes a build task for a machine learning pipeline state.
- TyMTLPackedFloat3
- TyMTLPackedFloat4x3
- TyMTLAxisAlignedBoundingBox@brief An axis aligned bounding box with a min and max point
- TyMTLArgumentAccess
- TyMTLCommandBufferHandler
- TyMTLTimestamp
- TyMTLDrawablePresentedHandler@typedef MTLDrawablePresentedHandler
- TyMTLSharedEventNotificationBlock
- TyMTLGPUAddressA 64-bit unsigned integer type appropriate for storing GPU addresses.
- TyMTLIOCommandBufferHandler
- TyMTLIOCompressionContext
- TyMTLAutoreleasedRenderPipelineReflection
- TyMTLAutoreleasedComputePipelineReflection
Show 8 more
- TyMTLNewLibraryCompletionHandler
- TyMTLNewRenderPipelineStateCompletionHandler
- TyMTLNewRenderPipelineStateWithReflectionCompletionHandler
- TyMTLNewComputePipelineStateCompletionHandler
- TyMTLNewComputePipelineStateWithReflectionCompletionHandler
- TyMTLNewDynamicLibraryCompletionHandler
- TyMTLAutoreleasedArgument
- TyMTLCoordinate2D@typedef MTLCoordinate2D