Back to Metal

Ichi Kanaya
The Pineapple
Published in
2 min readJun 9, 2015
Apple introduced Metal for Mac at WWDC 2015.

At WWDC 2015, Apple announced porting of Metal from iOS to OS X. Metal is a thin layer covering graphics hardware of Macs and iOS devices. Any graphic APIs like Core Graphics (also know as Quartz), Quartz Compositor (or Quartz Extreme after OS X 10.2), Core Image, Core Animation, etc. are or will be built on top of Metal.

From OS X 10.2 to OS X 10.10, OpenGL has served fundamental graphics layer. In 2002, when Apple released OS X 10.2, OpenGL was version 1.4 and was very thin. At this point OpenGL didn’t support any shader language. (At the end of 2012, Microsoft released DirectX 9 and introduced non-standard shader language.)

Since then, OpenGL has been getting thicker and thicker. The main reason is evolution of mainstream graphics hardware. In the era of OpenGL 1.0, there were no programable shader, and OpenGL simply reflected fundamental structure of graphics pipeline.

Mobile devices need low-energy graphics hardware, and thus stick to relatively less powerful GPUs. Though iOS devices has used lighter version of OpenGL, named OpenGL ES, much thinner graphics layer was demanded.

Apple introduced Metal API in iOS 8. Metal was thiner and lighter than conventional OpenGL ES API. Same efforts were AMD’s Mantle, Khronos Group’s Vulkan — formerly called next generation OpenGL.

And then Apple introduced Metal for Mac in OS X 10.11.

I’m under the impression that Apple has three reasons to port Metal from iOS to Mac. The reason #1 is further migration of iOS and OS X. Many core parts of both OSes are already common — Core Graphics, Core Animation are almost identical. Perhaps Apple wants to spread the common area even wider.

The reason #2 is demand of low-power Macs. Look at 12-inch Retina MacBook. It’s processing power is almost as same as iPad Air 2 and is 50% to 80% of MacBook Air. Now OpenGL is too thick even for Macs.

The reason #3 is cleaning up of other part of OS X. Metal covers where OpenCL used to cover — GPU-based parallel processing. Apple may want to modernise this area too.

Still one question left behind me. Why did Apple name the Mac version of Metal just Metal for Mac? Everybody knows Apple loves music. Then, why not Heavy Metal?

--

--