Apple announced at WWDC it would be ending its support for OpenGL and OpenCL. While neither is particularly surprising given Apple’s previous willingness to ignore progression in OpenGL versions, the announcement still kicked off some controversy from game developers who already feel less-than-beloved. To head off some of the blowback, Apple recently released a video on Metal for OpenGL developers to explain some of its thinking and how the situation would unfold going forward.
Metal, for those who aren’t aware, is the API Apple created to bring low-latency draw calls to devices running iOS and later, macOS. It’s compatible with multiple GPUs from Intel, AMD, and Nvidia as well as the custom GPUs Apple builds for its own mobile products. It’s not clear if Metal support for the latest Nvidia GPUs is equivalent to its support for AMD and Intel, given that Apple has stuck to hardware from the latter two companies for the past several years, but this would only likely impact Hackintosh users in any case.
Like Mantle, DirectX 12, and Vulkan, Metal (technically Metal 2 now) is an API designed to minimize CPU usage and limit the amount of time a GPU spends waiting on the CPU to finish processing work. These low-level APIs are quite different from previous versions of OpenGL and DirectX. That difference, according to Apple, is a key component of why it’s deprecating the older standards now. GPU pipelines, support for multi-threading, and asynchronous compute capabilities have all changed a great deal over the past decade, and Apple wants to make a clean break from the past.
This type of argument is common from Apple, and has been used to justify everything from the company’s abandonment of the floppy drive and CD-ROM to, most recently, the headphone jack. (Whether you find them remotely persuasive is its own question). But it causes particular problems in gaming, where older titles that rely on OpenGL simply won’t work in the future if Apple removes existing OGL support.
Right now, Apple is just deprecating the standard. OpenGL won’t be used or preferred, but it isn’t going anywhere, either. But in the future — probably in the next few years — that’ll inevitably change. Again, that’s something we can generally count on, because Apple isn’t in the habit of just leaving support for deprecated capabilities in its operating systems. When it told developers to start prioritizing 64-bit apps in the iOS App Store, it was as a prelude to removing the ability to run 32-bit applications altogether. It’s since told macOS users to prepare for the same transition.
But in this case, the implications are larger. Apple only introduced Metal in 2014, which means any game for Mac built prior to that point (and realistically, quite a few built after) will only run on OpenGL. Apple, which has spent years more or less not supporting gaming to any particular degree, is also guaranteeing that the Mac will be an even more difficult platform to encourage developers to code for, since they’ll have to use a specific API unique to Apple to do it. Now, instead of porting to OGL as a means of ensuring that games work in both Linux and macOS, developers will have to port to macOS separately — if they bother to do so at all.