protonscr

[Question] Game Porting Toolkit...

dxvkclosed question
doitsujin/dxvk#3923 · opened 2024-03-22 by jotbyte · updated 2024-03-22 · 4 comments · github
Jjotbyte 2024-03-22 github

With last year's release of the "Apple Technologies for game developers" Game Porting Toolkit, I wanted to know what the core developers of DXVK think about it. I don't know if anyone's ever asked, but I'm curious.

For context:

  • macOS (even with Metal) was always treated as an terrible platform for gaming.
  • DXVK was created as a cross platform library, but dropped macOS support because of limited Vulkan support.
  • Community developers spent hours of their lives finding solutions for proper DXVK macOS support.
  • Apple begins touting macOS as a gaming platform with Apple Arcade after Apple Silicon launch.
  • Apple, the owner of the platform, begins advertising a porting toolkit largely made up of the hard work of the people at Wine/DXVK.

Companies do this all the time, except Apple is a 3 trillion dollar company doing this specifically to push developers and users onto their next-gen products. Why do I think it's controversial? Their next generation of Mac products are basically:

  • vertically monopolized
  • with a higher price point (and everybody knows the Mac's pricing strategy)
  • Macs turned into iPhones (debatable, but really just obvious)

From a business perspective, I'd say Apple intends to make their next generation of Macs as profitable as the iPhone. Now using free community labor to achieve that is where I see a problem. They own the platform and could've just as easily brought Vulkan to iOS/macOS (even at a lower cost than Metal). They did that with sidecar (even though the idea was "borrowed").

In my opinion they out-sourced all the hard-work of making Metal something serious, using it to support their push to Apple Silicon. Even though end-users benefit from all this, they pay Apple to benefit from the fruits of community work–unlike DXVK and Wine, where users benefit for free on multiple-platforms. I lastly want to acknowledge that Apple has poured a great amount of money and resources into Metal and I'm sure Metal's developers would like to see it succeed.

KK0bin maintainer 2024-03-22 github

DXVK was created as a cross platform library, but dropped macOS support because of limited Vulkan support.

Not really. DXVK never supported MacOS and doesn't really support Windows either. It only happens to work on Windows with a bunch of games. From the very beginning, it was developed for Linux.

Apple, the owner of the platform, begins advertising a porting toolkit largely made up of the hard work of the people at Wine/DXVK.

It doesn't use any DXVK code. The license file of GPTK mentions DXVK but I think that's just because DXVK served as a reference.
They did ship the source code of Crossover 23 though. The license allows that but it's still not great that they're taking the source code of a commercial product and ship that free of charge without (as far as I know) compensating Codeweavers for it.

In my opinion they out-sourced all the hard-work of making Metal something serious, using it to support their push to Apple Silicon. Even though end-users benefit from all this, they pay Apple to benefit from the fruits of community work–unlike DXVK and Wine, where users benefit for free on multiple-platforms. I lastly want to acknowledge that Apple has poured a great amount of money and resources into Metal and I'm sure Metal's developers would like to see it succeed.

The entire point of Game Porting Toolkit is to let game developers preview their game on Mac OS to get a rough idea about the feasiblity and performance of a port. That's it. It also comes with an extremely restrictive license that basically forbids doing anything else with it. (I think it later got a small exception for non-commercial usage though.)

It's a developer tool and not exactly critical. I personally don't really expect Apple to maintain it for a long time. Their D3D11 implementation (D3DMetal) is also slow, partially because it goes for a brute force approach when it comes to synchronization on the GPU and basically does a full barrier after every single render or compute pass.

I think it's pretty interesting regardless and it's a shame they didn't open source D3DMetal.

Ddoitsujin maintainer 2024-03-22 github

DXVK was created as a cross platform library, but dropped macOS support because of limited Vulkan support.

Truth be told, I never gave a single shit about macOS and still don't. There used to be some very limited consideration for MoltenVK in the code - some fairly harmless, non-intrusive checks for some features that weren't supported at some point or just being more robust when we lose the surface for some reason, things like that - but that's about it, and with the release of 2.0 we essentially dropped that too. Things have moved on a little on both sides, I don't know if MVK can currently run any of our recent releases.

Now putting into words what I think of Apple as a company would probably get me banned from Github, but as for their game porting kit - once again, don't really care, doesn't impact my work in any way, nor does it really compete with Proton or anything like that. They don't even use DXVK as Rhedox stated above, but even if they did, there wouldn't be anything wrong with that as long as they adhere to the license.

And that's really all I can ask for here. DXVK deliberately uses a very permissive license so that people can pretty much do whatever they want with it, and that includes things like a large GPU vendor using (parts of) our code to replace 9on12 in their graphics driver package.

Jjotbyte 2024-03-22 github

The license file of GPTK mentions DXVK but I think that's just because DXVK served as a reference.

I thought that since DXVK virtually has no API documentation, it would be considered derived? I know of another instance where Apple engineers just derived an implementation of something from somewhere else. But I do think open sourcing D3DMetal would really change the optics of it all.

Jjotbyte 2024-03-22 github

Now putting into words what I think of Apple as a company would probably get me banned from Github

Haha fair point. I couldn't find any discord/irc link, but to be honest I didn't look hard enough.

with the release of 2.0 we essentially dropped that too.

I remember that release. I lost all hope of effortless Wine/DXVK gaming on macOS becoming a thing. Idk I think Apple just wants to create a Playstation-styled ecosystem within their ecosystem. It's not a bad thing, but what matters is how they're doing it. It's why the DOJ is suing them right?

And that's really all I can ask for here. DXVK deliberately uses a very permissive license so that people can pretty much do whatever they want with it, and that includes things like a large GPU vendor using (parts of) our code to replace 9on12 in their graphics driver package.

That's fair. if you're good with it, I'm good with it (even though I'm virtually a nobody haha).

Nothing extracted yet.