As 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.

POST A COMMENT

50 Comments

View All Comments

  • starcrusade - Tuesday, June 05, 2018 - link

    Yes but it may not stay that way when they can't get all the stuff their friends can. Keep in mind that a project is going to be choosing between a system that supports Apple or Windows, Linux, Android, Consoles, etc. Someone mentioned that Apple's customers tend to be willing to pay more for the same thing but if your developing a game (and that's the majority of people using these api's at this level) you aren't going to want to lose the Windows and console markets. Therefore you have to decide if it's really going to pay to develop two versions and if so which are you going to put most of your development effort towards. Any games that end up on both platforms will probably not perform as well on Apple because they will be a smaller portion of the user base. Reply
  • solipsism - Tuesday, June 05, 2018 - link

    How would this change by sticking with OpenGL? It's not like a game for iOS with OpenGL will now run on Android if you switched to a Pixel. This changes the consumer's "upgrade path" by absolutely nothing. It might make it game developers work harder, but chances are this will make them not want to come to iOS once this becomes a requirement and may result in higher costs for iOS App Store games if there's more cost involved to make it, which would go against your claims since it could push some out to Android as a result. Reply
  • id4andrei - Tuesday, June 05, 2018 - link

    That how DirectX and CUDA both work. That's why they both curently smoke Metal and OpenCL. Reply
  • Findecanor - Tuesday, June 05, 2018 - link

    You are missing the point. Metal is a low-level API with high performance at the cost of high complexity, but when you license a game engine that already supports it then you don't have to bother much with that complexity. OpenGL is a high-level API that may not be the best performer but is easier to write program for and programs use it directly without going through a third-party engine.
    But Macintosh is not relevant for gaming anyway! Pretty all Macs are underpowered for the latest AAA games. Metal on macOS is primarily for helping development of iOS games on Mac.
    Otherwise, people use Macs for creating content, using complex applications with tens of thousands of lines of code that are tied to OpenGL. Those apps are not going to be rewritten to use Metal, they are simply going to drop Mac support, and the Mac users they had are going to convert to MS Windows.
    That is were Apple is going to get hurt!
    Reply
  • BillBear - Tuesday, June 05, 2018 - link

    iOS is exceptionally lucrative for game developers, and uses Metal. Metal isn't going anywhere.

    However, porting iOS games to Android will be more difficult since developers will have to cope with device fragmentation *and* a different graphics API, so games like Fortnight that have been on iOS for a while now will be even slower to appear on Android.
    Reply
  • PeachNCream - Tuesday, June 05, 2018 - link

    I suspect that most mobile titles are developed for Android first (due to the much larger number of potential sales because of the larger number of people using it) and then ported to iOS rather than the reverse being true so the lack of OpenGL support will hurt iOS more than delay a program from appearing in the Play Store. Reply
  • BillBear - Tuesday, June 05, 2018 - link

    The opposite is true. Developing for iOS is less expensive, and iOS users tend to be more willing to pay for games instead of stealing... ahem... I mean sideloading them. Reply
  • tipoo - Wednesday, June 06, 2018 - link

    Metal commonality will help iOS to Mac ports.

    I wish it also had Vulkan for Windows/Linux to Mac ports.
    Reply
  • xpusostomos - Wednesday, August 01, 2018 - link

    Not everyone wants to play what you call AAA games. Reply
  • fux0r - Wednesday, June 06, 2018 - link

    Rubbish. The open standards define an api, not an implementation. If Apple finds a way to do something more optimally, that can happen behind the API. If Apple wants to add new functionality, they could do so via an extra library. Both their OpenGL implementation and the extra library could talk directly to hardware, or Metal - allowing developers who want to compile cross-platform to use OpenGL and developers who want to make titles exclusively for Mac (ha!) to do so with their own Metal API. Already gamers bear the brunt of dx vs OpenGL. This will be bad for the consumer
    - existing games will stop working and won't be ported (publishers have zero benefit to doing so)
    - new games are less likely to come to macos - devs already have either OpenGL or dx experience or both - unless engines like Unreal and Unity support it, and then that's not good for healthy game engine competition
    - this is likely to impact Linux gaming to as the argument to support because of similarity (at least in graphics API) to macos goes away.

    As with so many Apple decisions, it's the consumer who loses out here. Apple are taking a leaf out of the 1995 Microsoft playbook.
    Reply

Log in

Don't have an account? Sign up now