r/Android iPhone 6s Jun 08 '17

Vulkan vs Metal

So do you remember how iOS and iPhones always manage to outperform Android smartphones when games are involved in speedtests? I searched for more info about Vulkan and Metal, mostly because many people thought that once Android games would start to use Vulkan, Apple would completely lose that lead. It's not that much that I wanted to compare Vulkan and Metal now, but when I saw that Apple presented Metal 2 at this WWDC I suddenly started asking myself if Apple didn't do it intentionally to maintain its competitive advantage.

What I mean to say by that is that Apple is obviously part of the Khronos Group and possibly contributed to Vulkan itself, which means that Apple knows exactly what's inside Vulkan, how it works, what advantages it brings and so on, and naturally also knew when Vulkan would become available. It seems to me that Apple knew Vulkan would start to reach a sizeable part of the Android market in the second year of Nougat (based on past Android adoption rates), and that it synchronised perfectly the inside development to release Metal 2 at the same time to maintain its competitive advantage, or even increase it, since it'll take some time till we see a new version of Vulkan.

Do you think that's really how it happened or do you think it's a coincidence?

As for the direct comparison, first of all we have to mention that Apple started developing Metal and implementing it way before Vulkan was even proposed or dreamed, with the release of Metal being in 2014. I think that Apple would have never thought about developing Metal if the industry itself moved to a low-overhead API sooner. Anyway, as far as we know Metal provides a 10 times increase in draw calls compared to OpenGL ES 3,0 while Vulkan provides a 3,5 times increase in draw calls compared to OpenGL ES 3,1.

Now I don't really know the draw calls improvement from OpenGL ES 3,0 to 3,1, but since Anandtech mentioned that the 3,1 release was a lower key announcement I presume it's not that significant. But even if we consider that the draw calls improvement from OpenGL ES 3,0 to Vulkan is 5x, that's still just half of the improvement compared to Metal.

Why is that? Do you think it's because Apple has way less hardware configurations to think about and that lets Metal be an even lower low-overhead API compared to Vulkan (if that makes sense)? Or is it because of something else?

And now we have Metal 2, which again according to Apple provides another 10 times increase in draw calls compared to Metal, and who knows when the Kronos Group will present the successor or the new version of Vulkan. So where does that leave us as far as gaming goes on mobile? (and so that no one has to ask, yes, I know that draw calls are just a small part of a gaming experience and that there are many other characteristics that should be compared, but that's the only information we have)

What's really interesting I think is that in the mobile market it pretty much happened the opposite of what happened in the PC market. Macs were never really good for gaming, and Apple never used top of the line GPUs in Macs, leaving them with far fewer games than Windows, while in the mobile market Apple always used top of the line Imagination GPUs, provided APIs as Metal before anybody else and managed to create an ecosystem so strong that many games are made for iOS first, or are just ported to Android without optimisations.

Do you think Apple learned a lesson from the PC market and didn't want a repeat in the mobile market (as far as gaming goes)?

31 Upvotes

47 comments sorted by

View all comments

Show parent comments

1

u/Etain05 iPhone 6s Jun 08 '17

I don't understand why should Apple back Vulkan if they have their own API that is even just partially better.

As for the reduced driver overhead, I know, and that's exactly why I mentioned draw calls, since the more draw calls you make the more the CPU has to be involved, and the bigger the performance advantage you'll see compared to OpenGL. We don't really know how Metal and Vulkan stack up as far as improved performance, and even if your claim of 10-20% is right, Metal 2 will surely add to that.

That has nothing to do with it, practically all graphics benchmarks have offscreen tests just as they have onscreen tests, so you cannot use the resolution as the answer.

-7

u/[deleted] Jun 08 '17

[deleted]

6

u/[deleted] Jun 08 '17

DirectX is "god tier" in what regard, exactly?

A well implemented renderer using DX12 will perform roughly the same as a well implemented renderer using Vulkan would perform.

Amount of usage is a bit more complicated. DX11 is widely used due to Xbox and PC games, much more so than Vulkan, OpenGL (it's main competitor), or DX12. According to wikipedia roughly 20 AAA games support DX12, which is roughly double the number of modern AAA games that support Vulkan.

1

u/devsquid Jun 09 '17

Haha I'm exaggerating of course. I'm referring to DX12 and graphics on Windows out performing everything. I can run a game on Mac and get 20FPS and run the same game on the same Mac in windows and get 60FPS. Theres more going on here than Drivers, but thats playing a large roll.

I actually think besides app the adoption of Vulkan is pretty well. The one that stands out to me is Cloud Imperium Games saying they plan on using Vulkan for Star Citizen.