macOS is deprecating openGL

[quote=“kilon, post:64, topic:1113803”]Another evidence of Metal unpopularity compared to game engines this is from Apple directly

According to Apple, more than 148,000 applications use Metal directly, and 1.7 million use it through high-level frameworks, as of June 2017.[7] Presumably, most of these are applications and games on iOS. Notable macOS games using Metal for rendering are listed below.

This is even lower than 10% of all MacOS and iOS apps rely on Metal directly. Imagine how much worse the OpenGL is.[/quote]

The reason why most developers use game engines instead of Metal or Vulkan is because the latter two are too close to the hardware. The irony is that the reason why Metal or Vulkan were developed is that OpenGL was perceived as not being close enough. So we’re replacing a low-level API (OpenGL) with lower-level APIs (Metal and Vulkan) that are so complex to use that most developers seek higher-level wrappers for them.

The lower driver overhead from Vulkan can also be had from modern OpenGL too by using AZDO (approaching zero driver overhead) techniques without having to completely rewrite everything. This however was never an option for macOS, as Apple refused to update their OpenGL implementation to the latest specs.

[edit] Screw this forum code. I don’t know what messed up the quote in this post, and I can’t be bothered to find out how to fix this.

Folks keep in mind that design apps and game apps are different.
Why would one write a new engine when Unity is such a killer system or the Unreal engine.

For other things like 2D 3D apps things are different.

Apple also provides MetalKit which is a higher level api that runs on top of Metal. Along with some other stuff like Model I/O unless you are doing something specific I don’t really see a reason to use Metal at it’s lowest level form. Apple expects people to write libraries that run on top of Metal. Just like you would for Vulkan and DX12. This stuff needs to be abstracted just for sanity’s sake.

The biggest issue with Metal, Metalkit right now is lack of documentation on Apple’s part. There is some documentation but they really don’t go into to much detail and expect you to know the concepts already. Funnily enough if you know OGL already Metal is a breeze in comparison.

Probably someone mentioned this already but quite a few people in this thread don’t know the difference between the words “deprecated” and “supported”. OpenGL and OpenCL will likely be supported for at least a few more YEARS on macOS. In effect, they will remain in the OS exactly as they are now, with no further improvements or optimizations by Apple. Exactly the versions and features you see now, is as far as it will ever get. That’s deprecated. :slight_smile:

Some of you are talking like Apple is removing support in 10.14. They most assuredly are NOT doing that (for now). So whatever magic ends up in Blender 2.8 that will work just fine in macOS. Probably the next version too which I gather might be 3.0 and not 2.9. Apple is not going to cut its developers off at the knees. The whole point of deprecation IS to give developers TIME to switch over to the new API. Otherwise they’d just pull the plug tomorrow and release a new OS build with no OpenGL or OpenCL drivers in it.

Also there is the possibility that the MoltenGL project will ramp up and bring Blender Mac users some hope of enjoying future versions. Absent that the best hope is to hire a Metal developer to the Blender team. Wouldn’t be a frivolous move but I can understand the general sentiment people are having. I can kind of see why Apple walked away from OpenCL — that entire project was stymied by one of the higher-ups in the Kronos group, who happens to be an NVIDIA executive as I understand it. Bigtime conflict of interest. But for OpenGL, Apple could’ve done a lot more over the years to stay current with it.

Best guess is their hardware plans (including GPU plans) do not fit with OpenGL’s roadmap and they don’t want to be prisoner to an open source project that is not committed to evolving the directions Apple wants to go. They’ve stated directly (you can find this stuff online) that they are working directly with companies like Adobe, MAXON, The Foundry, and others to make sure their new hardware, systems, and APIs allow those companies to develop powerful apps in a rapid way. I do think they finally get it, I don’t think they were paying attention to Blender, though, which is a shame. And really awful timing.

2 Likes

I think this sums it up pretty well. Look why Vulcan was made because of how openGL is.

They really should - that app is ah well we know it all.

So we’re replacing a low-level API (OpenGL) with lower-level APIs (Metal and Vulkan) that are so complex to use that most developers seek higher-level wrappers for them.

Neither of them is low level. Low level essentially means machine code and the only language that does that is Assembly. “Low level” is heavily misused term, resulting in even languages like C called “low level” or APIs like Vulkan. The real low level is so arcane and difficult to maintain that almost none goes low level nowdays, even Assembly coders highly rely on C libraries for their project. The reasons not to go low level far outweight the reasons to stay high level.

Of course Vulkan is indeed lower level than OpenGL and OpenGL indeed wanted to go lower level. But I seriously doubt this is what the community wanted.

Game Development up to the end of 90s used to be highl dependent on low level , mainly because even a single byte made a diffirence. But after the introduction of OpenGL GPU and CPU architecture becamse so incredible complex that low lever started to phase , people started to adandon Assembly for C and hardware manufacturers starting poping C APIs like mushrooms.

This is also the reason why OpenGL started high level and ended up a bit more lower level. At the beginning game coding was low level with Assembly dominating but still simple enough with no need to rely on game engines. Pretty much every game was creating its own game engine and everyone was happy. But then more advanced CPUs became the more difficult it became to maintain Assembly so people started to rely more and more on C++ , which also improved in producing highly optimised machine code. C was never truling in the equation when it came to graphics because very early on it became apparent that OOP was pretty much the only choice when it came to complex data, which graphics are notorious for.

Long story short the dominance of C++ and of course Windows as the gaming platform did not stop CPU and GPUs from becoming so complex that it became apparent fast that the days of designing your own engine have long gone. Its still done but obviously in far less degree than it used to.

To make things worse for OpenGL is that modern game engines because of the high demans of modern games in general they cannot afford to lock you down to high level. At some point you will have to optimise some small part of your graphics API inside your game and that means direct access to something like Vulkan, CUDA, PhysiX etc So even lower nowdays is hardly the reason not to use a game engine because frankly it wont limit you in any way. You can even easily go low level, inline some Assembly code and call it from your favorite game engine, its not big deal.

The reason why there is so much reliance on game engines even for apps having nothing to do with games is because of myriads of technical reasons and solutions that game engines provide.

OpenGL and OpenCL will likely be supported for at least a few more YEARS on macOS. In effect, they will remain in the OS exactly as they are now, with no further improvements or optimizations by Apple. Exactly the versions and features you see now, is as far as it will ever get. That’s deprecated. :slight_smile:

I claim responsibility for that one.
In my effort to be vitriolic for OpenGL, which I don’t regret by the way, I may have misled people into believing this is the end of the world for OpenGL in general.

The fact we can still do OpenGL 1 stuff is proof enough that OpenGL is not going anywhere but let’s not kid ourselves, Apple from now on will offer some minor bug fixes and a tiny bit of maintenance for OpenGL and I doubt it will be sufficient even for legacy apps because its was not already sufficient anyway. One of the many reasons why devs jumped on the Metal train.

On the other hand even though I think OpenGL is pretty much finished in any platform, not just Mac, I think the future of Vulkan is bight and promising , not of course as develper API , afterall I already shown that not even Metal managed to accomplish that and the situation should not be much diffierent for Direct3d either, but at least as a game engine backend and I hope as the backend to replace OpenGL for Blender in the very distant future.

Devs have their plates more than full with Blender 2.8 for at least the next couple of years. But Vulkan support is inevitable at some point.

Folks keep in mind that design apps and game apps are different.
Why would one write a new engine when Unity is such a killer system or the Unreal engine.

For other things like 2D 3D apps things are different.

This is another good point, but things are changing fast. Unreal already has very powerful for 2d API and has also separate API for 2d GUIs and it also has a powerful build system.

You cannot get rid of all the gaming crap easily when you build your apps with Unreal but Unreal has become increasing popular for non game apps. Especially architects seem to have a blast with it and of course EPIC (the creators of Unrea) had released , long time ago ,a movie made with Unreal. The point was of course to clearly state that Unreal is far more than just a game engine. They also encourage people to use Unreal on non gaming apps by making its usage completely free of any charge even if you make a ton of money. Obviously, they know the vast majority of use cases are games but its great to know that they push towards a different direction too.

The point is that Vulkan and OpenGL and Metal and Direct3D may not move forward fast , Unreal moves blazzing fast and even though its scope is vast , it becomes more and more flexible. This flexibility gives it penetration to areas that one would assume to be no go and it has become already apparent that the term “game engine” is no longer large enough to describe these Behemoths.

Of course me mentioning Unreal has nothing to do with Unreal being the only choice, Unity is another great choice and far more popular too , Godot etc I am just using it as an example and something I am familiar enough to talk about it.

It is incredible to see where Unity is all used for too.
There is an interesting article online stating that some game dev people are ticked off and I fully get them
while I never saw the Mac as a real lucrative area for porting games to - but it seems with the drop of openGL this might make an impact on games that if I understand this correctly simply do not use Unity or Unreal.

https://venturebeat.com/2018/06/06/apple-defends-end-of-opengl-as-mac-game-developers-threaten-to-leave/

https://developer.apple.com/videos/play/wwdc2018/604/

It is a pitty that Apple did not just say that they will say good by to openGL and instead will offer Vulcan which is the successor to openGL anyway (as far as I understand) and in addition promote Metal.

Metal is more than just for 3D so there are many benefits to it - machine learning in image apps for example.

But besides all that I am curious if Apple considered also resource constraints for products like Blender Godot Armor and and and who use openGL which are cross platform and I think have no interest now based on what platform you are on offer different 3D APIs…

As much as I appreciate Apples sometimes hard cuts to put an end to old tech this one even for me is managed badly.

It really depends on the technology

When it comes to its OS , I think MacOS is far more old hardware friendly.

Mind you its not as if Apple has a choice, Apple hardware may be “overpriced” but people also tend to stick with it way longer than pc users do with their own computers. So dropping support for old hardware is pretty much a no go. This is why they emphasized for the new iOS how well it runs on old devices.

I don’t think critics against Apple are even mac devs and by mac devs I mean people that really invest into it.

I dont even consider myself a mac dev mainly because I may coded predominatly on macos until very recently turning to bootcamp and win 10 because I happen to like win 10 and because I finally trying to become a pro and sell commercially.

If you really want to talk to those people you have to take a visit at macforums.

Observe how much talk about the end of OpenGL on MacOS… zero

The hate about Apple comes 99.9% of the time outside Apple borders.

The truth is that Apple users hate Apple for completely diffirent reasons why pc users hate Apple.

Mainly because we know that 99.9% of the Apple criticism , the show called hostility against open source, the so called closed system nature etc etc is BS

Apple has tried to push both open source and cross platform, suffice to say mac users and as a result mac devs were not impressed.

OpenGL is not the only to try to penetrate the Mac market and fail spectacularly much bigger players have tried.

Most noteably Java.

Apple pushed Java extremely hard on the platform , Apple always wanted cross platform to penetrate because it was criticised and that was one of the criticism coming from inside its border about lack of specific software, but the community responded with a very large “meeeehhhhh”.

The huge with Java is that even though the holy grail of cross platform its non native GUI on a platform where UI is everything was its tombstone.

Another huge player was Python, Apple did not develop the mac version as it did for Java but they did distributed it and still do with MacOS and developed a bridge for ObjC libraries making Python and native scripting language.

Guess what it overtook Python

Applescript

Yeap I am serious, right now hands down the most popular scripting language on MacOS is Applescript.

X11 was another one pushed by Apple and almost none actually bothered using it. Of course unlike the previous two it was never really popular.

Apple heavily relied on open source way before “open source” or “free software” was invented as a term.

Again and again the community has voted for Apple specific APIs and solutions.

The reason is very simple and expected

reliability

When someone promises cross platform the response of the average mac user is scepticism.

Nowdays people heavily rely on bootcamp. For pc user thats seems naturally because of the lack of game on MacOS. Which sound reasonable… only… as its usually when it comes to Apple criticisms … its not true. There are tons of mac games. Especially MMORGS and MOBAS.

The problem however is that many of those games have really lousy support on MacOS.

This is one of the reason why devs are leaving the platform, its not as if a 10% is anything to ignore its just that the decision of Apple to bet on OpenGL backfired so bad that for example Elite Dangerous started with MacOS and when they were for the new expansion Horizon the devs saw OpenGL and said, “yeah forget about it” . Of course then Metal came out but it was a bit too late.

There have been some super serious issues with OpenGL and it was not even Apple’s fault , although the drivers could have been better , but that is debatable to because Apple develops those drivers but they have implied that GPU manufacturers have not been very helpful.

