4 ms·
From what I gather, Game Porting Toolkit is two things - a fork of Wine, and their own adaptation/extension of open source projects for DirectX compatibility. S
by DCKing 3y ago
From what I gather, Game Porting Toolkit is two things - a fork of Wine, and their own adaptation/extension of open source projects for DirectX compatibility. Some observations:
Windows compatibility:
* Windows platform compatibility is achieved with a slightly patched version of Codeweavers' Wine fork - virtually all of the hard work of Windows compatibility has been achieved by the Wine developers and Codeweavers and was already available open source before today.
* Interestingly, Apple is distributing this thing as a Homebrew library. Has Apple ever done this before? [1]
DirectX compatibility:
* In addition, outside of the core Wine based stuff, there's a framework called
D3DMetal.framework. This is a DirectX 9-12 compatibility layer akin to DXVK used in Proton as a compatibility layer from DirectX 9-11 to Vulkan. This is what seems to be the game changer here compared to before. Before today, running DirectX on macOS was possible but lost a lot of performance and compatibility needing to go through Apple's old OpenGL support or a third party Vulkan intermediary layer in MoltenVK. This is direct (heh) first party Direct3D to Metal translation.
* Actually, it's more than "akin to DXVK". The D3DMetal.framework contains copyright attribution to DXVK as required under their MIT license. It's quite likely Apple ported a lot of DXVK to Metal. It's worth noting that DXVK itself doesn't support Direct3D 12 though, Proton uses another LGPL2.1 licensed library called VKD3D for that.
* However, D3DMetal.framework is very much not open source itself. Its license is actually very restrictive, seemingly only permitting use for game development/QA use cases. [2]
* The restrictive license seems to make it harder for someone like Valve to use this akin to how they use Proton on Linux in a sanctioned way. Apple seems intent on preventing developers from dumping their games on macOS with just their compatibility layer. It definitely won't stop hobbyists making better tools to continue run Windows games on Macs though.
* The fact that D3DMetal.framework appears to support DirectX 9 and 10 is interesting. No new commercial efforts use those anymore, so that's just there for what? Allowing homebrewers to run their 00s era Windows games?
[1]: https://github.com/apple/homebrew-apple/tree/main/Formula https://github.com/apple/homebrew-apple/tree/main/Formula
[2]: It contains a license with the following language - "you are granted a limited, non-exclusive, non-transferable, personal copyright license to (i) install, internally use, and test the Apple Software for the sole purpose of developing, testing, or evaluating video games for use on Apple-branded products".
- mort96 3y agoIt's sad that D3DMetal isn't open source. Worth noting that this stuff is exactly why people should strongly consider using a copyleft license. It's pretty annoying that nobody can build on top of Apple's work here or incorporate any improvements into DXVK, but that's the license the DXVK project chose.
- scns 3y agoWell, i'm pro copyleft but in this case i have to disagree. This way Apple could develop D3DMetal much faster, and attrbution is given. If DXVK where GPL3 it might have happened years later if ever.
- mort96 3y agoHuh, why are you saying Apple could develop D3DMetal much faster because DXVK was MIT-licensed? Literally nothing would've changed up until now if DXVK had been GPL-licensed, the only difference is that now that they've made it publicly available, they'd have had to license D3DMetal under a GPL-compatible license. Where does the extra delay come in?
- PinkiesBrain 3y agoThey can weaponize it against Valve. Helping displace steam for relatively little effort bumped it up in priority.
- mort96 3y agoIs it faster to build it to weaponize it against Valve than it is to build it without the weaponization?
- PinkiesBrain 3y agoThere's only so much developer time and management focus. "This will help us cement our monopoly on software distribution without being too obvious to regulators" is a good pitch. PS. I'm sure the people who pitched it and their managers are all sufficiently skilled at lying and lying to themselves to not put it or even think in those terms.