Comment by shmerl

Comment by shmerl 10 months ago

13 replies

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.

mardifoufs 10 months ago

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.

  • miniupuchaty 10 months ago

    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!

    • troupo 10 months ago

      > 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.

      • shmerl 10 months ago

        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.

    • mardifoufs 10 months ago

      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.

  • shmerl 10 months ago

    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.

izacus 10 months ago

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

  • HideousKojima 10 months ago

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

    • flohofwoe 10 months ago

      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).

  • shmerl 10 months ago

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