Comment by 6SixTy
2 days ago
Main issue is the lack of Vulkan support on macOS. Currently, solutions like MoltenVK have to be developed to add Vulkan support, which isn't as clean as just supporting it.
For some reason the prospect using Wine, Rosetta 2, and DXVK with MoltenVK on top just to run some games doesn't inspire a lot of confidence that this whole thing will be performant and/or stable.
LunarG is working on first party Vulkan driver for MacOS https://www.lunarg.com/lunarg-achieves-vulkan-1-3-conformanc.... My understanding is performance is worse than MoltenVK at this point, but it's getting there.
This isn't an "issue" so much as a feature. Apple had some vulkan support until move to the full A1 architecture had them only make Metal a first class citizen to the GPU. Concurrently happening was a pretty nasty breakup of Apple with the Khronos group.
This wasn't an inconvenience, it was a deliberated decision.
It's an issue for me, a Mac owner. All the games I want to play have buggy graphics on Mac. I have a PC just for playing with my friends.
Apples decisions are often wrong when it comes to third party software.
It's Android where you need Vulkan. Overwhelming majority of PC games that can run on Vulkan can also support Metal due to the engine they use.
The real barrier is DX games.
No, the main issue is a fundamentally different rendering pipeline (tile based deferred rendering) that makes "Vulkan support" a conceptually difficult square peg in a round hole problem, since everything is made for immediate rendering, like all the other mainstream GPUs use.
Loads of GPUs with Vulkan support use TBDR. The Adreno GPU in the Steam Frame's SnapDragon SoC, for one.
There is also a Vulkan driver for the M1/M2 GPU already, used in Asahi Linux. There's nothing special about Apple's GPU that makes writing a Vulkan driver for it especially hard. Apple chooses to provide a Metal driver only for its own reasons, but they're not really technical.
No. For best performance, you have to batch your calls/memory access patterns with TBDR in mind. Dropping in a Steam PC game (indy, AA/AAA) game render pipeline, specifically optimized for Nvidia/AMD/Intel, to a TBDR GPU, is going to give poor performance. That's the context of this discussion. Round pegs DO fit into square holes, you just have to make sure the hole is bigger than would normally be necessary. ;)
Steam frame is more for streaming PCVR than running existing PCVR games natively.
The entire reason vulkan didn't ship with dynamic rendering and instead had its entire renderpass system is because it was to support tile based rendering.
I'm aware it supports tile based rendering. I put it in quotes because support doesn't mean performance. Good TBDR performance requires the developer/engine have the concept of TBDR in mind. 99.9% of the PC games out there do/did NOT have TBDR in mind.