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.

 

opengl

 

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?

 

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.

metal2018

 

 

More Information

What’s New in macOS

What’s New in iOS

Related Articles

 Vulkan For Android

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

 

Banner


Rust 1.83 Improves Const Context Code Handling
12/12/2024

Rust 1.83 has been released with improvements to the handling of code running in const contexts.



Programmer Gifts - Pi For Xmas
13/12/2024

The holiday season is a good time to learn about computers - you have the time. But where to start? Our advice is to ignore the pudding and go for a Pi.


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Thursday, 07 June 2018 )