4 ms·
Wow, in the past it was 1 or 2 different 3D architectures. Now we have 3 of them: DirectX on Windows, Metal on macOS, Vulkan/OpenGL4 on Linux
by therealmarv 7y ago
Wow, in the past it was 1 or 2 different 3D architectures. Now we have 3 of them:
DirectX on Windows, Metal on macOS, Vulkan/OpenGL4 on Linux
- carlosdp 7y agoVulkan/OpenGL are multiplatform
- mroche 7y agoAnd with the use of Vulkan, you get the modern improvements (and technical complexity that comes with it) on both Windows and Linux through hardware vendors' drivers, and MoltenVK for bridging that code to macOS and iOS. I don't have a comparison chart between DX12, Vulkan, and Metal but if engine authors can standardize on the open standard of Vulkan, it could have huge effects on creating cross-platform games and applications. A big push for this wouldn't be having authors like Epic, Unity, or CryEngine do this, but all the private publishers investing the time to learn and switch their next-gen engines over to Vulkan.
- mschuster91 7y agoAnother problem with OS X support is that there are no modern nVidia cards for modern OS X machines as there are no drivers (Apple refuses to sign them, and nVidia refuses to release unsigned drivers that people could install with SIP disabled)... but many PC games advertise for nVidia.
- mroche 7y ago> but many PC games advertise for nVidia. This is another issue unto itself. This often stems not from a CUDA/OpenCL debate, but rather how well a particular development group may be supported by either vendor in terms of tech and driver support. NVIDIA is usually pretty good at supporting game makers, and getting support for their GameWorks libraries added. GW for a long time was a weak spot for AMD as they couldn’t add proper driver support, crippling performance and limiting feature sets. A good amount of GW is OSS now, so getting those features and support in is up to AMD. I haven’t read the EULAs though. https://developer.nvidia.com/gameworks-source-github https://developer.nvidia.com/gameworks-source-github
- Rusky 7y agoThey are less multiplatform than you would like, though. MacOS is stuck on an old version of OpenGL with no chance of updating since they deprecated it, and it has no Vulkan support (ignoring translation layers like the one Rocket League used, of course). On Windows, Vulkan is a second-class citizen that isn't always available. And beyond that, there's the age-old problem of driver quality- for a given platform, using the native API tends to hit fewer bugs, perform better, and support more features. This has been true for years with Direct3D vs OpenGL on Windows, for example- browsers on Windows all wrap Direct3D to implement WebGL.
- out_of_protocol 7y agoSo everyone except mac. And you have MoltenVK
- kevingadd 7y agoDon't forget consoles, though I've heard reports that you can use some variant of GL on Switch. PS4 requires a custom backend unless you license some sort of middleware. XBox left Direct3D 9 behind a long time ago (which is probably one reason to shift onto Direct3D 11 - to share more code between PC and XBox)
- kitsunesoba 7y agoHowever, it’s worth noting that Vulkan, Metal, and modern DirectX are so similar to each other that translation layers are extremely thin and have a performance penalty somewhere between negligible and nothing. That’s a dramatic improvement from where things were before OpenGL and DirectX had no interchangeability at all.