Interesting, so it allows DirectX to use the same shaders as Vulkan? But isn't the advantage of Vulkan that it has less overhead than DirectX? Does this mean anything for gamers, or does it just make the graphics programmers' jobs easier when they can use the same shaders for either renderer?
PC Gaming
For PC gaming news and discussion. PCGamingWiki
Rules:
- Be Respectful.
- No Spam or Porn.
- No Advertising.
- No Memes.
- No Tech Support.
- No questions about buying/building computers.
- No game suggestions, friend requests, surveys, or begging.
- No Let's Plays, streams, highlight reels/montages, random videos or shorts.
- No off-topic posts/comments.
- Use the original source, no clickbait titles, no duplicates. (Submissions should be from the original source if possible, unless from paywalled or non-english sources. If the title is clickbait or lacks context you may lightly edit the title.)
Vulkan and DirectX could already share shaders, because the input for both was already HLSL. The difference is the intermediate representation of the compiled shaders that will now be the same in the future (SPIR-V for both).
The real winners here are driver programmers at NVIDIA/AMD/Intel, since they will no longer have to develop support for both DXIL and SPIR-V (which are similar in concept but different in implementation). How much of that will be true in practice remains to be seen, but I am hopeful.
There are tools to analyze, process and transform SPIR-V bytecode already, presumably those will work for DX12 shader model 7 too. It might make performance analysis easier, same with debugging via a tool like RenderDoc that supports SPIR-V but not DXIL.
As for the overhead of DirectX, with DX12 this is largely not true anymore, both are high performance APIs with comparable overhead (i.e. as little as possible).
If all major APIs use SPIR-V, does it mean that it could become the ISA of some GPUs? Like that time someone made some hardware that executed Java bytecode directly?