Ugggggh. As if graphics support on macOS weren't middling enough already. It's like they're trying to become as irrelevant as possible in that area.
I could understand if they were deprecating it in favor of Vulkan. That would be in-line with Apple's history of aggressively pushing forward new standards. But by no means do they have the clout to coerce developers into their own bespoke graphics API that doesn't work anywhere else. All they'll accomplish is further killing off the already-small presence they have in the gaming space.
Apple must truly hate gaming, or suffer from a serious case of Not Invented Here with their Metal stuff. As if any serious gaming studio would target Metal which doesn't run on Windows.
In fact, they couldn't get their act together, keep with current versions, and as a result titles like Elite Dangerous were being shut down anyway. Reason: OpenGL stuck on an old version without support of compute shaders.
I've been using a cross-platform GUI framework/engine to do app development on all the platforms: Linux, MacOS, Windows, iOS and Android - and it has been a joy to deploy one app on all of these systems.
One of the reasons this has been so feasible has been the fact that the engine (MOAI) uses GL ES to manage the framebuffer itself - giving the same look and feel on all platforms the host runs. This has been, honestly, revolutionary in terms of building a single app that runs everywhere.
This now becomes more complicated because the engine has to be modified for Apple platforms to use Metal, and represents another fork/splinter in the unity of the host itself.
I wonder if their decision to use a non-standard graphics API is due to them wanting to make this style of development a lot more difficult in the future - i.e. are Apple passively antagonizing the cross-platform framework builders in order to establish an outlier condition for their platforms? The cynic in me says yes, of course this is what they are doing ..
>All they'll accomplish is further killing off the already-small presence they have in the gaming space.
In the AAA game space you mean. Else, in the casual gaming space, iOS is perhaps the most popular platform -- and the new integration effort means all those games will be able to run on macOS as well soon.
Well, at least in the Rust ecosystem there is https://github.com/gfx-rs/gfx which provides backends for Vulcan, Direct X 12, Metal and OpenGL. I'm not sure it's super relevant outside of the Rust ecosystem right now, but it's worth spreading the word around of such solutions.
This is a problem that is entirely of Apple's own doing.
Microsoft could not care less about OpenGL on Windows. However, it works just fine.
You know why? As soon as you install your video card drivers, your OpenGL implementation is no longer from Microsoft. It comes from AMD, NVidia or Intel, with all needed optimizations for their hardware.
Apple insisted in not allowing this and doing the OpenGL implementation themselves (which was always crappy and outdated).
Had they allowed the GPU vendors the ability to provide their own implementation, this would have been a non issue.
OpenGL is very much a second class citizen on Windows. Mass-market OpenGL apps like browsers currently use ANGLE to emulate OpenGL on top of D3D. Native OpenGL is used in professional apps that can make demands on GPU and driver setups.
(Many toolkits, like Qt and Cocos2d, also use ANGLE on Windows for OpenGL functionality)
What makes you think that Apple refuses to allow GPU vendors to provide an OpenGL implementation?
The real question is why would a GPU vendor go through the expense of creating and supporting such an implementation when Apple doesn't even make a computer with slots that you can install their video cards into?
If producing an OpenGL implementation doesn't provide a competitive advantage for selling their products, why would they bother?
As a long-time professional game engine programmer, it is hard for me to see consternation over things like this, and avoid judging it as mainly ignorance. The amount of code in an engine that needs to touch the graphics API is tiny. A handful of methods for device init, filling buffers, uploading shaders, setting state, and saying "draw!" All of the graphics API code can easily fit in one medium-sized source file. As a proportion of the whole engine, it's very small. As a proportion of the whole game or app, it's negligible. It's also boilerplate. There are only so many ways to copy a stream of structured data into a buffer.
Legacy software, blah, blah, blah. No legacy software runs forever, and least of all on Apple platforms. Who cares.
Professional game engines are not the only application for OpenGL, though. Many people would like to build cross-platform software without using major abstraction layers, such as game engines. This could be research software, prototypes, small tools in general.. -- I think there is a long list.
For these people life might get harder.
Gaming is all about legacy software, especially single player games. As a gamer I'm very happy that almost all older games still work on Windows today (either directly or using an emulator like DOSBox).
(Of course that does not mean that the OS needs built in OpenGL support. If you can convince an old game to use some kind of OpenGL-Metal compatibility wrapper without needing access to the game's source code or support from the original developer, that's fine with me as well.)
I'm one of the happy persons about this move, because my competition use OpenGL on Mac and I just use software rendering. It was easy to see this deprecation coming...
OpenGL isn't pretty, but it's at least cross-platform. And my impression was that OpenGL support is mostly handled by the GPU manufacturers, so I'm not sure how much Apple gains here by deprecating OpenGL.
Requiring developers to use an API locked to a particular platform feels pretty hostile to me. Doesn't matter if that API isn't perfect, or even far from it.
Although I agree it's a terrible decision for Apple only to have Apple-specific graphics APIs, please note that:
* Being deprecated does not mean that things will suddenly stop working. It will take a few more releases of macOS before this can be removed.
* Next to MoltenVK there is MoltenGL, which is an implementation of OpenGL ES 2.0 that runs on (edit) Metal [1]. That indicates it's at least feasible to wrap OpenGL applications in the future if necessary.
Furthermore, Apple wil drop support for all Macs that don't support Vulkan in this release of macOS [2]. Ouch, what a waste.
OpenGL is pretty. Much prettier than these Metal and Vulkan abominations.
The difference is that OpenGL is designed to be easy for humans. glBegin(GL_TRIANGLES); glVertex3f(x, y, z)...; glEnd(); you can't beat that. The issue is that it hard for the driver to optimize.
That's where Metal and Vulkan come into play. These are low level APIs, sacrificing user friendliness for a greater control over the hardware. It is designed for 3D engines, not for application developers.
While this is startling, it seems pretty consistent with Apple's modus operandi in a lot of areas -- leap forward to where they think the industry is going and hope they're right. OpenGL is effectively being deprecated by its own developers in favor of Vulkan, which has an open source implementation for macOS and iOS, developed in part by Valve, built on top of Metal:
If game developers -- and game engine developers -- targeting OpenGL now are in the process of moving to target Vulkan, and if MoltenVK ends up offering better performance on macOS than Apple's legendarily anemic OpenGL stack, isn't this likely to be better in the long run despite the short-term pain?
I would be a lot more okay with this if Apple supported Vulkan, the more portable comparable API, rather than just the macOS/iOS-only Metal.
I also wonder what means for WebGL and its future. Right now, WebGL works in browsers on macOS, Linux, Windows, iOS, Android, which is incredible. There is no equivalent.
Sure, Apple has started working on WebGPU, but that’s not yet ready nor is it guaranteed to gain Linux, Windows, Android support.
Apple has so little to gain over Vulkan by developing its own API but so much to lose by not adopting Vulkan (gaming companies may actually prefer developing games on the cross-platform Vulkan to target macOS/iOS devices, too, at the same time, instead of using DirectX).
Seconded. This seems like a major step back for x-platform GPGPU. I always just assumed a natural transition from GL, CL support to Vulkan would occur at some point, but this is just a shame.
Maybe there is no equivalent, but WebGL is not a mature technology. Webgl stuff still breaks or has performance bugs whenever some part of the OS/Browser/GPU Driver/GPU Hardware sandwich changes. You can run the conformance tests yourself.
As someone who read this with an editor full of OpenCL kernels, I think apple must really have missed the point of these sort of frameworks - heterogeneous computing.
If I wanted the best possible speed, latest features ect. I would write multiple back ends in things like CUDA.
I choose OpenCL because I can develop code on my Macbook pro, and run that on a computer with a discrete GPU on a different operating system, and have a fair amount of confidence that it would work.
> I choose OpenCL because I can develop code on my Macbook pro, and run that on a computer with a discrete GPU on a different operating system, and have a fair amount of confidence that it would work.
That was the promise, but it never became reality. When writing kernels for real-world applications, OpenCL breaks down in numerous ways. The result is usually neither stable, nor portable, nor fast and a pain to work with. There was never OpenCL support for 3rd party developers on iOS.
You say you are writing OpenCL kernels on a MBP and they are portable, maybe you got lucky? Lots of comments I see on the deprecation on OpenCL seem to come from people who like the idea of having OpenCL (and its promises, which are awesome), but never had the awful experience of actually working with it.
I remember the open letter from the Blender developers on the sad state of OpenCL support on Mac (http://preta3d.com/os-x-users-unite/) from 2015. Some GPU vendors (AMD, Intel and Qualcomm) continued to put resources to better OpenCL support over the last couple years, but maybe too little, too late? It seems at least Apple had already given up on OpenCL by the time of this letter (and moved their resources completely to Metal), as nothing new has happened for OpenCL since then.
I'd prefer if we had a working OpenCL on many platforms. As we don't, especially not on Apple platforms, the step of deprecating it is regrettable, but at least honest.
Agreed, I am in a similar situation. This is very sad. Also, while OpenCL is a bit verbose to interact with directly, Vulkan compute shaders are much much worse. I realise that at some point I will have to start using it, but I'm not looking forward it.
>because I can develop code on my Macbook pro, and run that on a computer with a discrete GPU on a different operating system, and have a fair amount of confidence that it would work.
I'm not an OpenCL programmer by trade, but I have dabbled in it (Wrote an AES decrypter in OpenCL) and I have never found this proposition to be true.
All things considered, I think there are some companies that are worse to the FOSS community than Apple, but I can't think of one that has Apple's degree of baldfaced cynicism to exploiting FOSS and open standards only to the degree that it benefits Apple, and then throwing them under the bus the instant they're no longer useful.
Apple loved HTML5 when they had to kill Flash and get web developers to support mobile, but then as soon as it became a threat to the App Store, Safari's compliance came to a screeching halt and now Safari is in last place, even behind Microsoft's browsers, in HTML5 support.
OpenGL was useful when it was a way to potentially lure people away from Windows, but as soon as Apple had the clout to not care about it and force develops onto its proprietary API, that's what happened.
I almost prefer old-Microsoft's honesty about wanting to kill FOSS, rather than this blatant acknowledgement of FOSS as a tool to be ripped off to improve one's ecosystem dominance and then promptly thrown aside. Makes you wonder what's going to happen if and when Apple no longer needs Clang/LLVM, or, hell, Unix.
Aren't most of the games on MacOS running on OpenGL?
This is going to kill all the older titles that are not maintained anymore. Terrible move just to push Metal down people throats. As if MacOS gaming wasn't dead enough.
Nope most of them use some sort of game Engine, unreal and Unity dominate.
MacOS gaming is not only not dead it’s flourishing rapidly. Take a trip to Steam shop. You will find a massive amount of games are made for MacOS and the numbers are growing rapidly since Apple lost interest into OpenGL. But then MacOS has reached a 10% of the desktop market making it much harder to ignore than in the past when it barely reached 3%. With iOS dominating mobile revenue , Appple is the undisputed king of gaming for over a decade now.
To be fair, PC gaming is a small fraction of the overall gaming market. All the consoles have their own proprietary graphics apis. It's ok if apple's api is proprietary too. Consoles support opengl, but it's not optimal. If they all strictly adhere to standard graphics apis, how do they differentiate themselves? Why make custom silicon with their apple 'bionic' chip? It's going to need an api to go with it.
Lol, Metal is Mac-only which relies heavily on CoreWhatever dependencies and thus can never be cross-platform, right? The only reason any game or CAD developer even supports Mac at all is because OpenGL is a cross-platform API that works great on Windows, Mac, and Linux, so they only have to write one type of shader program, etc. No game developer in the world will write both an OpenGL/DirectX/Vulcan and Metal renderer for the purpose of staying up to date with Apple's "deprecations".
If you're Pixelmator or Apple's own Final Cut team, sure, use Metal. For anyone else that wants to make a living, supporting multiple platforms is a given, so you won't pay the slightest attention to this deprecation notice.
If this means that macOS will lose opengl support even for X11 apps, a substantial part of academia will switch away from Apple. It's highly unlikely that software like ROOT or geant4 will ever get ported to something else.
I just recently bumped to John Carmacks stories about Steve Jobs, among which he convinces him to adopt OpenGL[1] (HN commentary [2]). Thought this might be an appropriate historic reference here as OpenGL now appears to be on it's way out on MacOS.
As one of the creators of Direct X at Microsoft commented when Metal was first announced, "Why help Android siphon off their game developers by propping up OpenGL?"
I'm getting a bit worried about Apple dropping out of the business of producing professional tools and rig. I always liked that you can walk into an Apple retail shop and get a decent Unix notebook (though I've opted for a different notebook for my last purchase because of the lack of display, keyboard, and port options). But with Apple pulling out of OpenGL, what little pro (or at least pro enough for me) F/OSS software for 3D (Blender) and other graphical stuff was running on Mac OS won't any longer. I can't imagine Blender has the resources and inclination to port their software over to Metal, especially when Apple deliberately torpedoes their efforts.
Disclaimer: I'm not trying to be the Devil's advocate here, but just wanted to share an observation.
Apple always removes stuff which looks untimely or just plain stupid (headphone jacks, optical drives, USB/Firewire ports, optical in & out, rosetta, APIs, etc).
Always the same outrage has happened, but things normalize then. People, companies adapt, hell does not freeze over, company doesn't go bankrupt.
I feel that maintaining OpenGL & OpenCL felt like a burden to Apple. We all know that Apple likes to control everything from hardware to user interface, and GPU drivers are one of the most notoriously complex, overprotected part of the software stack. In the OpenCL world compilers and other stuff (I don't remember the terms clearly, sorry) also gets in, and makes everything much more complex.
Maybe this move will help them to slim the drivers to the basic "hardware-software" interface level and build metal and related technologies to their own term on top of this relatively simple interface.
I have a feeling that metal can be directly translated bidirectionally and relatively cheaply to OpenGL (and maybe Vulkan and OpenCL too), so at the end things don't become extremely complex for everyone.
Apple doesn't feel that backwards compatibility is strictly necessary unless things can be translated and made to work with relatively good performance.
As a Linux and Mac user for 10+ years, these are my observations. They may be wrong, technically incomplete or else. Feel free to discuss, debunk, or downvote.
Very much in line with Apple's way of doing things. God forbid they'd adopt some sort of open standard - even though they've hugely benefited from them.
[+] [-] _bxg1|7 years ago|reply
I could understand if they were deprecating it in favor of Vulkan. That would be in-line with Apple's history of aggressively pushing forward new standards. But by no means do they have the clout to coerce developers into their own bespoke graphics API that doesn't work anywhere else. All they'll accomplish is further killing off the already-small presence they have in the gaming space.
[+] [-] sundvor|7 years ago|reply
In fact, they couldn't get their act together, keep with current versions, and as a result titles like Elite Dangerous were being shut down anyway. Reason: OpenGL stuck on an old version without support of compute shaders.
https://forums.frontier.co.uk/showthread.php/424243-Importan...
https://support.frontier.co.uk/kb/faq.php?id=228
[+] [-] Sephr|7 years ago|reply
[1] https://github.com/KhronosGroup/MoltenVK
[+] [-] gpdpocketer|7 years ago|reply
One of the reasons this has been so feasible has been the fact that the engine (MOAI) uses GL ES to manage the framebuffer itself - giving the same look and feel on all platforms the host runs. This has been, honestly, revolutionary in terms of building a single app that runs everywhere.
This now becomes more complicated because the engine has to be modified for Apple platforms to use Metal, and represents another fork/splinter in the unity of the host itself.
I wonder if their decision to use a non-standard graphics API is due to them wanting to make this style of development a lot more difficult in the future - i.e. are Apple passively antagonizing the cross-platform framework builders in order to establish an outlier condition for their platforms? The cynic in me says yes, of course this is what they are doing ..
[+] [-] coldtea|7 years ago|reply
In the AAA game space you mean. Else, in the casual gaming space, iOS is perhaps the most popular platform -- and the new integration effort means all those games will be able to run on macOS as well soon.
[+] [-] lewisinc|7 years ago|reply
[+] [-] outworlder|7 years ago|reply
Microsoft could not care less about OpenGL on Windows. However, it works just fine.
You know why? As soon as you install your video card drivers, your OpenGL implementation is no longer from Microsoft. It comes from AMD, NVidia or Intel, with all needed optimizations for their hardware.
Apple insisted in not allowing this and doing the OpenGL implementation themselves (which was always crappy and outdated).
Had they allowed the GPU vendors the ability to provide their own implementation, this would have been a non issue.
[+] [-] fulafel|7 years ago|reply
(Many toolkits, like Qt and Cocos2d, also use ANGLE on Windows for OpenGL functionality)
[+] [-] GeekyBear|7 years ago|reply
The real question is why would a GPU vendor go through the expense of creating and supporting such an implementation when Apple doesn't even make a computer with slots that you can install their video cards into?
If producing an OpenGL implementation doesn't provide a competitive advantage for selling their products, why would they bother?
[+] [-] pjmlp|7 years ago|reply
In case you missed the news, only DirectX is supported on UWP and store apps.
To the point that Microsoft has their own port of Angle.
https://docs.microsoft.com/en-us/windows/uwp/gaming/compare-...
https://github.com/Microsoft/angle
So unless they change their mind, say goodbye to ICD drivers on Windows as well.
[+] [-] psyc|7 years ago|reply
Legacy software, blah, blah, blah. No legacy software runs forever, and least of all on Apple platforms. Who cares.
[+] [-] TheCabin|7 years ago|reply
[+] [-] CodesInChaos|7 years ago|reply
(Of course that does not mean that the OS needs built in OpenGL support. If you can convince an old game to use some kind of OpenGL-Metal compatibility wrapper without needing access to the game's source code or support from the original developer, that's fine with me as well.)
[+] [-] p0nce|7 years ago|reply
[+] [-] pjmlp|7 years ago|reply
People in FOSS friendly circles really don't get the games development culture, IP management or the contracting business related to ports.
[+] [-] fabian2k|7 years ago|reply
Requiring developers to use an API locked to a particular platform feels pretty hostile to me. Doesn't matter if that API isn't perfect, or even far from it.
[+] [-] DCKing|7 years ago|reply
* Being deprecated does not mean that things will suddenly stop working. It will take a few more releases of macOS before this can be removed.
* Next to MoltenVK there is MoltenGL, which is an implementation of OpenGL ES 2.0 that runs on (edit) Metal [1]. That indicates it's at least feasible to wrap OpenGL applications in the future if necessary.
Furthermore, Apple wil drop support for all Macs that don't support Vulkan in this release of macOS [2]. Ouch, what a waste.
[1]: https://moltengl.com/moltengl/
[2]: https://9to5mac.com/2018/06/04/macos-10-14-mojave-supported-... (anything from before 2012 does not support Vulkan)
[+] [-] 013a|7 years ago|reply
[+] [-] outworlder|7 years ago|reply
You would be correct, but not on OSX.
[+] [-] pavanky|7 years ago|reply
[+] [-] coldtea|7 years ago|reply
So like DirectX?
[+] [-] GuB-42|7 years ago|reply
The difference is that OpenGL is designed to be easy for humans. glBegin(GL_TRIANGLES); glVertex3f(x, y, z)...; glEnd(); you can't beat that. The issue is that it hard for the driver to optimize.
That's where Metal and Vulkan come into play. These are low level APIs, sacrificing user friendliness for a greater control over the hardware. It is designed for 3D engines, not for application developers.
[+] [-] chipotle_coyote|7 years ago|reply
https://store.steampowered.com/news/37575/
If game developers -- and game engine developers -- targeting OpenGL now are in the process of moving to target Vulkan, and if MoltenVK ends up offering better performance on macOS than Apple's legendarily anemic OpenGL stack, isn't this likely to be better in the long run despite the short-term pain?
[+] [-] shurcooL|7 years ago|reply
I also wonder what means for WebGL and its future. Right now, WebGL works in browsers on macOS, Linux, Windows, iOS, Android, which is incredible. There is no equivalent.
Sure, Apple has started working on WebGPU, but that’s not yet ready nor is it guaranteed to gain Linux, Windows, Android support.
[+] [-] endianswap|7 years ago|reply
[+] [-] mtgx|7 years ago|reply
https://github.com/KhronosGroup/WebGLNext-Proposals/tree/mas...
Apple has so little to gain over Vulkan by developing its own API but so much to lose by not adopting Vulkan (gaming companies may actually prefer developing games on the cross-platform Vulkan to target macOS/iOS devices, too, at the same time, instead of using DirectX).
[+] [-] rhardih|7 years ago|reply
[+] [-] ksk|7 years ago|reply
[+] [-] designcode|7 years ago|reply
[deleted]
[+] [-] lightedman|7 years ago|reply
[deleted]
[+] [-] adamisntdead|7 years ago|reply
If I wanted the best possible speed, latest features ect. I would write multiple back ends in things like CUDA.
I choose OpenCL because I can develop code on my Macbook pro, and run that on a computer with a discrete GPU on a different operating system, and have a fair amount of confidence that it would work.
:/
[+] [-] w-m|7 years ago|reply
That was the promise, but it never became reality. When writing kernels for real-world applications, OpenCL breaks down in numerous ways. The result is usually neither stable, nor portable, nor fast and a pain to work with. There was never OpenCL support for 3rd party developers on iOS.
You say you are writing OpenCL kernels on a MBP and they are portable, maybe you got lucky? Lots of comments I see on the deprecation on OpenCL seem to come from people who like the idea of having OpenCL (and its promises, which are awesome), but never had the awful experience of actually working with it.
I remember the open letter from the Blender developers on the sad state of OpenCL support on Mac (http://preta3d.com/os-x-users-unite/) from 2015. Some GPU vendors (AMD, Intel and Qualcomm) continued to put resources to better OpenCL support over the last couple years, but maybe too little, too late? It seems at least Apple had already given up on OpenCL by the time of this letter (and moved their resources completely to Metal), as nothing new has happened for OpenCL since then.
I'd prefer if we had a working OpenCL on many platforms. As we don't, especially not on Apple platforms, the step of deprecating it is regrettable, but at least honest.
[+] [-] Athas|7 years ago|reply
[+] [-] ksk|7 years ago|reply
I'm not an OpenCL programmer by trade, but I have dabbled in it (Wrote an AES decrypter in OpenCL) and I have never found this proposition to be true.
[+] [-] Analemma_|7 years ago|reply
Apple loved HTML5 when they had to kill Flash and get web developers to support mobile, but then as soon as it became a threat to the App Store, Safari's compliance came to a screeching halt and now Safari is in last place, even behind Microsoft's browsers, in HTML5 support.
OpenGL was useful when it was a way to potentially lure people away from Windows, but as soon as Apple had the clout to not care about it and force develops onto its proprietary API, that's what happened.
I almost prefer old-Microsoft's honesty about wanting to kill FOSS, rather than this blatant acknowledgement of FOSS as a tool to be ripped off to improve one's ecosystem dominance and then promptly thrown aside. Makes you wonder what's going to happen if and when Apple no longer needs Clang/LLVM, or, hell, Unix.
[+] [-] Unknoob|7 years ago|reply
[+] [-] dgellow|7 years ago|reply
[+] [-] kilon|7 years ago|reply
MacOS gaming is not only not dead it’s flourishing rapidly. Take a trip to Steam shop. You will find a massive amount of games are made for MacOS and the numbers are growing rapidly since Apple lost interest into OpenGL. But then MacOS has reached a 10% of the desktop market making it much harder to ignore than in the past when it barely reached 3%. With iOS dominating mobile revenue , Appple is the undisputed king of gaming for over a decade now.
[+] [-] snarfy|7 years ago|reply
[+] [-] vortico|7 years ago|reply
If you're Pixelmator or Apple's own Final Cut team, sure, use Metal. For anyone else that wants to make a living, supporting multiple platforms is a given, so you won't pay the slightest attention to this deprecation notice.
[+] [-] davrosthedalek|7 years ago|reply
[+] [-] rixrax|7 years ago|reply
[1] https://m.facebook.com/permalink.php?story_fbid=214641282559... [2] https://news.ycombinator.com/item?id=17066846
[+] [-] GeekyBear|7 years ago|reply
As one of the creators of Direct X at Microsoft commented when Metal was first announced, "Why help Android siphon off their game developers by propping up OpenGL?"
https://web.archive.org/web/20140606055700/http://www.alexst...
[+] [-] Keyframe|7 years ago|reply
[+] [-] tannhaeuser|7 years ago|reply
[+] [-] tobyhinloopen|7 years ago|reply
Maybe the forced Metal usage (however shitty it is to remove support for an open standard) will increase macOS ports of games.
But in reality, 50% games will still be a wine bottle
[+] [-] bananaboy|7 years ago|reply
[+] [-] bayindirh|7 years ago|reply
Apple always removes stuff which looks untimely or just plain stupid (headphone jacks, optical drives, USB/Firewire ports, optical in & out, rosetta, APIs, etc).
Always the same outrage has happened, but things normalize then. People, companies adapt, hell does not freeze over, company doesn't go bankrupt.
I feel that maintaining OpenGL & OpenCL felt like a burden to Apple. We all know that Apple likes to control everything from hardware to user interface, and GPU drivers are one of the most notoriously complex, overprotected part of the software stack. In the OpenCL world compilers and other stuff (I don't remember the terms clearly, sorry) also gets in, and makes everything much more complex.
Maybe this move will help them to slim the drivers to the basic "hardware-software" interface level and build metal and related technologies to their own term on top of this relatively simple interface.
I have a feeling that metal can be directly translated bidirectionally and relatively cheaply to OpenGL (and maybe Vulkan and OpenCL too), so at the end things don't become extremely complex for everyone.
Apple doesn't feel that backwards compatibility is strictly necessary unless things can be translated and made to work with relatively good performance.
As a Linux and Mac user for 10+ years, these are my observations. They may be wrong, technically incomplete or else. Feel free to discuss, debunk, or downvote.
[+] [-] IvanK_net|7 years ago|reply
E.g. for WebGL purposes, all web browsers on Windows emulate OpenGL on top of Microsoft DirectX.
[+] [-] bingoboingo33|7 years ago|reply