Don't want to see articles from a certain category? When logged in, go to your User Settings and adjust your feed in the Content Preferences section where you can block tags!
We do often include affiliate links to earn us some pennies. See more here.

Quite a big surprise, but truly a welcome one, and a great one for game developers. Microsoft are moving more towards open standards by adopting SPIR-V for DirectX.

Joining up with the Khronos SPIR and Vulkan working groups, once Shader Model 7 is released, it means DirectX 12 will accept shaders compiled to SPIR-V. This change could make it a whole lot simpler for developers to put their games on Linux, and make the job of Proton to get Windows games working on Linux / Steam Deck a bit easier too.

Some key parts of their announcement copied below:

In the 8 years since Shader Model 6.0 was first introduced, Direct3D and HLSL have grown considerably in both features and adoption. Releasing DXC on GitHub and the tremendous contributions from open-source collaborators and partners played a significant role in expanding HLSL’s user base to include Vulkan and Metal developers. As a result of this expansion, the team is focusing on developing HLSL support in Clang to enable us to keep up with industry demand for openness and new features. As we look end to end at the best way to support the full spectrum of our users, we are working hard to support HLSL for both DXIL and SPIR-V with Clang and LLVM.

To better enable HLSL’s Vulkan support, the HLSL team is now participating in The Khronos Group’s SPIR and Vulkan working groups. This direct participation will allow smoother collaboration and more rapid adoption of Vulkan features. We believe this will ensure that HLSL is the best language for writing shaders for every GPU runtime environment.

[…]

As we look to the future, maintaining a proprietary IR format (even one based on an open-source project) is counter to our commitments to open technologies, so Shader Model 7.0 will adopt SPIR-V as its interchange format. Over the next few years, we will be working to define a SPIR-V environment for Direct3D, and a set of SPIR-V extensions to support all of Direct3D’s current and future shader programming features through SPIR-V. This will allow developers to take better advantage of existing tools and unify the ecosystem around investing in one IR.

In addition to providing a compiler for HLSL to Direct3D’s SPIR-V, we will also be building and providing translation tools to translate SPIR-V to DXIL and DXIL to SPIR-V. Those tools will allow and driver developers to gradually transition and gracefully adapt tooling and drivers.

See more in the Microsoft announcement.

Article taken from GamingOnLinux.com.
18 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
17 comments

