Apple Drops OpenGL and OpenCL |
Written by David Conrad |
Thursday, 07 June 2018 |
One of the more important announcements at WWDC, Apple's developer conference, was that as far as Apple is concerned OpenGL and Open CL are deprecated technologies. What do you think Apple expects you to use? Yes you got it - Metal - Apple's invented-here, closer-to-the-hardware 3D graphics system. OpenGL has been a mainstay of 3D cross-platform graphics for a long time. So long that even its "inventor", The Khronos Group, has replaced it by Vulkan, which is one of the new closer-to-the-hardware graphics APIs along with Microsoft's DirectX3D 12 and Apple's Metal. All three offer a much lower-level API than OpenGL and working with them is arguably harder for the occasional 3D programmer. Of the three, only Vulkan is cross-platform; DirectX3D 12 is Windows only and Metal is iOS/macOS only.
The situation isn't urgent in that OpenGL and OpenCL have only been deprecated, but this is a first step to removing them. "Apps built using OpenGL and OpenCL will continue to run in macOS 10.14, but these legacy technologies are deprecated in macOS 10.14. Games and graphics-intensive apps that use OpenGL should now adopt Metal. Similarly, apps that use OpenCL for computational tasks should now adopt Metal and Metal Performance Shaders." If you think that iOS is immune then it is worth adding that OpenGL/ES is also deprecated: "Apps built using OpenGL ES will continue to run in iOS 12, but Open GL ES is deprecated in iOS 12. Games and graphics-intensive apps that previously used OpenGL ES should now adopt Metal." You could argue that most games are created using game engines such as Unity and supporting Metal is just another backend to support. However, this isn't the whole story. Apple has isolated iOS and macOS from the rest of the world. If it had adopted Vulkan and kept OpenGL, it would have a cross-platform solution, but forcing Metal on anyone wanting to run 3D on an Apple machine is typical Apple arrogance that goes beyond what even Microsoft is capable of. Deprecating OpenCL affects a smaller number of people, but it is a cross-platform GPU programming language that is used for implementing parallel computations. To remove it from Apple is a problem, but it is merging into Vulkan after version 2.2 so the real issue is will Apple support Vulkan?
The situation with OpenGL ES is even more confused. OpenGL ES is a lightweight version of OpenGL that is used by mobile systems such as Android, iOS and so on. It is also the basis for the W3C standard WebGL. If Apple is deprecating OpenGL ES does this mean it is deprecating WebGL? Although slow to adopt it, probably to protect its profits from the App Store, Safari now supports WebGL and has it turned on by default, like most modern browsers. Presumably WebGL will be kept in Safari backed by Metal. Apple is correct that the future is not with OpenGL, OpenCL or probably OpenGL ES, but the correct move is probably to shift to Vulkan and continue to support the others as long as is necessary and not to strong arm developers to move to its own Metal, which only runs on Apple hardware.
More InformationRelated ArticlesThe New OpenGL - Vulkan and SPIR-V
To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.
Comments
or email your comment to: comments@i-programmer.info |
Last Updated ( Thursday, 07 June 2018 ) |