Apple Deprecates OpenGL Across All OSes; Urges Developers to use Metal
by Ryan Smith on June 5, 2018 9:30 AM ESTAs has long been the story at One Infinite Loop, what Apple giveth is what Apple taketh, and Apple’s latest rendition of OSes is going to be no exception. Listed in the developer release notes for both iOS and macOS, Apple is deprecating support for what are now their legacy graphics and compute APIs: OpenGL, OpenGL ES, and OpenCL. Instead, Apple is strongly encouraging developers to use their proprietary Metal API, which has been available for a few years now.
Apple’s lack of interest in Khronos’s Open APIs has not gone unnoticed over the years. Apple never added support for OpenGL ES 3.1 or later on iOS, and similarly macOS doesn’t go beyond OpenGL 4.1 (Khronos is up to 4.6 now). Instead, Apple has been pushing developers to Metal almost as soon as it became available. And now by deprecating support for these older APIs, Apple is signaling that they are reserving the right to remove them entirely in the future.
And unlike other OS vendors who may keep deprecated APIs around for years (if not forever) in the name of backwards compatibility, Apple has proven it has no such qualms. The company has already excised 32-bit apps from iOS and is in the process of doing the same for macOS, despite the number of applications (and games!) that will break. So Apple’s threats are generally credible: if these APIs are being deprecated now, then they likely aren’t going to be available much longer.
Which means that with the loss of OpenGL support across the Mac and iOS ecosystem, so too will go support for the only truly common cross-platform graphics API across the industry. OpenGL ES in particular will run on every Mac, iOS device, Android device, Windows device, and Linux device. And while the other vendors have rallied around (or at least supported) the successor Vulkan API, Apple has not. So once the deprecation becomes a removal, the only graphics and compute API supported in the Apple ecosystem will be their proprietary Metal.
As an aside, this announcement goes for GPU compute as well as graphics. Nearly a decade ago, Apple was the big supporter of OpenCL, kickstarting the whole initiative. OpenCL never saw the success it needed, and like the other vendors, Apple has essentially rolled GPU compute into their graphics API. Still, it’s an interesting turn of events when the first vendor to drop support for OpenCL is the vendor that originally championed it to being with.
52 Comments
View All Comments
casperes1996 - Tuesday, June 5, 2018 - link
When coding a Mac or iOS app, you can either work directly with Metal, or use MetalKit, a higher level toolkit based on Metal. So Apple has an abstraction layer above Metal that uses Metal as its foundationDuncan Macdonald - Tuesday, June 5, 2018 - link
More accurately - it is about locking developers and customers even more tightly to Apple. Smaller developers will not have the resources to support 2 different graphics APIs and so may get locked into Apple thereby providing it with some exclusive games. From Apple's point of view they drop their costs by .001% and get some locked in customers. This is entirely about customer lock-in not about improving the customers experience.baka_toroi - Tuesday, June 5, 2018 - link
The only way out in this scenario is for multi-platform SDKs (Unity?) to include support for Metal.techconc - Tuesday, June 5, 2018 - link
All of the major engines such as Unity, Unreal, etc. have supported Metal from day 1.haukionkannel - Tuesday, June 5, 2018 - link
But how Many games has been done to support metal... not Many, so Expect to see very few games in iOs devices in the short run...evilliam - Friday, June 8, 2018 - link
Eh?No
All the Unity or Unreal games run on Metal right now - Apple has never had OpenGLES 3.1 so you need Metal to run compute shaders.
This really won't affect mobile games at all - it will affect creative code communities and other games _eventually_ but the writing has been on the wall for a while now.
It's inconvenient for me personally (as someone who writes games and knows openGL and not Metal) but it's the right thing for Apple to do for their platform.
PeachNCream - Tuesday, June 5, 2018 - link
The Unreal engine predates Metal by a great many years as the original Unreal game that formed the basis of the engine was released in 1998. It could not have possibly supported Metal at that point unless you're talking about S3's MeTaL API that came out around the time the Savage 3D graphics card was released. Except portions of that API as related to texture compression found their way into DirectX after Microsoft licensed the technology from S3.techconc - Friday, June 15, 2018 - link
I'm not sure what you are talking about. Apple specifically worked with the game engine companies and helped them port their engines to Metal for both of Apple's platforms. As for the Unreal engine specifically, try doing a little research.https://wiki.unrealengine.com/Metal_Rendering_API
id4andrei - Tuesday, June 5, 2018 - link
Windows remains the best OpenGL/OpenCL/Vulkan platform going forward. You don't need to switch to Metal, you just need to dump macos and switch to Windows.T2k - Tuesday, June 5, 2018 - link
Yes and on top of that you get a lot more bang (performance) for your buck on PC, Apple's mediocre hardware is laughably overpriced.