Earlier quoted context omitted.
It's because Apple told Steam users to fuck off like 3 times in 5 years (nuking 32-bit support; no Vulkan/OpenGL support; switching to ARM). Users and game devs got the message Apple was sending loud & clear.
32-bit is the only change that actually broke anything, and it had been deprecated for a decade. 64-bit OpenGL/x86 games work fine on ARM.
Vulkan1.3 on the M1 in one month
291–300 of 372 posts
Re: Vulkan1.3 on the M1 in one month
#292Earlier quoted context omitted.
Supporting a different 3D API is really not the complicated or time consuming part of porting a game to another platform, especially when the target API is Metal. 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…
>Supporting a different 3D API is really not the complicated or time consuming part of porting a game to another platform, especially when the target API is Metal. 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 compl…
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).
Re: Vulkan1.3 on the M1 in one month
#293Earlier quoted context omitted.
It feels unlikely. Much smaller companies (Broadcom, Qualcomm) have no trouble writing compliant Vulkan drivers (let alone singular people), so I find it hard to give Apple the pass here. Assuming good faith on their part, Vulkan should be available; or at least some kind of cross-platform API target. Otherwise people are just going to ignore Mac and keep focusing on DirectX, like the status quo. Vulkan is everyone's…
Metal allows Apple to squeeze that extra performance out of their devices. They have full control over, and can implement whatever they need to deliver Apple Vision Pro for example. 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 de…
Or just make proprietary extensions?
Re: Vulkan1.3 on the M1 in one month
#294Earlier quoted context omitted.
I mean I owned a Mac back then, I remember pretty fondly that pre-Catalina MacOS was a fairly well-targeted platform. OpenGL was working for them; you could play first-person shooters, online games with fancy graphics, the kit and kaboodle. Things weren't perfect , but there was a lot of functional cross-platform software back when Apple commit to maintaining common APIs. You cannot deny that an entire ecosystem of s…
Go back and see how many of those games were running Cider though. The switch to kill 32-bit games killed more games than the deprecation of OpenGL did. The number of games that targeted OpenGL was ALSO shockingly low. 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 smal…
Re: Vulkan1.3 on the M1 in one month
#295Earlier quoted context omitted.
Why do you have tunnel vision on "native". It's a pretty meaningless distinction at this point. No steam deck users cares that all the games they are playing aren't "native".
Precisely. Modern games incorporate all manner of middleware to add functionality. Compression, video codecs, shading, ray tracing, physics, animation, anti-cheat. What's one more piece of software in the pile to abstract away platform-specific interfaces?
Re: Vulkan1.3 on the M1 in one month
#296I wonder if this effort to add Vulcan to Linux and then translate DirectX in Asahi Linux would impact Apple's dream of landing AAA games on Apple Silicon. Apple would like AAA developers to port their AAA games over to Metal so that the game has one code base but can run on iPhones, iPads, Macs, and the Vision Pro. Perhaps Mac gamers will install Asahi Linux in order to play AAA PC titles.
Pretty much, Asahi Linux could become the new Bootcamp for Mac users who dual booted to play games. FWIW I played Diablo II Resurrected on a M1 with "Whiskey". I was quite impressed that I was able to play a native Windows game just like that. It doesn't work anymore just because a stupid Blizzard launcher update now crashes and prevents starting the game. I also ran EverQuest II admittedly an old DX9 game but still…
Re: Vulkan1.3 on the M1 in one month
#297Their shaders contain a peculiar construction: if (condition) { while (true) { } } condition is always false, but the compiler doesn’t know that. What is the purpose of this other than to be a poison pill for people writing compliant shader compilers?
The purpose of the construction could be to inform the compiler of the fact that the condition is always false, so as to enable the compiler optimizer more. Take a look at these features in C++, LLVM or Rust if you're not familiar with the concept: * https://en.cppreference.com/w/cpp/utility/unreachable * https://en.cppreference.com/w/cpp/language/attributes/assume * https://en.cppreference.com/w/cpp/memory/assume_al…
Re: Vulkan1.3 on the M1 in one month
#298Earlier quoted context omitted.
> The argument that Vulkan would have solved this 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
Vulkan has nothing to do with the Steam Deck being able to run PC games other than being the API that DXVK and VKD3D-proton translate DirectX calls into. Vulkan isn’t the magic bullet, it’s just another API in the stack. The “magic” is the phenomenal amount of effort that has gone into those DirectX translation libraries. 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.
Re: Vulkan1.3 on the M1 in one month
#299Earlier quoted context omitted.
> The argument that Vulkan would have solved this 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
Vulkan has nothing to do with the Steam Deck being able to run PC games other than being the API that DXVK and VKD3D-proton translate DirectX calls into. Vulkan isn’t the magic bullet, it’s just another API in the stack. The “magic” is the phenomenal amount of effort that has gone into those DirectX translation libraries. Vulkan makes the work easier, but it is not what makes those games portable.
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.
Re: Vulkan1.3 on the M1 in one month
#300Earlier quoted context omitted.
>if they used Vulkan, it would mean they wouldn't have to debug on a Mac.[...] Neither should or would be blindly trusting that things are portable 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 t…
> 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. 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…
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.