Really just drives home how big of a mistake it was ignoring Vulkan for the past decade on Apple's behalf, but lord knows they won't admit that until it's too late.
Really just drives home how big of a mistake it was ignoring Vulkan for the past decade on Apple's behalf, but lord knows they won't admit that until it's too late.
The poor game support on macOS is a mix of Apple apathy towards gaming and the low potential sales numbers.
Also, of the few new Vulkan apps being released (a whopping 9 in 2023), most actually only support a single platform:
https://carette.xyz/posts/state_of_vulkan_2024/
Apple also offers a D3D12 porting toolkit now (basically D3D12 running on top of Metal, same thing like Proton is D3D running on top of Vulkan) which business-wise makes a lot more sense than native Vulkan support since there are many more D3D12 games than Vulkan games: https://developer.apple.com/games/
If you have a graphics programmer on hand, no. The vast majority of indie devs are powerless in that domain, though. I don't see many attempts out there to make it easier for them either.
Maintenance is always the time consuming part, be it simple or complex work. People aren't going to support Linux even if Vulkan theoretically makes it straightforward, because the time needed to maintain it isn't worth the lack of customers. Steam + Proton gives even less incentive to bother. So that advantage doesn't translate to much business value when evaluating DX12 vs. Vulkan.
This is an issue going all the way back to the OpenGL vs. D3D days. Nothing fundamentally changes as long as Microsoft completely swamps the PC gaming market.
Otherwise I would expect that the game either uses a library which abstracts away the differences between the system 3D APIs (shameless plug: https://github.com/floooh/sokol, but also BGFX, WebGPU or AFAIK SDL3 is also getting a cross-platform 3D API), or uses a complete game engine like Godot, Unity or Unreal.
> Maintenance is always the time consuming part
This is the only thing that matters, it's not the initial port that's the problem, but the long term maintenance and customer support and that often doesn't make business sense on non-mainstream platforms like Linux or macOS. But a cross-platform 3D API doesn't make any of that easier (you'll still have to struggle with driver bugs for instance, or just plain weird configurations, especially on Linux systems - unless going through Proton which I'm sure works around a ton of compatibility issues and driver bugs under the hood).
Which is why I ask; which should we prefer, a native port that Apple will depreciate for some reason or a community-supported translation layer that's based on a reasonable cross-platform standard?
I owned an iPhone, I know that the apps you pay for all eventually break, and instead of fixing it Apple will only tell you to complain to the developer. Compare that to Steam, where I can still play Far Cry 2 and Fallout: New Vegas in perfect emulation, likely for the foreseeable future.
All sales are initially low before a market is grown.
If Apple wanted a machine that was also a great gaming machine, they could have that, and that market would then grow. The fact that they even have a gaming market at all left, shows that the appetite is there. (Of all the machines I have it installed on, Baldur's Gate 3 for example looks best on my Mac screen thanks to the HDR stuff)
Now they do. After 5 years of people begging them for DXVK, Apple gives us... a downstream fork of DXVK retooled for Metal.
I really just feel bad for Mac owners. Like; you could be playing Apex Legends with us, but can't. Like I said, these changes to Asahi will likely make it easier than MacOS to play games on. Who would use MacOS for gaming when Steam Play works out-of-box on Linux? A masochist, I say.
I remember a lot of Mac users that paid for Bootcamp for this very purpose, back in the day. It might even be more appealing since Asahi is free.
The number of games that run natively on Vulkan is negligible. The number of games that run on Metal by comparison (natively) is orders of magnitude higher.
If we're ONLY talking about the ability to use Proton, Apple does now have Game Porting Toolkit that does effectively the same thing with comparable performance characteristics if you take out the other contributing overhead elements.
All this talk of DXVK doesn’t explain why games based on engines with native metal support aren’t on a Mac either.
Again; if Apple had just supported Vulkan alongside Metal like a normal non-paranoid company, their users wouldn't be caught in the middle of this. It's such a blatantly obvious solution with no user-facing downsides. It's shocking that anyone would defend the status-quo when it's so notoriously and obviously broken.
Prior to metal and Vulkan, many games used Cider to target Mac despite having the same APi (at that point, an up to date OpenGL).
And many of the current game devs do have Metal versions of their engines that they target towards iOS, yet don’t have a macOS version.
The fact of the matter is that it comes down to market share. Macs have historically not had a large user base that also had capable GPUs. It’s not been worth supporting that tiny market share
It’s the same on Linux. Why are there so few Linux native games? The argument that Vulkan would have solved this is completely incongruent with the reality of the state of gaming.
This will inevitably go back to “well at least we could have used proton” but that’s also not true, and besides there’s GPTK. And then the argument becomes circular , because all evidence points to: devs just don’t care about Mac’s from a support perspective. You can make it easier, they still won’t come until the possible demographic size is larger.
and even with DXVK, what about all the other platform specific differences? Vulkan wouldn't solve those either.
> Why are there so few Linux native games? The argument that Vulkan would have solved this is completely incongruent with the reality of the state of gaming.
My brother in Christ, the "reality of the state of gaming" is that Mac owners are buying Steam Decks just to access the games Apple tries to kneecap. Vulkan fixed it, and Valve commoditized Apple's compliment.
I don't want things to be this way. I think Mac owners should have easy access to the games they want to play, but Apple insisted otherwise for so long and refused to ever admit that they were wasting their time. It's part of the reason I got rid of my Mac so I could daily-drive Linux; they were wrong, and other platforms were right.
This is something that OSS fans do not want to reconcile: Open source graphics APIs have LONG lost out to proprietary graphics APIs in gaming. OpenGL had a very small base in games, Vulkan is even smaller.
and again, you went exactly back to where I knew you would and pre-empted it because it's the obvious playbook of answers. Vulkan didn't fix gaming on Linux. Proton did. And again, you ignore the key part of the sentence: NATIVE
Linux has fewer *native* AAA games than macOS. Vulkan has not solved that.
The SteamDeck is a product targeted at gamers that provided a new value proposition: AAA gaming on the go. Which further reinforces my point that API is irrelevant to the discussion, its about demographic. Apple has a strong gaming demographic on the mobile side (with metal no less).
The steam deck didn't introduce new Vulkan/Proton capabilities. Why was Linux gaming stagnant before it? Doesn't that exactly reinforce that its the form factor proposition that made it skyrocket?
It did. If you want to parade around how cool Cider is, it doesn't make much sense to venerate the update that killed it.
> Linux has fewer native AAA games than macOS. Vulkan has not solved that.
Imagine all the Steam Deck users that are pissed because they can't play Resident Evil 8 and Tomb Raider natively! They must be super upset, and envious of Apple's superior native version. Surely.
Hey, here's a magic question for you; which do you think will get supported longer, a DirectX title running on Proton or an Apple-native title running on Apple software. Do you trust Apple to keep supporting your game as long as Proton would keep supporting it?
but it in fact did! You can play 90% of games on linux precisely because of Vulkan. Just boot Steam Deck or whatever and play. There is no way it would work out without Vulkan
I truly feel half of the replies here are glossing over the things I’ve already covered and perhaps are people who haven’t actually tried the equivalent Mac solutions and seen where the resultant deficiencies lie or the delta between platforms that proton would also have to bridge further.
Vulkan isn’t the magical silver bullet people think it is.
We've all used tinker-tool applications to get a random app running through WINE, but DXVK is more than that. It is the solution to a problem Apple refuses to address, and even Apple is willing to admit that they need DirectX translation in order to make games run on Apple Silicon. How is the future of gaming on Mac going to look any different if we continue to follow in the footsteps of Cider? How long do you think that shanty-utopia will be supported on the latest OS update?
Vulkan makes the work easier, but it is not what makes those games portable.
As Steam Deck is running AMD, a conversion layer on top of Mesa Gallium would have been possible, but again DX12 support never materialized.
This has been a key project in the past few years and lots of work went into it. For more info, look up Vulkan portability initiative.
They might not.
Yep, that's unfortunately true...
> Vulkan Renderer has now been enabled in Star Citizen. This new renderer will be off by default but has been added to the Graphics settings menu. In this first release, the focus is on hardware/driver issues, stability, and any major performance issues. At this point we do not expect Vulkan to be outperforming D3D11 on the CPU usage due to the fact we haven't enabled multi-threading of the rendering submission yet, but do expect CPU performance to be within a 30% margin. Once we have multi-threading enabled we expect a significant net-gain. On the GPU side we should be closer to parity.
> Performance improvements and stability improvements will be on-going throughout 3.23, with the aim to make Vulkan the default and more performant implementation in a following release. In the meantime we appreciate any and all feedback towards this.
> Additionally, you may see a few new folders now in Star Citizen's appdata. These relate to our new Graphics Settings file (just includes the Graphics Renderer setting for now), Vulkan's Shader Cache, and Vulkan's Pipeline Cache.
> We are currently working with AMD and Nvidia to improve functionality and compatibility for later Driver Releases. It is recommended that you update to the latest GPU drivers for this release but there are still a few known issues that could cause instability and crashes with Vulkan until a later AMD/Nvidia Driver update. If you run into major issues you may want to swap back to DX 11. If the game crashes on launch after switching to Vulkan, you can reset this by deleting your shader folders in %localappdata%\Star Citizen
https://robertsspaceindustries.com/comm-link//19915-Star-Cit...
Does it work well in Wine on Linux with Vulkan renderer now? I tried a long time ago and I was waiting for their Vulkan option to revisit it.
https://www.reddit.com/r/starcitizen/comments/1cl0bwn/star_c...
Also, did they start using EAC? That usually works very badly in Wine unless developers flip some switch to allow it on their side?
There's a Linux Users Group that would know much more about it than I do.
Another major point is the development cycle. Since Metal only works on Apple devices that makes developing for it more annoying for game developers which are mainly using Windows. It means they will have to switch to a Mac device to debug issues with their Metal backend. By supporting Vulkan Apple would allow for a much smoother developer experience. (While Metal Developer Tools for Windows exists, as I understand it it only allows you to compile shaders for Metal on Windows, but to actually test that anything works you will need an actual MacOS device.).
[0] https://code.blender.org/2023/01/introducing-the-blender-met...
You then say that if they used Vulkan, it would mean they wouldn't have to debug on a Mac. This is overly optimistic. Even in the OpenGL days, you'd have to test on all platforms because there's so many variances. In general, the game designers are rarely working multi platform, and it's down to the engine devs themselves + QA. Neither should or would be blindly trusting that things are portable. Vulkan/DX on AMD/NVIDIA also perform differently enough that you can't just assume parity.
Your other statement about nobody wanting to work on Metal for Blender is a bit odd too. There's no current Vulkan or DX backend for it. Does that mean they're not desired either? AMD and NvidiA contribute support for their favoured API's as well, like Optix that people still desire.
> If Apple supported Vulkan, it would have allowed everyone who is not Windows to benefit by making Vulkan become more standard.
This didn't prove itself out when OpenGL was a thing. OpenGL was everywhere but barely used.
> Luckily Xbox seems to be kind of dying right now so perhaps supporting dx11/12 will not be as important in the future.
That doesn't mean that Vulkan would replace it though. Windows gaming still eclipses Linux, and game developers have to target multiple APIs either way. There's very little upside to them switching to Vulkan for it.
Also bear in mind that DX is much more than D3D. It's a lot of APIs. There's many reasons to use DX beyond just the 3D graphics APIs.
I didn't mean this, just that you can actually run whatever shaders you compile rather than needing a Mac just to see your output. My point was that you would get "a smoother developer experience," which is true.
> Vulkan/DX on AMD/NVIDIA also perform differently enough that you can't just assume parity.
Vulkan has some pretty strict conformance tests[0]. It's not like you are going to run into differences between conformant Vulkan implementations every day. It's very different from not being able to run the shaders you've compiled at all. You just need to know what extensions are supported. Also, Apple's support for OpenGL was never good. They only supported OpenGL 4.1 for years while 4.5 was out, for example. I don't know if Apple's OpenGL was ever even conformant, being that 4.1 is not listed on the site.[1]
>There's no current Vulkan or DX backend for it.
There is actually (as an experimental feature currently).[2] And Khronos did not have to send developers to implement it for them. My understanding is that Blender also implemented CUDA/Optix themsleves and only got help from Nvidia, rather than Nvidia implement the whole thing for them, although I could easily be wrong there.
>This didn't prove itself out when OpenGL was a thing. OpenGL was everywhere but barely used.
OpenGL was not nearly as performant as direct X. When Direct X came out people switched to it. Vulkan and dx12 are very similar however.
> That doesn't mean that Vulkan would replace it though
Yeah, because each console wants their own special graphics API to force on everyone instead of using an open standard, despite Xbox and Playstation GPUs being from AMD which supports Vulkan on it's consumer GPUs.
>Many engines support Metal, in addition to the plethora of console specific APIs
And many don't, including the engines of a lot of AAA games like Elden Ring, Cyber Punk 2077 and Baldur's Gate 3 (although CDPR are now switching to UE5). And studios are generally using modified versions of UE so my guess is that means they are generally making low level changes sometimes, and so it makes sense to me that they sometimes may write their Dx/ Vulkan code for different things sometimes. (this is just my guess. I admit to being uninformed here). Even if not there are still ways that you could program something in UE without writing any direct DX/Vulkan code that could still result in worse performance for one of the backends vs. the other. That is why on games that support multiple graphics backends oftentimes one is better than the other. And developers will release updates improving only certain backends. Adding an extra platform like MacOS is not simply clicking a button. although it is easier today than before, if it was that simple, then literally every UE game would be on MacOS. (Yes, you do 'just click a button' to support MacOS in UE5, but there is still more to it than that.) And increasing the surface area of platform divergence does nothing to help the situation. Also, while it doesn't matter for Apple, having to maintain multiple backends adds needless extra work for engine developers
[0] https://docs.vulkan.org/guide/latest/vulkan_cts.html
[1] https://www.khronos.org/conformance/adopters/conformant-prod...
The problem is that Apple, since it decided it was going to make its own GPUs for all its devices, deemed it necessary to simplify their support. Apple's Metal API is custom-made to the silicon Apple is making, and Apple keeps Metal development strictly focused on their hardware. Of course they could have chosen to support more APIs, but the strength of iOS clearly helped them decide to move iOS game developers to the Mac, rather than try to court the so-called AAA companies who are stuck in an x86, Windows+console, heat up the wazoo world. That whole world is difficult to reconcile with Apple's priorities.
Do you have any examples of this? My guess is that the API, being higher level than vk/dx, is designed for ease of use by developers, not to expose hardware level details. In fact Vulkan would be more suitable for that as it is lower level.
>the strength of iOS clearly helped them decide to move iOS game developers to the Mac
What do you mean by this? Are there a lot of mobile game studios publishing on MacOS now? (this is a legitimate question)
>rather than try to court the so-called AAA companies who are stuck in an x86, Windows+console, heat up the wazoo world.
Why is that? The only actual barrier there is x86. But Vulkan is not related to x86 anyway. It is only related inasmuchas they are both not supported by Apple. But this discussion is itslef about if Apple should support Vulkan, so the reasoning here seems circular. Also, if Apple doesn't like x86 games that is fine because they don't support x86. So it's not like they are not support Vulkan because they think developers will start distributing x86 games to their customers because that's impossible.
>heat up the wazoo
I mean, it will use the same about of energy as any other demanding application like Blender or video editing. And you can always lower the graphical settings to make it consume less power. Similarly mobile game developers would likely increase the graphical settings for a mobile game that they port to MacOS.
The example I am thinking of is with MTLBuffers and storage options. You have several different storage options for MTLBuffers that wouldn't necessarily make sense on non-apple hardware and especially non-apple silicon. Options that are not backwards compatible with intel macs. When I go to use MTKTextureLoader with the newTexture command, I can set in the options an MTKTextureLoader.Option.StorageMode as shared storage. On Apple silicon, this means that the it is a shared buffer by both the CPU and GPU since with the apple silicon architecture the came peice of memory can be accessed by both. There are a bunch of different storage options that may not apply to other configurations outside of the Apple silicon configurations.
Metal is not generally higher level than VK/D3D12, instead it's a mix of high- and low-level features (where the low level features typically had been added in later Metal versions and are optional to use).
You can stick to the convenient high level parts of Metal v1 (which feels a lot like the spiritual successor to D3D11) if that's good enough (which often is), but if needed there are lower level and more explicit features that match or in some parts go beyond what Vulkan and D3D12 have to offer (AFAIK argument buffers allow a couple of things that are not possible on D3D12 or Vulkan, or at least would require vendor specific extensions on Vulkan - like setting the PSO via an argument buffer, recorded in a compute shader).
Can you expand on this? What happens / doesn’t happen when clicking that button? Is debugging the additional effort, or incompatibilities?
Oh man with every fibre of my being do I wish this were true. I’m debugging a different Vulkan driver bug almost every 2 weeks. PC drivers are passable, mobile drivers are a joke. Shader miscompilations everywhere. Performance traps. Arm Mali drivers currently implement vkCmdPipelineBarrier2 by calling vkCmdPipelineBarrier in a loop for every individual barrier instead of issuing a single barrier. I’ve measured Barrier2 as almost 10 times slower than the older version, only on Arm drivers though.
You have to test everywhere
Mobile drivers are still a problem, and part of the problem is that they passed their conformance tests years ago, and the test suite has improved a lot since then.
But it's a giant surface area to test, it is not perfect. But still better than what we had 10 years ago.
Sure, but supporting two variants of Vulkan is less work than having to support two incompatible APIs. It's not a binary thing.
The fact that there's n+1 extensions does not mean you have to support 2^(n+1) combinations. I can't recall a single situation where I would've needed even two code paths to get something done in the past few years.
Situations where you need two or more code paths only arise if you use new hardware features like mesh shaders or ray tracing. For "software" features like dynamic rendering or dynamic states (both of which simplify things a lot), there's no need for a fallback on desktop, just require a recent driver version and you're good.
That said, the mobile driver support situation and lack of long term updates is an issue if mobile support is required.
Why not? With fully conformant Vulkan you could have run all the games that work in Wine without being hit by limitations of MoltenVK that affect performance and compatibility, same as you can run them on Linux now. So Vulkan could totally be very crucial for making gaming on macOS not being some second class experience.
Apple simply demonstrate they don't care about gaming and gamers. They only care about "approved by Apple way of gaming" which is totally not the same thing but which Apple always does for everything anyway, shoving in users' faces "we know better than you what you need".
That's why I will always say that gamers should avoid using Apple.
The real reasons are not good at all (i.e. Apple's obsession with lock-in) and have no excuse.
honeykrisp is already a "real conformant" implementation and is listed on Khronos's website already.
https://www.khronos.org/conformance/adopters/conformant-prod...
Metal is a hidden tax that isn't obvious, but it's there.
After all, scientists don’t write much CUDA oriented for game development anymore or custom maths shaders, they have their own CUDA libraries helping them in their own domains better than what a gamedev orienter Vulkan would do. Any percent shaved off developer time and running time is worth a lot of money.
The Apple Metal platform surely is customized to the needs of Apple, its devices and its users ultimate needs, in a way Vulkan will never be. Unified memory on recent Apple silicon M1 M2 M3 where RAM and VRAM are somehow merged.
Maybe the society of worldwide developers had better things to do than spend precious time on Vulkan.
But money talks and game engines want a slice of that sweet apple pie.
I'm not sure "more" is the right term here. There are about 1.3 billion iPhone users worldwide. Sure, Vulkan covers more OS environments, but how important is that to a game developer vs. total available users? Does Vulkan user reach exceed 1.3 billion?
You want to get into the iOS gaming market, go Metal. By definition you've expressed you don't care about the other OS's.
You want to make a AAA game, you probably don't go Metal if you want enough market coverage to recoup your costs - though I will be delighted to be proven wrong when a AAA iPhone game comes.
If Apple want to change their "AAA game" attractiveness they need to address this. It's not that hard - the article took a month but even a year is fine. Apple just needs to get it done, but it doesn't seem like they care to make User<->GameDev relationship easy. Either the gamedev needs a whole other version of their game on Metal. Or the users have to do a lot of homework and fiddling to get a modern AAA game to run.
I wonder if they have Vulkan internally and simply know their GPU won't look good in direct comparisons - which is fair; beating or even leveling with nVidia is hard. But if anyone can show AMD and Intel how to do it....
Google was starting to offer a DirectX porting kit on the same year they decided to ramp down Stadia, there is even a GDC talk on it.
My hot take is that when AAA games will be shipped on mac os they will not use porting kit in runtime and just call Metal. Imho API court battles are fun to watch from afar.
Likewise you don't care about Vulkan. You care about DirectX and whatever Playstation has
...exactly. Which is why, unless you're given a license to re-impliment DirectX, it makes so much more sense to use Vulkan and it's DX9 through DX12 translation layer.
What am I missing here?
And the translation layer exists largely due to Valve business decisions, not because "community came together or something". This glorious amazing support didn't even really exist until 2018 (when it was launched with official support of 27 games)
1. Apple has never truly cared about gaming on the Mac
2. iOS only supports Metal, and Metal serves Apple extremely well
3. Apple's dropping of 32-bit apps and switching to M* chips has hurt gaming on Macs much more than any perceived harm from not supporting Vulkan.
If you only care about latest Android versions, and Samsung and Google phones, sure go Vulkan.
Vulkan is everyone's ticket out of that mess. Not only does it provide Apple an industry-standard API for third-parties to develop on, it flips the DirectX problem on it's head. Because you support Vulkan 1.3 you get DXVK support alongside DX9, DX11 and DX12 support. Now it doesn't matter what third parties do, because you win every time; Steam Deck politics.
The status-quo is simply detracting from the value of using MacOS; the only feasible explanation is that Apple is hoping to somehow force developers into using Metal natively. Outside Tomb Raider and Resident Evil, I just don't see it happening.
> The Apple Metal platform surely is customized to the needs of Apple
That clearly doesn't stop anyone from writing Vulkan drivers for the hardware, though. OP appears to be blatant evidence of this.
For example; CUDA is well-customized to Nvidia's specific hardware, but their hardware also supports Vulkan drivers. Same goes for Intel with oneAPI and AMD's ROCm; all of them still support Vulkan. Apple is quite literally one of the only mainstream manufacturers that does not support it.
Steam Deck handles it just fine, alongside OpenGL. You use Vulkan to run DirectX games, OpenGL to accelerate the desktop and browser (can soon be replaced with Vulkan too) and fall back to OpenGL for everything else. I'm not aware of any desktop stuff the Steam Deck can't do; it edits video, it runs Blender, it can browse the web and compile apps.
Granted, Vulkan of course isn't a panacea here. But without it, stuff like the Steam Deck simply wouldn't exist. Vulkan is valuable because it provides a preservation layer for Windows software that Apple is unwilling to support themselves.
I'm told the problem is some legal spat between Apple and Khronos that has led to a "no Khronos standards anywhere at Apple" policy. I don't know the details beyond that.
With Vulkan, they would have to wait for a committee to approve required changes, and still they could not probably optimize it to match their GPU an CPU hardware profiles in such an efficient way.
And not least at all, to optimize the developer experience and tools. Apple GPU debugging tools are probably the best tools you get for graphics development debugging, and you get that only on macOS.
IMO Metal is a nicer API than Vulkan. At the same time, you can ask, why should Microsoft get to keep DirectX, and not just write a Vulkan driver ?
That doesn't stop them from implementing both Metal and Vulkan.
Or just make proprietary extensions?
They support both. And sometimes the Vulkan driver is faster than their native DirectX one too.
Maybe it'd be interesting to contemplate a world in which red team, green team, and blue team all have their own proprietary APIs and there are no cross-vendor abstractions, but that's not what we're discussing here.
Maybe Metal is customized to Apple's needs but how is it customized to Apple user's needs? One thing is for sure, had Apple been using Vulkan, the porting process to macOS would have been much easier.
Porting the 3D renderer to another 3D API isn't the hard part of a game port, but also:
Apple is offering a D3D12 porting toolkit since a little while which TBH makes a lot more sense than native Vulkan support (since there are so many more D3D12 games than Vulkan games):
It would make more sense... if GPTK behaved like DXVK.
But instead, you're not allowed to distribute games with it, you can't easily modify it, and Apple themselves doesn't commit to supporting or updating it. Unlike Proton, which is community maintained, GPTK is Apple-maintained. If something breaks, your best option for "fixing" it is to run upstream DXVK on a properly supported machine.
There's no clean answer here. You push that mentality of "Customers first" too hard, and you get the PS3; an unwieldy architecture that devs are forced to support but end up with worse ports than the Xbox 360. The customer doesn't necessarily "win" here.
You push developers first too hard and you get Linux. You can do anything you want if you dig deep enough. But as we all know, the common consumer barely reads the tutorial, let alone learns how to configure complex settings in a CLI.
There needs to be some middle ground, and not making developers duplicate their work for every new private business is at least a starting point.
>Maybe the society of worldwide developers had better things to do than spend precious time on Vulkan.
Given MacOS's marketshare, I'm sure they did. Let's not pretend that the few metal games we have on Desktop wasn't built on the grounds of some Candy Crush clone that generated billions of dollars 10 years ago and justified the forced upgrade (we can definitely justify from there if "making candy crush run faster" is a better thing to do. But it pays the bills, I guess).
Very few devs want to support Mac and the numbers speak for themselves.
not making developers duplicate their work for every new private business is at least a starting point.
Im sure we all understand the benefits of a unified API / same abstraction layer. It’s about how the abstraction is leaking in real life and how to squeeze every last percent of developer’s experience and final application speedFirstly, several games engines and rendering libraries support it.
Secondly, it does not have to be _native_, on top of Vulkan you can run OpenGL and Direct3D emulation layers, which will cover most of the rest. macOS has long since abandoned their native OpenGL drivers, and MoltenVK has many caveats.
So? If no one is using that support to ship PC games using Vulkan, who cares? Those same engines all support Metal, so clearly this is irrelevant to the question of Mac gaming.
You mean iOS games?
Everyone that wants to keep their 3D sanity keeps targeting OpenGL ES, which is exactly why Google is now doing ANGLE on top of Vulkan as means to pressure OEMs to deliver proper Vulkan drivers.
"It is still Metal, regardless" you say, with your mind scrolling full of Zynga dice-rolling games and Supercell micro-transaction machines.
Crazy stuff like that happens, when you have access to quality entertainment and not drip-feed gatcha games.
When it's the only way to interface with MacOS and especially IOS, I'm not surprised. But that says more about Apple as a platform than Vulkan as a graphics API.
>Apple does now have Game Porting Toolkit
yup, only took some 9 years after they abandoned Khronos to get it up and running. I'm sure nothing signifigant would have developed in that time.
They'll never admit it. They only caved on USB-C because they were legally required to. They won't cave on this, or NVidia support, or putting the charge port on the side of the mouse and not the belly, etc.
When the iPhone switched to Lightning from the clunky 34-pin iPod connector, a whole lot of people got pissed off with Apple and stayed pissed off with them for years. Literally years. People were convinced Apple did it just to sell more cables. So if you're Apple, and you know the history of the last time you forced everyone to buy new cables, and now you have orders of magnitude more people using your phone…you probably put this off as absolutely long as possible.
Would they have gotten there without pressure from the EU? Honestly, I think so -- I used to agree with you, but when the iPad Air, not just the Pro, went to USB-C, I changed my mind.
10 years later, almost on the dot, they replaced Lightning on the iPhone with USB-C.
Doesn't seem weird at all to me.
The more you think about MFi and Lightning design patents the harder it is to believe that they were simply being honest and sticking to their word.
Do not try and pretend that USB was any good when Lightning was announced. And even USB-C is a mess of conflicting and confusing optional specifications.
Certainly one that Apple didn't struggle to navigate, considering they designed Thunderbolt around the specification.
Later Thunderbolt is Intel doing the right thing: they took many of the features that USB-C lists as optional, and made them required for Thunderbolt specification. That's why the first M1 Macbook was Thunderbolt-capable/enabled, not fully Thunderbolt certified
In the history of technology, Apple has chosen to switch connectors countless times. Every single time people complain, and every time Apple has the same exact reason for choosing a specific connector: its the one that makes sense for its customers when the device is released.
Maybe we're still waiting for that one to make "sense for it's customers when the device was released". Good grief.
I'm always unsure about this because it only supported USB 3 host for one specific accessory, the camera adapter. I question whether that implementation was just a hack or something that could've scaled to proper USB client support and others.
There was never a USB 3 Lightning to USB-A or USB-C cable.
They did not want to standardize. The idea of forcing them didn't come up in any significant way until after they proved that.
And I don't know what their laziness about USB 3 is supposed to prove. They didn't consider 3 support necessary for USB-C either.
Nobody said that happened. I said for phones.
Admit what? That they had their own API before anyone even thought about Vulkan? That they have Metal running on one of the most popular platforms in the world (iOS)? That other major platforms don't support Vulkan (Xbox, Playstation; Windows supports DX and defers Vulkan support to GPU vendors)?
People were more willing to write a DirectX translation framework for Vulkan than Mac users were willing to write one for Metal. And now with Game Porting Toolkit we basically have confirmation that nothing has been stopping Mac users from playing DirectX games with DXVK besides... working Vulkan drivers.
So it would be nice to see Apple's explanation for being so insular. Especially when their "solution" is repackaged and relicensed free software that we've all been using for years.
By what criteria?
> People were more willing to write a DirectX translation framework for Vulkan than Mac users were willing to write one for Metal.
There were significantly more games playable on Mac than for Linux for years, even after Vulkan's introduction. Apple hurt gaming on Mac by dropping 32-bit support and changing CPU architectures significantly more than any fantasy about not supporting Vulkan (which is really not supported by most major platforms, and isn't supported by game developers either).
And it wasn't some vague nebulous people willing to write a DirectX translation framework. It was Steam pursuing its business strategy (and doing an amazing job of it). Before steam not a single person could be bothered to get off their asses and do a similar job for any platform.
...games? Isn't that what we're talking about? How Apple suffers from spurning the gaming industry, and does absolutely nothing to improve the scenario?
> There were significantly more games playable on Mac than for Linux for years
> Apple hurt gaming on Mac by dropping 32-bit support and changing CPU architectures significantly more than any fantasy about not supporting Vulkan
Oh, well this is just wrong. Box86 had "solved" the x86 -> ARM translation path before Apple Silicon even existed, albeit slowly. The 32-bit depreciation was bad, but wasn't a dealbreaker for applications like WINE; there is a working codepath for WOW64 in WINE today.
Once again; the OP's post is about how they currently have games working on Linux that are flat-out unplayable on MacOS. Whether you want to blame fantasy features or not, Apple has clearly made some sort of arbitrary limitation on the userland capabilities that has stopped developers from doing this in MacOS and forced them onto Linux. Seems to me that the pretty clear difference is in the title of the article; Asahi supports Vulkan 1.3, MacOS does not.
> Before steam not a single person could be bothered to get off their asses and do a similar job for any platform.
Before Steam, there was no incentive to develop it. But people most certainly did do the same, job for multiple platforms. Codeweavers wrote several D3D translation layers over the years, WINE had multiple old and slow DX drivers (DirectX-D3DX9) that semi-worked, and even without that you could still run most titles through software acceleration.
And look; if Steam goes rogue and decides to drop support for all platforms but Android Wear, we don't really have to worry that much. The important work is upstreamed in DXVK and distributed by multiple parties, not just Valve. Frankly, the biggest advantage Valve still holds over the community is how smoothly their UI goes from clicking "play" to launching the game. I struggle to imagine a situation where Valve goes full-Monty and the community suffers for it.
I'm struggling to remember when Apple last truly cared about gaming on Macs
> How Apple suffers from spurning the gaming industry
Ah yes. Apple truly deeply suffers. In which reality?
> Oh, well this is just wrong. Box86 had "solved" the x86 -> ARM translation path before Apple Silicon even existed, albeit slowly
1. No idea what Box86 is
2. Slowly means it didn't solve it
3. The actual reality and not some fantasy is that after dropping 32bit support hundreds of games otherwise supported on Macs became unavailable/unplayable on Steam.
There were literally significantly more games available for Macs than for Linux. Even after Vulkan was released. The parity changed only after Valve released Proton(2018) and MacOS dropped support for 32-bit apps (2019).
Come on, this is not some ancient history. This happened just 5 years ago. I, a gamer, lived through it. And was basically forced to go ahead and myself a Windows PC because I couldn't game on the Mac anymore. And this had nothing to do with Metal, or Apple not supporting Vulkan.
> Asahi supports Vulkan 1.3, MacOS does not.
Neither does Xbox, or Playstation, or the iPhone. Windows only has native support for DirectX and delegates Vulkan support to the GPU vendors.
There's also Android where support became mandatory in 2019, and Switch (no idea when they added support, but I've seen people mention you should go to the native SDK and skip Vulkan for performance).
Truly an amazing API that so few platforms or even developers people care about: https://carette.xyz/posts/state_of_vulkan_2024/
> Before Steam, there was no incentive to develop it.
Steam was released in September 2003
Vulkan 1.0 was released in February 2016
People going out of their way to root for Vulkan seem to have a very tenuous grasp on reality, or recent history, or both.
> And look; if Steam goes rogue and decides to drop support for all platforms but Android Wear
All this is beside the point, or is even orthogonal to the point. The only reason Proton exists, and works as well as it does, is because Valve sees business value in it. That's it.
Had Valve seen business value in having a translation layer for DX->Metal, we would've had it as well. They don't (for good business reasons), and the amazing opensource community bitches about Apple instead of doing the work that they couldn't be arsed to do in the first place.
You can interpret that in a few different ways: perhaps Khronos saw Metal's release, went "oh shit, we need to do something", and scrambled to start development of a new API over the next month. Or maybe Khronos (and Valve and others) were already talking about something new for some time before that, and only got a fire lit under themselves after Apple's Metal release. Or maybe the two aren't related at all.
Yes, it took a further two years for any kind of reasonable Vulkan support to be out there, but either way, I think it's a bit disingenuous to say Apple was a trailblazer with absolutely no peer here.
Regardless, the gaming situation on macOS is still... not great. Certainly some game developers have adopted Metal, but overall the main target is still DirectX, and I feel like contemporary/modern OpenGL (ES?) still probably leads Metal. Hell, at this point, Vulkan might have seen more general adoption than Metal has.
There are no two interpretations. Metal was released before Khronos even had their "kick off meeting". The official introduction of Khronos didn't happen until 2015. Vulkan 1.0 was released in 2016.
Prior to 2014 there was no Vulkan, and no idea of Vulkan. Sevral companies (AMD among them) tried to peddle their own proprietary APIs as a potential future direction after OpenGL.
And yes, Khronos scrambled to have a modern API after both Microsoft and Apple ended up having one.
> Yes, it took a further two years for any kind of reasonable Vulkan support to be out there
No. It took two more years to just release version 1. And even in 2024 it's somewhat laughable to talk about "reasonable Vulkan support" when the major gaming platforms (Windows, Xbox, Playstation) don't support it (Windows supports DX natively, and Vulkan support is left to the whims of GPU vendors). The actual support for Vulkan is declining: https://carette.xyz/posts/state_of_vulkan_2024/
> I think it's a bit disingenuous to say Apple was a trailblazer with absolutely no peer here.
The trailblazer was Microsoft. What is disingenuous is to pretend that Vulkan was anywhere at the forefront or that Apple had to pay any attention to it, or that Apple is somehow in the wrong for not supporting it.
> Hell, at this point, Vulkan might have seen more general adoption than Metal has.
Of course it doesn't. Because iOS exists, supports Metal, and is a major gaming platform
Not saying that means they'll immediately see the light WRT 3D graphics APIs. Just that they aren't universally hostile to revising prior decisions.
Except for projects like this, Vulkan really only exists on Linux and Android. It'a not really a thing on Windows. Sure, some games are using it, but they're like 1% or less.
Metal is arguably the best of the 3 APIs, though of course it was easier to do without having any legacy behind it and without being designed by committee.
And... Metal is better in this regard? I'd take SPIR-V generation for two target architectures over a complete render overhaul any day of the week.
> Metal is arguably the best of the 3 APIs
Then what harm is there in offering Vulkan alongside it?
If Metal is the obviously superior choice, there should be no problem doing the same thing Microsoft does by allowing developers to use both. Why is Apple afraid of letting their APIs compete?
I guess part of the weirdness I feel is when people say "Linux is the most used OS in the world" because of all the Android devices floating around, which is super misleading, since "Linux" isn't really an OS on its own anymore. (Technically it never was, but I'm not one of the "GNU/Linux" pedants, so...) Android and GNU/Linux are very distinct, very different OSes, so it makes no sense to lump them together. "Linux is the most-used kernel in the world" is a more accurate statement, but, again, I'm not really sure what that actually tells us in practical terms.
I think what it does indicate is that the kernel is featureful, stable, extensible, reliable, and a good base to build products and services from.
SteamOS on the Steam Deck is a close cousin of desktop GNU/Linux, purpose built for gaming. It might be a handheld, but it's also a PC. I think the popularity of the device tells us that the compatibility of Linux with Windows software, games especially, is good enough for the average person. It tells us that people are willing to tolerate a bit of a learning curve and some differences to what they're accustomed to so long as the value is there, and 95% of things just work.
It's also worth noting that many Steam Deck users choose to continue using SteamOS, based on Linux, to run their Windows games, in spite of the fact that their device will also run Windows.
IMO it's more down to Apple's historic view on videogames and software compatibility in general- they are okay with frequently breaking things (like they did with 32bit apps) and expect developers to just constantly accomodate that. With a giant iOS market and its deluge of relatively small free-to-play/service-based games, it's a worthy model for devs to pursue (until the game is unprofitable, and then, in a couple of years, it's delisted as incompatible).
For a more traditional desktop/console style gaming, where a long tail is expected, with little further support, it's a tough proposition to release on a platform that has a miniscule market share AND constantly breaks. Its own graphics API is just a cherry on top, I think
People who keep saying this have surprisingly short/bad memories. And very little idea of the state of the industry.
- Apple already shipped Metal version 1 a full year before Vulkan was even an idea. iPhone, one of the largest casual gaming platforms in the world, is Metal
- Windows and Xbox is DirectX
- Playstation is their own thing (keep forgetting what it's called)
That leaves Android (mostly underpowered and fractured to even run games properly) and Switch who really support Vulkan.
That doesn't stop them from implementing two APIs at once, like every single GPU hardware vendor in existence. But given their avoidance of OpenGL and OpenCL, we should have always assumed Apple's goal was to usurp Open interfaces and replace them with only proprietary options. What else could they intend to signal?
> Windows and Xbox is DirectX
Yes. DirectX is covered almost in it's entirety by DXVK. It's harder to find a DirectX game that isn't playable with Vulkan than one that is.
https://www.protondb.com/explore?sort=playerCount
> Playstation is their own thing (keep forgetting what it's called)
Yeah, and it keeps biting them in the ass when they have to then backport Playstation-native titles to PC with DirectX. It's a notoriously redundant process.
> That leaves Android (mostly underpowered and fractured to even run games properly) and Switch who really support Vulkan.
Well also Windows, Linux, BSD, HaikuOS, Google Fuchsia, QNX, Stadia and Tizen.
And hardware wise you can't forget that Intel, AMD, Nvidia, ARM, Qualcomm and Broadcomm all support it in their GPUs.
Apple is experiencing firsthand what the lack of a CUDA analog does to a company. Whether or not they care is up to them, but clearly the laser-focus on high-performance GPU compute is not doing Apple Silicon any favors in the server space or in the desktop.
Instead, Google created the proprietary Renderscript for Android, while AMD and Intel kept delivering broken drivers, partial implementations of OpenCL, never delivered a proper OpenCL 2.x implemenation with mature C++ support, IDE and GPGPU graphical debuggers.
Again, you can blame everyone else for doing their own thing but the project only has one father that could estrange it. Apple's blindness killing OpenCL makes everything in Microsoft and Google's graveyard look reasonable by comparison. If Apple wants a repeat of the Metal for gaming situation in AI, they are more than welcome to self-sabotage themselves until they run out of energy.
Apple is not a GPU vendor.
> Yes. DirectX is covered almost in it's entirety by DXVK.
You mean a non-official non-supported wrapper. No one is stopping you to create such a wrapper for Metal/VK. Oh wait, it exists
> Yeah, and it keeps biting them in the ass when they have to
Has nothing to do with the reality of Vulkan support
> Well also Windows, Linux, BSD, HaikuOS, Google Fuchsia, QNX, Stadia and Tizen.
The only API Windows supports natively is DirectX. It's up to the whims of the GPU vendors to provide support for Vulkan.
Stadia is a very major player, true. Considering it's dead. TVs as gaming platforms (that's what Tizen is) are non-existent in the grand scheme of things. Neither is Fuchsia. Or HaikuOS.
The only winner here is Linux, but that really only works through the thankless work of maintaining the DX->Vulkan wrappers. Again, nothing is stopping you from doing the same work for Metal.
This is only true if you forget how Vulkan came about.
Apple released Metal in 2014
Vulkan as a project was started a month later, also in 2014. Officially announced in 2015. First version released in 2016.
Switch does have OpenGL 4.6 and Vulkan support, however if you want the full power of the games console, you need to use NVN instead.
Even if Apple supported Vulkan that doesn't mean AAA games would be ported to Mac soon. AAA require beefy GPUs and Apple silicon isn't going to match Nvidia.
If AAA games sold only to those with desktops and high end graphics cards, PC gaming would have died a long time ago. Even today, many games run fine on Pascal era graphics cards, and they certainly run fine on mid range laptop versions of Nvidias 4050 & 4060.
Apples silicon can keep up with those, plus the simpler, less diverse hardware on Mac would probably lead to better optimisation if the market was big enough.
I'm not saying Vulkan is the only thing holding gaming from Apple computers, because I think the control Apple has over software distribution on Mac is also something that scares large publishers away from investing in the platform.
Hope springs eternal, but there's a reason we want Vulkan. Native gaming on Mac is awful; it is quite literally the worst gaming experience you can have between Linux and Windows, both of which can run DirectX games without issue. If we had functioning Vulkan drivers on Mac, we wouldn't be begging and grovelling for games to work; they just would, like on Steam Deck.
Really? 7 out of the 10 most popular games on Steam work fine if you have Vulkan 1.3 drivers: https://www.protondb.com/explore?sort=playerCount
Counter Strike 2 Dota 2 Stardew Valley
How are you getting 7/10 unless you're also counting games that happen to run under Proton, which aren't native? And regardless, that's a really small sample size to extrapolate from, when it's easy to get a more extensive list that is around ~250 games total.
https://www.vulkan.org/made-with-vulkan https://www.pcgamingwiki.com/wiki/List_of_Vulkan_games
Of which, a massive percentage are based on engines that have Metal support as well.
I am counting Proton games because they very explicitly are supported by sufficient Vulkan coverage. In case you weren't paying attention that's kinda the only reason anyone cares about Apple Silicon getting Vulkan 1.3 coverage in the first place.
> when it's easy to get a more extensive list that is around ~250 games total.
You're right, when we push it out to 1000 titles it gets closer to 80% playable: https://www.protondb.com/dashboard
> Of which, a massive percentage are based on engines that have Metal support as well.
...yeah, you keep telling yourself that. One day, they'll definitely flip the switch on MacOS support. Certainly.
This is just you being completely disingenuous now and purposefully avoiding the actual point of the discussion.
It would be a lot more disingenuous if the Steam Deck didn't exist and Linux gaming was a farce. But... it's not. And the only thing stopping Apple from enjoying the same spoils is a little bit of humility.
Given those efforts, if Apple/Mac had support for Vulkan, Valve would probably make it all just as available on Mac as they do on Linux for Proton.
If you think Vulkan support for games is insignificant, look at Metal support.
I think Vulkan makes a lot of sense for macOS, actually; the Nintendo Switch, to which tons of games have been ported already, uses the ARM+Vulkan design and has a relatively weak GPU (but much weaker, as it's very old). It's not quite native, but a lot of supporting libraries that work on the Switch will also work on Mac. Everyone is talking about porting Windows games to Mac, but with the way things are developing, porting Switch games to Mac may actually make more sense, assuming Nintendo's promises for the upcoming Switch replacement are to be believed.
Metal is supported on iOS. You know, one of the largest gaming platforms in the world.
I challenge you to find one metric where the iPhone isn't number one.
Enjoyable gaming experiences?
I do know apple is trying to push for AAA games on iphone but so far its a small drip on a giant cesspool.
If you want actual good games, be it indies, AA or AAA, you go for one of the three consoles, windows or steam deck/linux.
However, too often people disregard what’s happening on mobile because the games are so bad, and they shouldn’t because mobile gaming is the growth sector in video games. For example, all the idiotic layoffs are not so idiotic when you consider mobile gaming. Executives at gaming companies want mobile gaming margins on their AAA video games, when the margins are actually much smaller. I don’t agree, but I know the logic.
Remember, android exists, and supports vk.
But hey you're right, there are more released games on Android. I was wrong on that one.
Apple did just that with the Game Porting Toolkit.
> If you think Vulkan support for games is insignificant, look at Metal support.
Pretty much all iOS games run on top of Metal.