Metal Namespace
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
The Metal namespace provides GPU-accelerated 3D rendering and data-parallel computation.
Classes
IMTLRenderCommandEncoder_Extensions | |
MTLArgument |
Encapsulates a single parameter to a Metal function. |
MTLArgumentDescriptor |
An description of an argument inside an argument buffer. |
MTLArgumentEncoder_Extensions |
Extension methods for the IMTLArgumentEncoder protocol. |
MTLArrayType |
Encapsulates the details of an array argument to a Metal function. |
MTLAttribute | |
MTLAttributeDescriptor | |
MTLAttributeDescriptorArray | |
MTLBlitCommandEncoder_Extensions |
Extension methods to the IMTLBlitCommandEncoder interface to support all the methods from the IMTLBlitCommandEncoder protocol. |
MTLBuffer_Extensions |
Extension methods to the IMTLBuffer interface to support all the methods from the IMTLBuffer protocol. |
MTLBufferLayoutDescriptor | |
MTLBufferLayoutDescriptorArray | |
MTLCaptureManager |
Manages GPU captures for apps launched from Xcode. |
MTLCaptureScope |
Protocol for custom capture scope boundary for debugging from Xcode. |
MTLCommandBuffer_Extensions |
Extension methods to the IMTLCommandBuffer interface to support all the methods from the IMTLCommandBuffer protocol. |
MTLCommandBufferErrorExtensions |
Extension methods for the Metal.MTLCommandBufferError enumeration. |
MTLCompileOptions |
Configures the compilation of a Metal shader library. |
MTLComputeCommandEncoder_Extensions |
Extension methods to the IMTLComputeCommandEncoder interface to support all the methods from the IMTLComputeCommandEncoder protocol. |
MTLComputePipelineDescriptor |
Describes the compute state used during a compute operation pass. (See also IMTLComputePipelineState.) |
MTLComputePipelineReflection |
Encapsulates the details of the arguments of the compute function used to create an IMTLComputePipelineState object. |
MTLComputePipelineState_Extensions |
Extension methods to the IMTLComputePipelineState interface to support all the methods from the IMTLComputePipelineState protocol. |
MTLDepthStencilDescriptor |
Configures a depth stencil test operation. |
MTLDevice |
Represents a single GPU. |
MTLDevice_Extensions |
Extension methods to the IMTLDevice interface to support all the methods from the MTLDevice protocol. |
MTLDrawable |
Interface definition for objects that can receive rendering commands. |
MTLDrawable_Extensions |
Extension methods to the IMTLDrawable interface to support all the methods from the MTLDrawable protocol. |
MTLFunction_Extensions |
Extension methods to the IMTLFunction interface to support all the methods from the IMTLFunction protocol. |
MTLFunctionConstant | |
MTLFunctionConstantValues | |
MTLHeap_Extensions |
Extension methods to the IMTLHeap interface to support all the methods from the IMTLHeap protocol. |
MTLHeapDescriptor | |
MTLIndirectCommandBufferDescriptor | |
MTLLibrary_Extensions |
Extension methods to the IMTLLibrary interface to support all the methods from the IMTLLibrary protocol. |
MTLLibraryErrorExtensions |
Extension methods for the Metal.MTLLibraryError enumeration. |
MTLParallelRenderCommandEncoder_Extensions |
Extension methods to the IMTLParallelRenderCommandEncoder interface to support all the methods from the IMTLParallelRenderCommandEncoder protocol. |
MTLPipelineBufferDescriptor |
Contains a mutability description for a buffer. |
MTLPipelineBufferDescriptorArray |
An array of buffer mutability descriptors. |
MTLPointerType | |
MTLRenderCommandEncoder_Extensions |
Extension methods to the IMTLRenderCommandEncoder interface to support all the methods from the IMTLRenderCommandEncoder protocol. |
MTLRenderPassAttachmentDescriptor |
Configures a render target of a framebuffer. |
MTLRenderPassColorAttachmentDescriptor |
A MTLRenderPassAttachmentDescriptor that holds the clear color for the rendering pass. |
MTLRenderPassColorAttachmentDescriptorArray |
Holds an array of MTLRenderPassColorAttachmentDescriptor objects. |
MTLRenderPassDepthAttachmentDescriptor |
A MTLRenderPassAttachmentDescriptor that holds the clear depth for a rendering pass. |
MTLRenderPassDescriptor |
Defines the rendering target for pixels generated by a rendering pass. |
MTLRenderPassStencilAttachmentDescriptor |
A MTLRenderPassAttachmentDescriptor that holds the clear stencil for a rendering pass. |
MTLRenderPipelineColorAttachmentDescriptor |
Configures a color attachment associated with a rendering pipeline. |
MTLRenderPipelineColorAttachmentDescriptorArray |
An array of MTLRenderPipelineColorAttachmentDescriptor objects. |
MTLRenderPipelineDescriptor |
Configures a rendering pipeline with rasterization properties, visibility, blending, and shader functions. |
MTLRenderPipelineErrorExtensions |
Extension methods for the Metal.MTLRenderPipelineError enumeration. |
MTLRenderPipelineReflection |
The arguments (see MTLArgument) of a vertex or fragment function within a IMTLRenderPipelineState. |
MTLRenderPipelineState_Extensions |
Extension methods to the IMTLRenderPipelineState interface to support all the methods from the IMTLRenderPipelineState protocol. |
MTLResource_Extensions |
Extension methods to the IMTLResource interface to support all the methods from the IMTLResource protocol. |
MTLSamplerDescriptor |
Configures a sampler (see IMTLSamplerState). |
MTLSharedEventHandle | |
MTLSharedEventListener | |
MTLSharedTextureHandle | |
MTLStageInputOutputDescriptor | |
MTLStencilDescriptor |
Configures a stencil test operation. |
MTLStructMember |
Describes a single field within a MTLStructType struct. |
MTLStructType |
Defines a type representing a struct, which can be passed as an argument to Metal functions. |
MTLTexture_Extensions |
Extension methods to the IMTLTexture interface to support all the methods from the IMTLTexture protocol. |
MTLTextureDescriptor |
Configuration for IMTLTexture objects. |
MTLTextureReferenceType | |
MTLTileRenderPipelineColorAttachmentDescriptor | |
MTLTileRenderPipelineColorAttachmentDescriptorArray | |
MTLTileRenderPipelineDescriptor | |
MTLType | |
MTLVertexAttribute |
An attribute for per-vertex input to a vertex shader function. |
MTLVertexAttributeDescriptor |
An attribute for per-vertex input for a vertex shader function. |
MTLVertexAttributeDescriptorArray |
Holds an array of MTLVertexAttributeDescriptor objects. |
MTLVertexBufferLayoutDescriptor |
Configures how vertex and attribute data are fetched by a vertex shader function. |
MTLVertexBufferLayoutDescriptorArray |
Holds an array of MTLVertexBufferLayoutDescriptor objects. |
MTLVertexDescriptor |
Maps vertex data in memory to attributes in a vertex shader. |
MTLVertexFormatExtensions |
Extensions methods for MTLVertexFormat. |
Structs
MTLClearColor |
An RGBA color representing a clear pixel. |
MTLClearValue |
Struct that contains values that are used to clear various buffers and stencils. |
MTLDispatchThreadgroupsIndirectArguments |
Represents the number of threadgroups in each grid dimension for indirectly dispatched threadgroups. |
MTLDrawIndexedPrimitivesIndirectArguments |
Represents the data layout needed to draw indexed primitives. |
MTLDrawPatchIndirectArguments | |
MTLDrawPrimitivesIndirectArguments |
Represents the data layout needed to draw primitives. |
MTLOrigin |
The location of a pixel in an image or texture. |
MTLQuadTessellationFactorsHalf | |
MTLRegion |
A rectangle of pixels in an image or texture. |
MTLSamplePosition |
A sample position. |
MTLScissorRect |
The retangle used for the scissor fragment test. |
MTLSize |
The dimensions of a grid, image, texture, or threadgroup. |
MTLSizeAndAlign | |
MTLStageInRegionIndirectArguments | |
MTLTriangleTessellationFactorsHalf | |
MTLViewport |
Defines the clipping viewport. |
Interfaces
IMTLArgumentEncoder |
Encodes data into argument buffers. |
IMTLBlitCommandEncoder |
Protocol for writing data into frame buffers. |
IMTLBuffer |
System protocol for raw data that is accessible in strides. |
IMTLCaptureScope |
Custom capture scope boundary for debugging from Xcode. |
IMTLCommandBuffer |
Protocol for commands that are run on a GPU |
IMTLCommandEncoder |
System protocol for enqueuing and writing commands into a buffer. |
IMTLCommandQueue |
System protocol for objects that can queue command buffers for running on a GPU. |
IMTLComputeCommandEncoder |
Protocol for encoding and running parallel commands on a GPU. |
IMTLComputePipelineState |
System protocol that represents a compiled compute program. |
IMTLDepthStencilState |
System protocol for describing how the depth stencil should interact with the depth buffer during rendering. |
IMTLDevice |
System protocol for interacting with a single graphics device. |
IMTLDrawable |
Interface representing the required methods (if any) of the protocol MTLDrawable. |
IMTLEvent | |
IMTLFence | |
IMTLFunction |
System protocol for shader functions that are suitable for use on a GPU in a shader or compute function. |
IMTLHeap | |
IMTLIndirectCommandBuffer | |
IMTLIndirectRenderCommand | |
IMTLLibrary |
System protocol for libraries of shaders. |
IMTLParallelRenderCommandEncoder |
System protocol for breaking a single rendering pass into parallel command sets. |
IMTLRenderCommandEncoder |
System protocol for encoding render commands and state into a buffer. |
IMTLRenderPipelineState |
System protocol for encoding the state of a rendering pipeline. |
IMTLResource |
System protocol for for allocated segments of GPU memory. |
IMTLSamplerState |
System protocol the way that shaders or compute kernels will sample textures. |
IMTLSharedEvent | |
IMTLTexture |
System protocol for image data that is used by vertex shaders, fragment shaders, and compute kernels. |
Enums
MTLArgumentAccess |
Function access restrictions of argument data in the shader code. |
MTLArgumentBuffersTier |
Enumerates argument buffer tiers. |
MTLArgumentType |
The resource type of an argument of a function. |
MTLAttributeFormat |
Enumerates formats for function attributes. |
MTLBarrierScope | |
MTLBlendFactor |
Argument values for use with MTLBlendOperation. |
MTLBlendOperation |
How the source and destination values are combined. |
MTLBlitOption |
Enumerates blitting options. |
MTLColorWriteMask |
Permits or restricts writing to specific color channels. |
MTLCommandBufferError |
Enumeration of error codes describing why a command buffer has failed. |
MTLCommandBufferStatus |
The state of the command-buffer state-machine. Enqueued->Committed->Scheduled->Completed. |
MTLCompareFunction |
Holds a comparison test. When the comparison test passes, the incoming fragment is compared to the stored data at the specified location. |
MTLCpuCacheMode |
Enumerates what cache mode is used for CPU mapping of a resource. |
MTLCullMode |
Enumerates modes for culling and which types of primitives are culled. |
MTLDataType |
The data type of a function argument, as used in the shader language code. |
MTLDepthClipMode |
Enumerates values that indicate whether to clip or clamp depth values. |
MTLDispatchType | |
MTLFeatureSet |
Enumerates the hardware feature sets that are available on a device. |
MTLFunctionType |
The type of a Metal function. |
MTLIndexType |
The index type for an index buffer. |
MTLIndirectCommandType | |
MTLLanguageVersion |
Enumerates Metal shader programming language versions. |
MTLLibraryError |
Enumerates errors possible in the creation of an MTLLibrary or MTLFunction object. |
MTLLoadAction |
An action performed at the start of a rendering pass. |
MTLMultisampleDepthResolveFilter |
Enumerates MSAA dept resolve filter operations. |
MTLMultisampleStencilResolveFilter | |
MTLMutability |
Enumerates buffer mutability descriptions. |
MTLPatchType | |
MTLPipelineOption |
Options relating to argument information in the creation of a pipeline. |
MTLPixelFormat |
The format used by pixels, including color, depth, compression technigue, and data type for components. |
MTLPrimitiveTopologyClass | |
MTLPrimitiveType |
Enumerates the primitive geometry used for drawing commands. |
MTLPurgeableState |
The purgeable state of the resource. |
MTLReadWriteTextureTier | |
MTLRenderPipelineError |
Enumerates errors possible in the creation of a MTLRenderPipelineState. |
MTLRenderStages | |
MTLResourceOptions |
Holds options used by buffer and texture objects. |
MTLResourceUsage |
Enumerates resource usage patterns. |
MTLSamplerAddressMode |
The wrapping mode. Used when a fetch falls outside the bounds of a texture. |
MTLSamplerBorderColor | |
MTLSamplerMinMagFilter |
Options for calculating the pixel value returned within a mipmap level. |
MTLSamplerMipFilter |
Options for calculating the pixel value returned with multiple mipmap levels. |
MTLStencilOperation |
What to do if a stencil value passes or fails a comparison test. |
MTLStepFunction | |
MTLStorageMode |
Enumerates CPU cache modes for resource mapping. |
MTLStoreAction |
The action to be performed at the end of a rendering pass. |
MTLStoreActionOptions |
Enumerates store action options. |
MTLTessellationControlPointIndexType | |
MTLTessellationFactorFormat | |
MTLTessellationFactorStepFunction | |
MTLTessellationPartitionMode | |
MTLTextureType |
The dimensionality of each texture and how multiple images are arranged. |
MTLTextureUsage |
Enumerates the ways in which a IMTLTexture may be used. |
MTLTriangleFillMode |
How to rasterize triangle and triangle-strip primitives. |
MTLVertexFormat |
Enumerates vertex data formats (type and number). |
MTLVertexStepFunction |
The frequency at which the vertex shader function should fetch attribute data. |
MTLVisibilityResultMode |
Enumerates values that control how and whether to monitor samples that pass depth and stencil tests. |
MTLWinding |
Vertex winding rule for front-facing primitives. |
Delegates
MTLDeallocator |
Completion handler for deallocating a buffer. |
MTLDeviceNotificationHandler | |
MTLNewComputePipelineStateWithReflectionCompletionHandler | |
MTLNewRenderPipelineStateWithReflectionCompletionHandler | |
MTLSharedEventNotificationBlock |
Remarks
The Metal framework, introduced in iOS 8, provides low-level control of Graphical Processing Unit (GPU) accelerated rendering and data-parallel computation (GPGPU).
The Metal framework provides low-level access to the A7 GPU. Metal provides precompiled shaders, state objects, and explicit command scheduling. Its facilities can be used for either 3D rendering or General-Purpose GPU computation.