dpanter Sep 20
Microsoft Embracing open standards nEver fails to sEnd a chill down my spine.
pb Sep 20
Which one do you think it is?
1. Corporate cost-cutting
2. Preparing for a future antitrust (look, we're so open!)
3. Actually caring about open standards
satoridepon Sep 20
I wonder how Microsoft will handle all games that still going to be DXIL based. This change doesn't make much sense if driver developers will still have to maintain DXIL support for backward compatibility. Would be fun to see Microsoft using Proton's dxil-spirv conversion library for that instead

UPD: ah, so they will provide tools for conversion, but still not clear whether they will be developed by MS or maybe they could consider dxil-spirv


Last edited by satoridepon on 20 September 2024 at 12:26 pm UTC
Nateman1000 Sep 20
Microsoft Embracing open standards nEver fails to sEnd a chill down my spine.

I’m not sure Microsoft can Embrace, Extend, and Extinguish a shader system
Zlopez Sep 20
  • Supporter Plus
Which one do you think it is?
1. Corporate cost-cutting
2. Preparing for a future antitrust (look, we're so open!)
3. Actually caring about open standards

I would go with 1+2. I don't really trust Microsoft with their love for open standards. Otherwise Windows would be open.
ShabbyX Sep 20
Microsoft Embracing open standards nEver fails to sEnd a chill down my spine.

I’m not sure Microsoft can Embrace, Extend, and Extinguish a shader system

Why couldn't they? Add an extension no one else can implement (or want to, because it's believed to be a bad idea), devs start using it because needed for xbox/windows, shader is now no longer portable to other systems.
ShabbyX Sep 20
Which one do you think it is?
1. Corporate cost-cutting
2. Preparing for a future antitrust (look, we're so open!)
3. Actually caring about open standards

It's actually option 4. HLSL is not popular anymore, it's a desparate act to try and save it.
Sakuretsu Sep 20
Which one do you think it is?
1. Corporate cost-cutting
2. Preparing for a future antitrust (look, we're so open!)
3. Actually caring about open standards
It's always 1.
Sometimes 2 aswell.
kjhota123 Sep 20
So, DirectX remains proprietary, and I don't think anybody expected that to change
we will also be building and providing translation tools to translate SPIR-V to DXIL and DXIL to SPIR-V.
I lack any real knowledge to graphics programming, isn't their real goal with all that to make it easier for developers to change to Microsoft technologies like DirectX?
It might be an interesting path if developers (or their companies) want to sell their software, eventually they might even drop support for other platforms entirely to make it easier to maintain the codebase, and if most of the programmers available in the market only know HLSL/DirectX or are more skilled on them.
eldaking Sep 20
Tech standards are good. This is obviously good for people that want to make multiplatform software, and by consequence for us that are on a minor platform that is quick to be dropped and forgotten.

But also, adopting standards is generally good for companies. They can contribute a fraction of the work designing stuff and still get the full benefit. It makes their products way easier to use, reduces the entry barrier. It expands every adopter's market, allowing them to play to their strengths without needing to be best in everything. If you aren't 100% sure you will be dominant on your own, this is a safer bet.

Now, Microsoft is humongous and anti-competitive so they often go to great lengths to break compatibility because the status quo is their dominance. But I'd hazard a guess that specific shader models aren't a particularly important part of that strategy. DirectX/Direct3D as a whole, sure, but not this.
satoridepon Sep 20
Why couldn't they? Add an extension no one else can implement (or want to, because it's believed to be a bad idea), devs start using it because needed for xbox/windows, shader is now no longer portable to other systems

For Linux gaming it doesn't make much of a difference whether to implement/emulate some proprietary Microsoft shader feature in vkd3d-proton/dxil-spirv or implementing a SPIR-V extension. Except the latter should be actually easier, since the spec is open, you don't have to reverse engineer anything, you can utilize existing infrastructure in Mesa and probably more people will benefit from it in the end.

Ultimately this is a positive change. Microsoft contributes to SPIR-V, everyone benefits from it. Windows apps (not only games) will be a little bit more stable and faster on Linux, less burden on Proton developers


Last edited by satoridepon on 20 September 2024 at 3:01 pm UTC
CatKiller Sep 20
View PC info
  • Supporter Plus
Microsoft Embracing open standards nEver fails to sEnd a chill down my spine.

"Direct3D’s SPIR-V" does sound like "Microsoft Java."

On the other hand, feature-completeness with Direct3D has been an explicit goal of Khronos for Vulkan, and I can't think of a way that that would be made harder by Microsoft being involved in the process.
Which one do you think it is?
1. Corporate cost-cutting
2. Preparing for a future antitrust (look, we're so open!)
3. Actually caring about open standards

Laying the groundwork for a future version of Windows that will be based on Linux?
elmapul Sep 21
Which one do you think it is?
1. Corporate cost-cutting
2. Preparing for a future antitrust (look, we're so open!)
3. Actually caring about open standards

4. they figured out that wine/proton were already perfect at this, so they had nothing to lose in doing that, yet they would earn the benefit of being seing as the good guys, pure pr movement.
elmapul Sep 21
also this:
"We believe this will ensure that HLSL is the best language for writing shaders for every GPU runtime environment."
they want to ensure that their standard is still the standard...
wich is good for everyone who chose to learn it, and bad for those who chose the vulkan route.
elmapul Sep 21
Microsoft Embracing open standards nEver fails to sEnd a chill down my spine.

I’m not sure Microsoft can Embrace, Extend, and Extinguish a shader system

Why couldn't they? Add an extension no one else can implement (or want to, because it's believed to be a bad idea), devs start using it because needed for xbox/windows, shader is now no longer portable to other systems.
shadders current state is not being portable...
mat650 Sep 25
Which one do you think it is?
1. Corporate cost-cutting
2. Preparing for a future antitrust (look, we're so open!)
3. Actually caring about open standards
All the 3 + 1:
To cut costs while making sure their position is less attackable by untitrust actions, the corporations assigns a genuinely caring employ to an open-source project, who will achieve alone the result of a full team.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register