Render advanced 3D graphics and perform data-parallel computations using the GPU.


Metal encompasses the Metal framework, MetalKit framework, Metal Performance Shaders framework, Metal shading language, and Metal standard library. You use Metal to gain low-level and low-overhead access to the graphics processing unit (GPU), enabling you to maximize the graphics and compute potential of your app.


First Steps

Devices and Commands

Demonstrates how to access and interact with the GPU.

Hello Triangle

Demonstrates how to render a simple 2D triangle.

Basic Buffers

Demonstrates how to manage hundreds of vertices with a vertex buffer.

Basic Texturing

Demonstrates how to load image data and texture a quad.

Hello Compute

Demonstrates how to perform data-parallel computations using the GPU.


Fundamental Components

Interact with the GPU and learn how to store, organize, and process your app's data.


Compute Processing

Execute compute-processing workloads on the GPU, such as those used in intensive scientific calculations.


Graphics Rendering

Execute graphics-rendering workloads on the GPU, such as those used in high-end 3D games.


Display Management

Display Metal content on the screen, whether it was created by a graphics-rendering or compute-processing operation.


Tools, Profiling, and Debugging

Use the Metal API, Xcode, and Instruments tools to profile and debug your app effectively.

Sample Code

Fundamental Lessons

Learn how to develop Metal apps by following introductory lessons and guided examples.

Advanced Techniques

Learn how to implement advanced techniques by using Metal features efficiently.

Mixing Metal and OpenGL Rendering in a View

Draw with Metal and OpenGL in the same view using an interoperable texture.

See Also