3 ms·
It's a shame that Hackernews posts about graphics API features are so often derailed by discussions about Vulkan adoption. I'd be fine with the discussion if it
by Impossible 7y ago
It's a shame that Hackernews posts about graphics API features are so often derailed by discussions about Vulkan adoption. I'd be fine with the discussion if it was in context (a critique of Metal or even Vulkan) but threads about new Metal API features and even threads about WebGL and WebGPU are increasingly filled with the same fly-by responses about Apple's lack of support for Vulkan from people that have never used the API and are not graphics engineers. It would be much more interesting to have discussions about the merits of different approaches to raytracing in Metal vs. DXR vs. Vulkan than read the same tired half baked concerns about the existence of Metal, although it's a good chance for me to give Pjmpl more karma I guess. No one complains that Apple doesn't implement the entire Android API for iOS, why is it different with Metal?
Edit: The talk isn't even about new API features or raytracing hardware. The only reason it's "with Metal" is because it's a WWDC talk, it could be called "implementing GPU raytracing with compute shaders" and apply to Vulkan, DirectX, OpenGL or any other modern graphics API. Another good talk along these lines is this one by Matt Swobda (https://youtu.be/ZrFkKrw1uGI https://youtu.be/ZrFkKrw1uGI).
- Reelin 7y ago> why is it different with Metal? Because the GPU ecosystem has historically been fractured. Vulkan looks like it has the potential to finally end that, but Apple has a walled garden and doesn't seem to be on board. But I agree, such things aren't all that relevant to the article being discussed here.
- Impossible 7y agoHave they? OpenGL was really the only option on most platforms for years. Even Windows has always supported OpenGL even if driver support from various vendors wasn't always good and official Microsoft support lapsed. Consoles have always used propiertary APIs, and before someone brings up PS3 and PS4 OpenGL implementations they are wrappers over low level APIs, so if they count then MacOS and iOS do support Vulkan via MoltenVK (there is even an official SDK on LunarG). If anything we've seen more fragmentation in the last 5-6 years due to the brief introduction of Mantle, followed by Metal and Vulkan. Some of this was necessary because OpenGL and DirectX development had stagnanted.
- Reelin 7y ago> we've seen more fragmentation in the last 5-6 years due to the brief introduction of Mantle I thought Mantle was what became Vulkan? > Consoles have always used propiertary APIs I certainly don't expect console manufacturers to adopt Metal, but at least there's the possibility of (eventual) unification with Vulkan. > OpenGL ... support from various vendors wasn't always good and official Microsoft support lapsed And Windows was the main PC gaming platform, so developers used DirectX instead of OpenGL as a result. On OSX, Metal became a thing; as a result, last time I checked OpenGL was stuck back at version 4.1 (that's > 5 years behind everyone else). I don't see Android, iOS, or Linux adopting DirectX. I don't see Windows or Android adopting Metal. If you're hoping for unification, Vulkan seems like quite literally the only possibility. Add to that Vulkan support from a variety of hardware vendors other than AMD and Nvidia as well as officially planned Vulkan-OpenCL interop and I'm actually somewhat optimistic about things.
- pathartl 7y agoTo add to this, I can see Microsoft adopting Vulkan. I don't understand why Apple has taken this approach. Well, I understand why _Apple_ did, but I feel like most companies in their position wouldn't invent a new API.
- danudey 7y agoBear in mind that there was a great deal of fragmentation within OpenGL as well, due to tons of proprietary OpenGL extensions to support new features of video cards anyway. Just because we had "OpenGL" and "DirectX" doesn't mean that there was only one thing to consider when doing engine development.
- Impossible 7y agoStrongly agree with this. That is a big part of the reason I don't think a unified API on all platforms helps the situation much. Hardware across different vendors and device categories (mobile vs console vs PC) varies wildly. I've never worked on a game that targeted console where "PC directx" and "Xbox directx" weren't different targets and usually AMD and Nvidia had slightly different code paths in some places for extensions or profiling reasons. Add to the fact that just having a portable graphics API doesn't magically make your game portable to all platforms, and that most games are made with portable engines that already run in some from on all major consumer hardware it just seems like there is less of a practical reason for Vulkan every where.
- pjmlp 7y agoTo discuss 3D APIs with their intrinsic value, instead of FOSS religion about them, we are better off visiting Gamasutra, Flipcode (sadly long time dead), Gamedev, IGDA forums, IGF,Game Connection, Making Games, Develop among many others in the game development scene. I have long time ago learned the hard way, how the values between both communities are completely different.
- Const-me 7y agoProgrammers have a tendency to over-generalize stuff. The idea that we need one true programming language, or one true GPU API, or one true text encoding, and use it everywhere, looks good on the surface. It’s when one digs deep enough into technical details, it became clear why people pick less portable technologies. It’s always about tradeoffs. For GPU API, I think #1 reason is vendors support. On PCs, Windows is _the_ target platform for majority of game developers. The only GPU API with first-party support is DirectX. GPU vendors do descent job supporting GL and VK there (except maybe Intel), but first-party support is still better. Major parts of D3D work in the kernel, dxgkrnl.sys does quite a lot of things. On Android and many embedded Linuxes, it’s similar with GLES. Vulkan support is improving fast, I hope in a few years VK will replace GLES there, but so far there’re many older devices.