Hacker News new | past | comments | ask | show | jobs | submit login

Reinvention of the wheel and tax on supporting "yet another thing" for developers who need to deal with it.

Same reason standards have some value.




I don't think it's reinventing the wheel, since Vulkan was ready quite a bit after d3d12 but yeah I guess maybe it could be the standard on windows after d3d12 becomes obsolete...

But that's going to be in quite a while since I can't think of an actual feature (for end users) that is missing from one vs the other right now.

Everything on Windows already uses d3d12/DirectX basically so it would actually be a huge wheel reinvention to migrate to a standard just for the sake of it.


I think saying that DX was first so it's Vulkan that was reinventing the wheel is incorrect with historical context.

AMD and DICE developed a prototype API called Mantle. Which is what both DX and Vulkan are based on.

Both Vulkan(glNext back then) and DX12 were announced around the same time. VK came a bit later as standards are usually slower in coming to decisions but it's not like VK was reinventing anything from DX.

I remember we were having a laugh reading early DX12 documentation as it was in parts just copied from Mantle with names unchanged in places!


> DirectX 12 was announced by Microsoft at GDC on March 20, 2014, and was officially launched alongside Windows 10 on July 29, 2015.

> Vulkan 1.0 was released in February 2016.

What people forget is that Mantle was basically a proprietary AMD API that they wanted and developed until, well, the release of Metal in 2014 and DX 12 in 2015.

Only then did they "graciously" donated Mantle to Khronos for the development of modern APIs.

Vulkan was not just late. It suffers from the same issues as OpenGL before it: designed by committee, lackluster support from the major players.


AMD indicated from the beginning they wanted it to become the universal API.

Opening stuff up formally also takes time. So it all was going towards Vulkan in one form or another and no one was forcing MS to push DX12 NIH while this was happening.

And counter to your point, despite Mantle being "proprietary", MS directly used it to create DX12 (same as Vulkan used it), so AMD clearly didn't have any complaints about that.


> AMD indicated from the beginning they wanted it to become the universal API.

Was it an indication or was there any actual work done? Such as supporting anything else but AMD cards for example, inviting others to collaborate etc.?

> despite Mantle being "proprietary", MS directly used it to create DX12

I can't remember the term for it: what do you call when a single company develops something with little to no external input and collaboration, even if it's sorta kinda open?

As for "NIH"... Microsoft has/had a much bigger investment and interest in new gaming APIs than the few AMD cards that Mantle supported. And they already had their own platform, their own APIs etc. Makes sense for them to move forward without waiting for anyone


Over time the work was obviously done for Mantle → Gl Next → Vulkan. And that's becasue AMD were positive about this idea. Their initial presentation of Mantle was in that vein, i.e. to kickstart the progress of the common API.

MS just decided to do that whole thing for their NIH in parallel using parts of Mantle practically verbatim. It wouldn't have been possible without AMD basically allowing it.

See: https://x.com/renderpipeline/status/581086347450007553

I.e. I don't see any reason here for MS not to collaborate on Vulkan instead, besides the usual lock-in approach.


Ah you are right, I forgot that they both were announced at around the same time. It just feels like Vulkan took forever. To the point where some teams at my job had to use OpenGL even for greenfield projects for quite a while after Vulkan was first announced (even when they wanted to use Vulkan).

I wonder if that means that dx12 and Vulkan could have a good interop/compatibility story, since they both have similar origins.


DX12 was pushed as NIH, since it was made from Mantle same way as Vulkan was. So to reduce NIH, it only makes sense to unify it all in Vulkan.

They already made the first sensible step with SPIR-V here. The next step makes the same sense.

And stuff can be translated into Vulkan if it can't be rewritten.


It's Vulkan that was reinventing the DX12 wheel wasn't it though?


Vulkan is based on Mantle, which predates the release of DX12 by about 2 years.


The same can also be said about D3D12, it is at least 'heavily inspired' by Mantle. In the end, not much of Mantle has survived in Vulkan either though. Mantle was a much cleaner API than Vulkan because it didn't have to cover so many GPU architectures as Vulkan (Mantle especially didn't have to care about supporting shitty mobile GPUs).


In this case Vulkan is the only option. DX12 is a non starter since it was never intended to be universally available.


DX12 is proprietary. Vulkan is not.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: