Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

casperes1996

macrumors 604
Jan 26, 2014
7,599
5,771
Horsens, Denmark
I think this is making a big deal out of something that probably isn't a big deal. The driver layer is going to be much heavier than something like MoltenVK. "Native" Vulkan isn't talking directly to the GPU. There are still a lot of layers of software and drivers and kernel time and JIT compilers for it to go through.

You're probably right, yeah.

Something like DXVK can be faster than "native" DirectX, and it's a translation layer. Again, I think the "native" Vulkan hand wringing probably isn't important. OpenGL on iOS is now a translation layer to Metal and no one even noticed, I think performance even improved.

Wait, what? OpenGL on iOS goes through Metal? Since when? Much to your point of never noticing this is complete news to me. For a deprecated API on the platform that's got to have been a lot of working creating that translation layer.
 

goMac

macrumors 604
Apr 15, 2004
7,663
1,694
Wait, what? OpenGL on iOS goes through Metal? Since when? Much to your point of never noticing this is complete news to me. For a deprecated API on the platform that's got to have been a lot of working creating that translation layer.

It's on the newer chipsets in at least the last few years, maybe a little longer. I don't remember exactly where, but if you query some GL information (maybe the renderer name?) it'll spit out that it renders through Metal.

I don't think Apple ever documented it, but it's something thats known in the community.
 

jeanlain

macrumors 68020
Mar 14, 2009
2,464
958
Wait, what? OpenGL on iOS goes through Metal? Since when? Much to your point of never noticing this is complete news to me. For a deprecated API on the platform that's got to have been a lot of working creating that translation layer.
I've never heard of that either.
As for moltenVK performance vs native, I'm not convinced. dota2 still runs much better (like >50% faster) under bootcamp using Vulkan than on macOS. And that's from a developer that contributed a lot to Vulkan and moltenVK.
Yes it could be due to poor Metal drivers, but I don't think that they are to blame as native Metal appear to work pretty well for games that are ported properly (i.e., Feral games) and that are much more demanding than dota 2.
 

goMac

macrumors 604
Apr 15, 2004
7,663
1,694
I've never heard of that either.


Check the GL Version:
"OpenGL ES 3.0 Metal - 66.6"

There's a Twitter thread about it here:

As for moltenVK performance vs native, I'm not convinced. dota2 still runs much better (like >50% faster) under bootcamp using Vulkan than on macOS. And that's from a developer that contributed a lot to Vulkan and moltenVK.
Yes it could be due to poor Metal drivers, but I don't think that they are to blame as native Metal appear to work pretty well for games that are ported properly (i.e., Feral games) and that are much more demanding than dota 2.

I'm not sure that's MoltenVK's fault. Games still require a lot of tuning on the Mac beyond just the Metal conversion. Companies like Feral put a lot of time and effort into that. Meantime you have companies like Blizzard who are doing Metal ports, but maybe not the same amount of work. Even though Blizzard games are "native" Metal they still don't tend to run as fast as in Boot Camp.

It's also possible MoltenVK isn't fully optimized. And "native" doesn't mean optimized. Apple shipped "native" OpenGL drivers for years and the performance was usually always bad.
 

GrumpyCoder

macrumors 68020
Nov 15, 2016
2,127
2,707
dota2 still runs much better (like >50% faster) under bootcamp using Vulkan than on macOS.
Is dota2 actually using native Metal now? Last I heard (about a year ago?), they used gfx-rs. The latter just replaced MoltenVK for whatever reason.
 

jeanlain

macrumors 68020
Mar 14, 2009
2,464
958
I'm not sure that's MoltenVK's fault. Games still require a lot of tuning on the Mac beyond just the Metal conversion.
No, I don't think that the conversion layer is to blame. But I suppose that it's much harder to come with good performance if you had little control on the code that is generated by the conversion. If we had a Vulkan driver, I expect the game to perform better and to benefit from optimisation made on other OSes.
[automerge]1591471855[/automerge]
Is dota2 actually using native Metal now? Last I heard (about a year ago?), they used gfx-rs. The latter just replaced MoltenVK for whatever reason.
On macOS, you can choose the Vulkan renderer via a DLC. AFAIK, it uses moltenVK. You say that it now uses another conversion layer?
 

goMac

macrumors 604
Apr 15, 2004
7,663
1,694
No, I don't think that the conversion layer is to blame. But I suppose that it's much harder to come with good performance if you had little control on the code that is generated by the conversion. If we had a Vulkan driver, I expect the game to perform better and to benefit from optimisation made on other OSes.

Maybe. Again, we had "native" OpenGL and the driver performed like garbage. Native doesn't automatically mean better performance.

It might be better for Apple to focus all their efforts on making Metal as efficient as possible instead of having two graphics stacks that both suck.

A "native" driver doesn't always mean that the Mac would optimize the same as Windows or Linux either. Again, we've been through this. The "native" OpenGL driver didn't provide equivalent performance and optimization to the other platforms at all.
 

jeanlain

macrumors 68020
Mar 14, 2009
2,464
958
It might be better for Apple to focus all their efforts on making Metal as efficient as possible instead of having two graphics stacks that both suck.

A "native" driver doesn't always mean that the Mac would optimize the same as Windows or Linux either. Again, we've been through this. The "native" OpenGL driver didn't provide equivalent performance and optimization to the other platforms at all.

I don't expect a Vulkan driver to perform as poorly as openGL on the Mac if Apple doesn't intervene to make it suck and let the GPU vendors do their job, like microsoft does. I expect the code layer between the apps and the GPU to be much thinner.
Updating Apple's old OpenGL codebase was increasingly difficult which is partly why Apple's GL updates trailed the release of the specification so badly. Apple might have had to take a few steps back but it should now be much easier for them to go forward - they no longer have a massive code layer between the developer & the GPU vendor to keep updating. While the OpenGL specification was defined by the Khronos board & implementation was split between Apple & the vendor the Metal specification is entirely Apple's & the implementation is effectively entirely up to the vendors.
 
Last edited:

goMac

macrumors 604
Apr 15, 2004
7,663
1,694
I don't expect a Vulkan driver to perform as poorly as openGL on the Mac if Apple doesn't intervene to make it suck and let the GPU vendors do their job, like microsoft does. I expect the code layer between the apps and the GPU to be much thinner.

"I don't expect it to suck as long as Apple can write a good GPU driver" is both my summary of your post and my rebuttal.

Apple doesn't even have Metal complete and optimized yet. Let's get one well working graphics stack first. Losing a few theoretical fps off of a Vulkan library is a small price to pay for having Apple focus on Metal so we can get well performing graphics on the Mac.

Plus Microsoft is forcing Vulkan to be an abstraction library anyway for modern Windows on top of DirectX. So it's not like Apple is behind Windows.
 

jeanlain

macrumors 68020
Mar 14, 2009
2,464
958
"I don't expect it to suck as long as Apple can write a good GPU driver"
Why do you expect Apple to write a GPU driver for Vulkan?

Plus Microsoft is forcing Vulkan to be an abstraction library anyway for modern Windows on top of DirectX.
Do you have a link?

Apple doesn't even have Metal complete and optimized yet.
An API is evolving. How can it be "complete"? If you refer to geometry shaders, I supposed they're not on the Metal roadmap.
And as the quote of my previous post says, Metal optimisation is on GPU vendors, not Apple. And I would argue that Metal can be quite good in the performance department.
Anyway, I'm not asking Apple to develop a Vulkan driver, so Metal has little relevance here.
 
Last edited:

GrumpyCoder

macrumors 68020
Nov 15, 2016
2,127
2,707
On macOS, you can choose the Vulkan renderer via a DLC. AFAIK, it uses moltenVK. You say that it now uses another conversion layer?
Don't know, I'm not following dota2 development. Someone told me in the past, can't remember who. Could have been one of my former CS students who went into game development. The best I could find is this: https://www.reddit.com/r/rust/comments/8pmniu
But it is old, so things could be different now.
 

goMac

macrumors 604
Apr 15, 2004
7,663
1,694
Why do you expect Apple to write a GPU driver for Vulkan?

I don't. And I'm saying even if they did, I don't trust it would perform as well as MoltenVK. There is a "if Apple did a good job writing a Vulkan driver, it could be a few FPS faster." They won't do a good job, so it's better to stick with MoltenVK.

An API is evolving. How can it be "complete"? If you refer to geometry shaders, I supposed they're not on the Metal roadmap.

Geometry shaders aren't usually as efficient as compute shaders. It seems intentional that Apple left them off. MoltenVK can use compute shaders to support Vulkan geometry shaders, just seems like there is some sort of hold up internally on deciding if they want to.

And as the quote of my previous post says, Metal optimisation is on GPU vendors, not Apple.

No, that's wrong.

Metal has an API, ABI, and runtime all supported by Apple. All of that requires optimizations.

Even so, Apple is the organizer for AMD doing optimizations on the drivers. Performance issues are investigated and prioritized by Apple.

And I would argue that Metal can be quite good in the performance department.

There are several threads here with software vendors complaining that Metal is not ready or not performing right.
 

jeanlain

macrumors 68020
Mar 14, 2009
2,464
958
Don't know, I'm not following dota2 development. Someone told me in the past, can't remember who. Could have been one of my former CS students who went into game development. The best I could find is this:
From what I could gather, dota 2 uses moltenVK. Some did experiments with other translation layers, but not Valve.
[automerge]1591864554[/automerge]
I don't. And I'm saying even if they did, I don't trust it would perform as well as MoltenVK. There is a "if Apple did a good job writing a Vulkan driver, it could be a few FPS faster." They won't do a good job, so it's better to stick with MoltenVK.
You say you don't expect Apple to write a Vulkan driver, then you go on saying that "If Apple did a good job writing a Vulkan driver...". :oops:
What I would like from Apple is to allow AMD and Intel (and Nvidia, while we're at it) to write their own Vulkan drivers, just like they do for other OSes.
I expect such drivers to perform better than a translation layer, based on my experience with dota 2. Why should they perform worse than on Linux and Windows?
There are several threads here with software vendors complaining that Metal is not ready or not performing right.
There were many in the past, but issues seem much rarer now. Ans it's not clear they were due to Apple's code (marksatt for instance mentioned driver issues, which should depend on GPU vendors).
Anyway, driver issues are common to all graphic APIs. DX12 and Vulkan drivers are not perfect either. In fact, I've seen at least one report from a Unity dev that the initial Metal port worked much better than the initial DX12 port.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.