Why Metal over OpenGL?

Now you might be asking yourself, “why did Apple go through so much trouble to develop a custom graphics api?”

Short answer: Apple has a ton of money - so much so that they’ve developed their own custom chips, both CPUs and GPUs, so developing a highly optimized, tailored graphics API is just the best decision to make to take full advantage of the hardware they’ve created - it allows them to give developers a way to squeeze every little drop of performance out of their systems - which is exactly what you would want as a company trying to sell and market their products as much as possible.

Long Answer:

If you’ve ever used OpenGL (or OpenGL ES) in the past, you may wonder why Apple decided to deprecate it in favor of Metal. The reasons are deeply tied to performance, modern GPU design, and Apple’s long-term platform strategy.

Key Differences

Feature / Design Metal OpenGL
API Level Low-level, explicit High-level, stateful
Overhead Minimal High
Multithreading Designed for multithreading Single-threaded by design
Validation Compile-time + early binding Run-time state tracking
GPU Synchronization Explicit (you control it) Implicit (hard to reason about)
Shader Language Metal Shading Language (MSL) GLSL (legacy)
Apple Support Full support and future-focused Deprecated
Cross-platform? No (Apple only) Yes (but not performant on Apple)

Performance & Efficiency

OpenGL is a legacy API built decades ago, precisely back in 1992.
Its design assumes:

  • A global state machine
  • A single rendering context
  • Implicit GPU behavior

This makes OpenGL code easier to write but much, much harder to debug and optimize other than often leading to inconsistent behaviour — especially on modern, multi-core systems (it’s really a mess).

Metal takes a bit of a different approach:

  • It gives you Explicit control over memory, pipeline, and GPU commands
  • Both Command queues and command buffers are designed for multithreading
  • You can have Precompiled pipelines and resource binding for predictable performance

As a result, Metal delivers:

  • Lower CPU overhead
  • Higher GPU throughput
  • More predictable frame times and performance
  • Better battery life on mobile devices

essentially destroying OpenGL in terms of performance in every case, while being more efficent.

Developer Control

Metal forces you to be precise, which is why it’s generally seen as having a steeper learning curve than OpenGL - while that’s true, it also rewards you with wonderful tools such as the Metal Debugger for deep inspection - this is HUGE, especially if you come from other graphics APIs such as OpenGL.

Metal is now the only graphics and compute API that Apple actively supports across all its platforms, so if you’re developing for Apple devices — present or future — Metal is the standard.


Copyright © 2025 Gabriele Vierti. Distributed by an MIT license.