A Brief Overview of API Terminology
An Application Programming Interface (or API) is a collection of resources (sometimes source code, sometimes a specification, or both) used by developers to achieve specific kinds of functionality in their apps. OpenGL is a long-standing open-source API, designed to augment an app’s ability to display and accelerate 2D and 3D graphics. OpenCL is a lesser-known open-source API, often used to offload specific kinds of computational tasks from the CPU — the Intel processor(s) in your Mac — to the GPU.
OpenGL and OpenCL are examples of “open API standards,” developed by a consortium of companies (including Apple), and characterized by slow, incremental changes over time. It’s not uncommon for 3-4 years to pass between the adoption of one version of an open API to the next. The benefits of an open API are stability (because it changes infrequently), and developers can use a single API to develop specific features of an application, across multiple platforms.
The downside is when a developer (which has the resources to create its own APIs and hardware) needs an API to achieve something outside the scope of the consortium’s roadmap, the direction of or pace of development for that API can hinder the developer from achieving its vision for applicable products over time.
Apple Makes a Change
For this reason, Apple went a different route in 2015 when it added its Metal® API — originally designed to accelerate 2D and 3D graphics on iOS devices — to the Mac platform. Initially, Metal was not widely adopted by Mac developers, but the intent was clear: to replace the OpenGL and OpenCL APIs in macOS with a single, more efficient API that served all of the same purposes as well as providing additional functionality. Note: OpenGL and OpenCL were given “deprecated” status in macOS 10.14 Mojave for the first time, meaning the functionality still worked but was no longer actively supported by Apple, and will eventually be removed. OpenGL and OpenCL maintain the deprecated status in macOS 10.15, but it is unclear whether they will remain part of the macOS beyond that.
Fast-forward to the 2019 WWDC event: Apple announced revision 3 of the Metal API, bringing it to a level where many developers are now plan to update their OpenGL and OpenCL apps to use Metal instead. This article provides a list of some popular creative apps that are a part of this trend.
Note that the list below is based on the best information available at the time of this writing — which is sometimes sparse — and cannot be guaranteed. Only the most recent app versions are listed; earlier versions may support Metal to a lesser degree or not at all. This information is provided only as a courtesy. If you are curious about specific applications and how they use Metal, please contact the developer.
Apps that Currently Use Metal
- Adobe Photoshop CC 2019
- Camera Raw (select functions)
- Puppet Warp, Perspective Warp
- Adobe Premiere Pro CC 2019
- Mercury Playback Engine
- Multiple effects
- Adobe After Effects CC 2019
- Mercury GPU Acceleration
- Multiple effects
- Pixelmator 1.3.4
- All Color Adjustments
- All Paint Engine functions
- 60+ effects
- Affinity Photo 1.7
- Select editing functions
- Raw processing
- All Compositing functions
- All Paint functions
- Affinity Designer 1.7
- Raster layer and Brush operations
- DaVinci Resolve 16
- Many Effects
- Pixar Hydra (late 2019 release)
- Viewport, bundled with various apps
- AMD ProRender
- Multi-purpose Renderer, bundled with various apps
- Otoy Octane X renderer (release TBD)
Metal Updates Announced or Likely
- AutoDesk Maya
- AutoDesk AutoCAD
- AutoDesk Flame
- AutoDesk Fusion
- Substance Painter
- Substance Designer