Since bringing modern OpenGL and Vulkan onto Apple Silicon is impossible without an emulation layer anyway, could, theoretically, a native Metal API for Linux be created? Or is Metal too ingrained in macOS SDKs? MoltenVK is attempting to solve the same issues Alyssa was talking about in her talk [1, the last comment on the issue is hers]
Nothing is barring Apple from supporting Vulkan natively on MacOS. This is essentially the closing statement of Alyssa Rosenzweig´s talk.
With Apple knowledge of internal documents they are the best positioned to produce an even better low level implementation.
At this point the main blockroad is the opinionated point that Metal porting is the only official supported way to go.
If Valve pull up a witch-crafted way to run AAA games on Mac without Apple support that would be an interesting landscape. And maybe would force Apple to re-consider their approach if they don't want to be cornered on their own platform...
> If Valve pull up a witch-crafted way to run AAA games on Mac without Apple support that would be an interesting landscape. And maybe would force Apple to re-consider their approach if they don't want to be cornered on their own platform...
Right, except that Game Porting Toolkit and D3DMetal was an exact response to this scenario. Whether it's the right approach, time will tell, but Apple definitely already headed this one off at the pass.
Game Porting Toolkit isn't a response in this scenario. All advertising for GPTK is aimed squarely at publishers, and even Whiskey has to pull a binary out of a back alley for D3DMetal. Apple is essentially doing nothing and hoping it works.
And yet I see more Game available for steamdeck than for apple Silicon...
Maybe because porting as opposed to emulating requires action on developer side.
And this is especially true for existing game that "aren't worth porting" but are still fun to play. (Is there a Vulkan to Metal / OpenGL to Metal in Gaming toolkit? is it the NexStep?)
There is actually a sweet spot here for Valve that could benefit everyone:
- Valve as a necessary third party
- Gamers to access a wider catalog
- Apple so they don't have to bother developing a porting process for old games
I don't see why not. There are, after all, implementations of DirectX for Linux too, which is how Proton works. But I'm not sure if it would be better to build that API as a layer on top of Vulkan (completely "client side", like MoltenVK or dxvk do) or actually integrate it more deeply into Mesa. The first is certainly easier to start with, I guess.
[1] https://github.com/KhronosGroup/MoltenVK/issues/1524