Bottom line Apple has bleed out serious money because of OpenGL and it did far more damage than good to the platform. OpenGL was the best thing to happen for Windows.

Because even though windows have seen macos take away a very big part of it market , it was 3.5% when Steve Job aplogetically stated that it was the best MacOS could hope for and it ended up reaching a 10% lately. But gaming still remains at 3% possibly with the other 7% using bootcamp because pretty much everyone has bootcamp on a mac nowdays. Especially if you have an SSD drive there is no reason not to have win 10.

To summarize , no mac devs did not give a damn and dont give a damn about OpenGL. Metal has been a massive success for Apple both on iOS and MacOS with its massive boost to performance , because I am sure its not because of the API design.

I dont know if that will convince people to give up bootcamp, but I doubt it. Its not enough to have a native API we also need apps that support it very well made by devs that are actual mac devs and not pc devs trying to code on a mac.

2 Likes

An emotional reaction — from people concerned about game development in particular — is understandable, and you’re not alone in that gut reaction. Main thing is for people to understand that for the next year or two at least, nothing changes. I mean literally nothing in the sense that Apple has done nothing with OpenCL or OpenGL the last couple years anyway, and that will continue without the two APIs being removed from the OS.

So all the goodness going into Blender and people’s favorite gaming title or whatever, will still work on Mac for the next year or two at least. Time to adjust, see what comes of some of these “wrapper” technologies, etc.

I don’t disagree though that OpenGL is more or less a dying technology, not just with Mac. There are certain things it needs to do with the advancement of hardware technology that it just can’t do efficiently. And as people have pointed out that’s one of the reasons Vulcan exists. So ultimately the only argument people can make is “why did Apple start Metal instead of using Vulcan,” to which there are probably two answers:

  1. Metal 1.0 preceded Vulcan 1.0 — Apple made that decision first, basically.

  2. Apple had bad experiences with Kronos Group not pushing OpenCL adoption over CUDA. Part of that is someone had the bright idea of letting NVIDIA leadership people into the Kronos Group. That was probably with the intent of including OpenCL as part of CUDA. But what ended up happening is NVIDIA made a half-assed implementation of OpenCL within CUDA that would never perform as well as CUDA, meaning devs had no reason to choose it over CUDA… and then within the standards body, NVIDIA probably did what they could to stall OpenCL’s evolution and development as a standard, without overtly objecting to it. [Because the fewer devs who adopted OpenCL as their main compute platform, the fewer people would buy the competing AMD GPUs. The whole thing’s pretty shady (no pun intended) if you ask me.]

So Apple, with all its amazing engineers and resources eventually said “screw you, we’ll do it ourselves,” and so far they’re delivering with Metal’s development, the addition of eGPU support, the development of a new Mac Pro (which hopefully will allow plug-and-play support of retail GPUs but we’ll see), etc.

I wouldn’t be surprised, given that they’re working directly with other creative devs — who otherwise would’ve been using OpenGL for viewports, OpenCL for compute, or both, and who are now moving to Metal — if in the months ahead Apple reached out to Blender.org to offer them resources / help in porting to Metal. We’ll see. People should definitely push for that as users because it will actually make the product better in the long run, if it happens. Make some noise. :slight_smile:

2 Likes

I personally think it was door No 2.

Back then Apple game market was non existent but after iOS and the rising popularity of MacOS , I am willing to bet Apple would have been able to dethrone NVIDIA in term of power on the board. Apple afterall must now have the biggest part of the game market at 30% but even that would not enough to stop the other member going against it.

Let’s face it, Apple ideology is vastly diffirent than what modern companies follow. The reason why Apple lasted so long as a member was because gaming was not its thing at the time.

I don’t think even if Vulkan was first Apple would have embraced it, if was after iOS.

Nowdays gaming is how Apple makes it money , with iOS being basically a gaming platform and by far the biggest chunk of its revenue. It allowed the company to go from barely bankrupt to the biggest company in the world leaving Google as a long distant and burying Microsoft at the 3rd place. If you think about it has been a crazy decade for Apple.

Metal reflects the realisation of Apple that gaming is the elephant in the room and they can longer go down Steve Job’s route of ignoring it. Steve may have created the largest gaming platform but he was never his intention to do so, he was not quite on his opinion of not being a fan of games in general.

But nowdays you dont have to look only at iOS App Store which naturally is littered with games, even the Mac App store is dominated by games. MacOS is far from a powerful gaming platform , but its clear Apple has smelled the roses and got the message

loud and clear

1 Like

3 posts were merged into an existing topic: Photoshop alternatives

Simplicity from a user experience of point I think could also be added.
Look at win10 on high res displays and how many apps look good because they do not support the hdpi UI and ME offers not one but 4 ways to do it …

This makes my surfaceBook useless with nearly all apps.

But anyway it is quite true that Apple uses and supports open standards or releases their work if possible. Look at Swift.

But with Metal things changed because it is much more hardware focused starting with ARM and iOS and now being put into macOS.
To be fair while elitist Apples decision makes even more sense because this includes all hardware platforms they provide.

I watched the Apple lecture about why metal and also talked to some graphic engine programmers (in general I am always suspicious about PR claims) but they too agree on that OpenGL is an old platform and has bottlenecks.

But besides all those logical reasons for why Metal I wish for smaller players they would offer Vulcan or keep OpenGL and let those who need performance switch to Metal.

The graphic apps section in macOS shows that adoption pretty well.

But what about smaller people with less resources to maintain Mac and Win builds.

Wait, I’m confused now. Cekuhnen, Are you saying that apple will implement some version of Vulkan in addition to metal? I haven’t read any evidence of that. Is it somewhere in that apple metal presentation video, or did I just misinterperet you?

No he is not saying that, he says that Metal was the right thing for Apple. He wishes that OpenGL was kept around , which probably will be.

Vulkan won’t come to MacOS anytime soon, if ever. People who complain about Apple , dont bother with coding for the platform, they just like to complain.

It’s pretty much the same deal with anything else, including Blender.

By the way its not that hard to make OpenGL on top of Metal if there is an actual small team of developers that actually bothered with OpenGL on macos. But they don’t.

Developers don’t have an issue of using different APIs on different platforms if that makes their code more stable and much easier to maintain. It’s not such a big deal as people think because most of our time is going to isolating bugs and reading documentation. Cross platform APIs tend to be bad at both. Hence why cross platform rarely works as intended. This is one of the big reason why not every app make the jump to another platform.

I’m actually 100% all for seeing blender port to metal. Everything i’ve read says its a great high performance API. It makes me sad to hear devs say it’s not worth it because blender runs GREAT on the mac. It’s trackpad gestures work smooth as butter on macbooks. It renders faster than the same CPUs on windows. It’s elegant and stable. If it ported to metal it could very well be the best version of blender out there.
But I understand the issue though. Blender is designed pretty much at it’s core as an OpenGL app. So right now I have my fingers crossed that some kind of OpenGL wrapper shows up and makes porting more feasible.
On a side note, one of the Houdini devs made this comment on the sidefx forums a few days ago:

“For now we’re continuing on with OpenGL as usual. Despite what many people say about it being outdated, GL4.5 is pretty competitive for the sorts of things that Houdini is doing, especially if modern practices are followed (which we do). Vulkan is too low level, and Metal/DirectX are OS-locked and non-portable, limiting their usefulness to us.”

https://www.sidefx.com/forum/topic/50217/?page=4

So it seems Houdini is having the same concerns that the blender devs are having. Strength in numbers, I suppose. If enough influential devs are hitting the same roadblocks, then I could see some kind of middleware solution rising up from this.

2 Likes

I totally second this. I’ve used Blender on Windows for a few years before I switched to a Mac.

With so many expert proponents of Metal showing up in this thread, is anybody ready to step up and port Blender to Metal?

4 Likes

I would definitely be willing to donate if someone is willing to go for it. It’d be great if the Blender Foundation would start a crowdfunding campaign for Blender Metal in the likes of the Blender 2.8 Code Quest.

3 Likes

Blender :metal:

3 Likes

Yeah I am curious about this too. Thing is that I read a lot that Vulcan is harder to implement than openGL while Vulcan provides faster performance, better threading and less power consumption.

Maybe Metal OpenGL is what some will do.