DX12 on Windows 7 up: D3D team replies

iroboto

Daft Funk
Moderator
Legend
Supporter
https://blogs.msdn.microsoft.com/di...arcraft-uses-directx-12-running-on-windows-7/

Pretty big deal, really glad they finally did this. Developers can finally move forward and away from DX11.

****
Blizzard added DirectX 12 support for their award-winning World of Warcraft game on Windows 10 in late 2018. This release received a warm welcome from gamers: thanks to DirectX 12 features such as multi-threading, WoW gamers experienced substantial framerate improvement. After seeing such performance wins for their gamers running DirectX 12 on Windows 10, Blizzard wanted to bring wins to their gamers who remain on Windows 7, where DirectX 12 was not available.

At Microsoft, we make every effort to respond to customer feedback, so when we received this feedback from Blizzard and other developers, we decided to act on it. Microsoft is pleased to announce that we have ported the user mode D3D12 runtime to Windows 7. This unblocks developers who want to take full advantage of the latest improvements in D3D12 while still supporting customers on older operating systems.

Today, with game patch 8.1.5 for World of Warcraft: Battle for Azeroth, Blizzard becomes the first game developer to use DirectX 12 for Windows 7! Now, Windows 7 WoW gamers can run the game using DirectX 12 and enjoy a framerate boost, though the best DirectX 12 performance will always be on Windows 10, since Windows 10 contains a number of OS optimizations designed to make DirectX 12 run even faster.

We’d like to thank the development community for their feedback. We’re so excited that we have been able to partner with our friends in the game development community to bring the benefits of DirectX 12 to all their customers. Please keep the feedback coming!



FAQ
Any other DirectX 12 game coming to Windows 7?
We are currently working with a few other game developers to port their D3D12 games to Windows 7. Please watch out for further announcement.

How are DirectX 12 games different between Windows 10 and Windows 7?
Windows 10 has critical OS improvements which make modern low-level graphics APIs (including DirectX 12) run more efficiently. If you enjoy your favorite games running with DirectX 12 on Windows 7, you should check how those games run even better on Windows 10!
 
I guess it's a good thing for DX12... though more reasons for consumers to stay on an OS that is going EOL isn't a positive.
 
As mentioned, strange as Windows 7 is/will be out of support.

Guess they feel that win 10 has hit tipping point for gamers, even then why bother?
 
Because Win 10 is trash.
Wasn't sure if this was even worthy of a reply.

Win 7 is EOL, they should be focusing their efforts on moving forward. Not give themselves more vectors of support and development that they was finally getting away from.

Nice for some devs and a shrinking section of the market, don't see the benefits to MS and where they need to be.
They keep trying to go broad without fixing what they have first

Edge(ium) going to win 7 makes sense as businesses are going to pay a lot for extended support. But even there, I doubt any business will now pick it up instead of what was installed for years now.
 
At least it should provide a good DX12 performance comparison for gaming - Win 7 vs Win 10. Who knows what will happen in a year.
 
For the guys who participated at the DX12 EAP: do you think that those old slides (which we are NOT allowed to share 'cause they are under NDA) are still relevant in the problem? And for those who looked and played deeply with Vulkan: why asking now for a crippled D3D12 version?
 
Microsoft has brought DirectX 12 to Windows 7. That's a very good idea, imho. Still, Windows 7 has just a year left of full support, hope they extend that.

https://www.anandtech.com/show/14078/microsoft-brings-dx12-to-windows-7

https://devblogs.microsoft.com/directx/world-of-warcraft-uses-directx-12-running-on-windows-7/

DirectX12_678x452_678x452.png
 
At least it should provide a good DX12 performance comparison for gaming - Win 7 vs Win 10. Who knows what will happen in a year.
hopefully DF will weigh in and make a performance test, but I wonder what technologies are those that make W10 outperform Windows 7 using the same graphics API
 
Microsoft has brought DirectX 12 to Windows 7. That's a very good idea, imho. Still, Windows 7 has just a year left of full support, hope they extend that.
It has less than a year of support left for consumers. Longer for business, but they will be charged.

As for it being extended, don't hold your breath, the nag boxes have already been explained so expect to start seeing it soon.
How long are they expected to support it? Been about 7 years since last update. Not including patches etc.

Just usual MS stupid messaging.
Oh win 7 is EOL, and where putting dx12 on there. Almost within days of each other.
 
For the guys who participated at the DX12 EAP: do you think that those old slides (which we are NOT allowed to share 'cause they are under NDA) are still relevant in the problem? And for those who looked and played deeply with Vulkan: why asking now for a crippled D3D12 version?

It’s been a while and I prepared a lot of slides for DX12 :) but generally the constraints imposed by WDDM 1.1 still apply to all low-level GPU hardware abstractions on Windows 7. In the end the Win7/WDDM 1.1 system design & policies around GPU memory management & scheduling constrain the type of application and user scenarios that low-level APIs can be successful driving on that platform. It works decent for 1-2 high resource consuming applications at a time, but the user experience does not degrade gracefully if a lot of apps running simultaneously start loading up the GPU with low-level API usage on Windows 7. That does mean there’s a number of AAA games & engines that benefit from it though. Workstation apps are another category where the user tends to run just 1 high resource consuming app at a time, but users in that category tend to go for more recent OSs as that’s where the official support channels are greatest.

Why D3D12 on Win7? We’re at the next stage for D3D12 and low-level APIs in the technology adoption curve by developers and publishers. The next order of magnitude in the title & engine population are now designing first, or *only* for low-level APIs. The devs & publishers are making a lot of tradeoffs as part of this process:

  • How do they get the most fidelity, frame rate, and functionality out of the low-level API for each target platform?
  • How do they reward gamers who bought high end hardware with commensurate high end experiences?
  • How do they get the largest total addressable market?
    • Widest variety of hardware
    • On all the OS and device platforms where the gamers are
  • While keeping the engineering cost within budget

There’s a measurable population of gamers in some markets that likely won’t get off of Windows 7 in time for this next wave of titles and engines on low-level APIs. D3D12 on Windows 7 is what my team did to assist developers & publishers with the engineering cost and addressable market tradeoffs they were making. Developers get to focus more time/spend less effort on making their engines & titles work better on D3D12, publishers have a reduced cost for reaching their market on Windows, gamers who are stuck on Windows 7 still get to play the games with the limits imposed by that OS, and Windows 10 gamers get a larger number of games that can more fully exploit their hardware. All together it was a solution my team was really happy to make possible.

The system constraints in Windows 7, as well as the well aged properties of the ecosystem (just think of all the random drivers & software hooking into bizarre internal methods that were never designed to be touched outside of OS code), are why we’re doing a title by title rollout at first. We need to make sure the experience is a quality one across users, developers, and publishers.

Max McMullen
Development Manager
Compute, Graphics, and AI (yes, we chose the group name in that order because the acronym was funny to us)
Microsoft
 
And yet MS waited until win 7 got EOL'd before addressing that market?

If someone is unable to upgrade to win 10 for some reason, then I suspect the hardware that is being run is also comparatively old.
Which means new games would be limited to running on there.

It seems backwards to be supporting it at end of cycle, instead of at the start and phasing it out if they really felt the need to support it.

It sounds harsh but MS has already made it a point to say it will no longer be in support.
This is mixed messaging at best, at worst prolonging a system that will not be in support.
Will it get every security fix or only the worst ones?

@Max McMullen - thanks for the explanation even though I may not see eye to eye.
 
I'm more interested in how much performance of DirectX 12 can actually be taped into under Win7.
We all know how much Fermi suffers under DirectX 12, and it doesn't support all it's functions : LINK.
Should we expect similar performance drop under Win 7 ?
I'm simply worried about having 1/4 or even less performance under DX12 on Win7 vs. DX11 (on either 7 or Win 10).
Also, is it possible to force DX12 capable driver from Win10, to work under Win7 (if GPU maker doesn't release DX12 ready driver for Win7) ?

Last question : Will DirectX 12 under Windows 7 require SSE2/SSE3/64-bit support (or other, "hidden" ones - similar to Win10 x64, like NX/XD-Bit, PrefetchW, CompareExchange128, LAHF/SAHF) ?
I'm asking about it, since Win 7 x86 can work even on Pentium III class PCs.
 
Last edited:
Also, is it possible to force DX12 capable driver from Win10, to work under Win7 (if GPU maker doesn't release DX12 ready driver for Win7) ?
The have different driver models, you cant just "force" things, it's more complex then a lego, they need different solutions on what they mostly diverge, which is resource handling and tracking.
Last question : Will DirectX 12 under Windows 7 require SSE2/SSE3/64-bit support (or other, "hidden" ones - similar to Win10 x64, like NX/XD-Bit, PrefetchW, CompareExchange128, LAHF/SAHF) ?
I'm asking about it, since Win 7 x86 can work even on Pentium III class PCs.
Do you really think that such games target old hardware like non-64 bit x86 CPUs? As for Fermi performance: Fermi GPUs received very little love on dx12 drivers, we all waited a lot and then it went to legacy/eol status... Anyway it was the oldest supported architecture, not a big drama, just bad promises..

@Max McMullen thank you kind sir!
 
Last edited:
And yet MS waited until win 7 got EOL'd before addressing that market?

If someone is unable to upgrade to win 10 for some reason, then I suspect the hardware that is being run is also comparatively old.
Which means new games would be limited to running on there.

It seems backwards to be supporting it at end of cycle, instead of at the start and phasing it out if they really felt the need to support it.

Fair points raised and feedback. I manage the engineering group building the solution, help lead our system architecture, and participate in the internal planning process through which we allocate engineering resources. I'll do my best to illuminate how we got the release timing, type of support, and deployment strategy we ended up with but there's always a chance you'll ask a follow up question that I won't be able to answer since it requires internal information to do properly... for a variety of reasons from regulatory (GDPR), IP (information from partners shared under NDA), or internal business data. With that boundary set, let me try to provide some context:

Part of the planning for this feature sought feedback from publishers on what audiences they need to reach and can't right now with Direct3D 12. My team measured/estimated the hardware distribution in that audience: the population of Windows 7 gamers that a lot of publishers would like to address actually has modern GPU hardware, and even modern CPUs and chipsets that have been cajoled into running a set of Windows 7 binaries. My team put together these machines as part of building 12on7. It was actually quite a bit of work to get everything to install from OS to drivers... and then getting that deployed on our IT network was added pain. That said, there are a number of gaming machines out there like this and some publishers still want to reach them. We did what we could to extrapolate population over time based on data. It suggested that set of Windows 7 machines will be in the interesting addressable gaming market a little longer than we want in order to rely just on our existing OS support solving publishers', developers', and gamers' needs.

It seems backwards to be supporting it at end of cycle, instead of at the start and phasing it out if they really felt the need to support it.

My team actually designed for some type of Windows 7 support from the beginning with Direct3D 12. It's always easier/cheaper at the start than to retrofit it and my team kept that option available. My team has been through enough revisions of Direct3D that everyone was comfortable taking on that design constraint even though it was only a hypothesis based on experience that a downlevel OS solution will eventually be needed. When it came time to align our engineering, partner, and launch (PR) plans with Windows 10, all the demands on my group meant we had to make engineering trade-offs on what we could build. Further, the Windows group as a whole was making a massive engineering & product bet on new approaches and technologies for upgrading Windows 7 machines to Windows 10, not to mention free upgrades. My team spending the end-to-end effort to ship Direct3D 12 on Windows 7 would be betting on a failure of the Windows 10 upgrade effort rather than putting our energy towards getting those machines on Windows 10. In the end my team spent the small amount of design time to keep the Windows 7 option open for the Direct3D 12 runtime while focusing on Windows 10 upgrade success. We could revisit the Windows 7 decision based on data identifying populations of gamers stuck on it - which is what we did.

Had we tried to launch Windows 7 at the same time it would have created another problem: how do we talk about Direct3D 12 on Windows 10 versus on Windows 7? There are only a limited set of occasions where we get to talk about a new technology before its release, and especially in the gaming space those occasions usually target a wide swath of audiences: trade press, gamer press, developers, publishers, etc. Somehow we'd have to make it clear to all those different audiences, in terms they each understand, that Direct3D 12 on Windows 10 has different capabilities than on Windows 7. These days launching a new version of Direct3D is associated with targeting a massive set of scenarios. Gaming is probably the most visible but there are a number of media, compute, workstation, and even mainstream app scenarios improved by Direct3D 12. For Windows 10, Direct3D 12 was designed to be a superset API, capable of mapping all previous graphics APIs on Windows on top of it over time. One of the goals was we could simplify the driver ecosystem and simplify a complex matrix of application compatibility that my team deals with day to day - resolving a number of pain points across all user scenarios leveraging GPUs. This was on top of the more published goals about moving the rendering pipeline and system integration forward in technical capability. Direct3D 12 on Windows 7 is only a focused section of that promised capability: high-end games. It can't scale to cover every scenario that Windows 10 does, not even every gaming scenario, nor can it deliver quite the same performance.

That difference in capability, targeted scenario, driver support, and the complex software environment of an old OS is why 12on7 is being deployed differently - at least initially - than other DirectX updates.

When you distill all this down to a single bullet on a slide when launching Direct3D 12 you get a message that translates to everyone as Direct3D 12 can't run on Windows 7. I could be remembering wrong, but I believe in all my talks I was never that absolute and actually said that it isn't possible to ship the same capabilities, performance improvement, and user experience on Windows 7 - which is correct.

As far as timing is concerned, it's launching later than we wanted to due to a few factors and I can provide a couple examples. One factor is we needed the right set of titles and they're appearing now. Another factor is the Windows group went through a significant management and organization change ~1 year ago and we had to reset a lot of context on the business decision, motivation, and supporting data for 12on7 as the new organization and management were put in place.

Are XBOX exclusives such as Forza, Halo and Gears among them?

The quote of mine before this in your reply was about in general there being a broad segment high end games that would still benefit from the constrained scenarios that 12on7 solves. As far as actual titles go, I manage the engineering team that among other things builds the DirectX 12 components and not the game publishers - not even Microsoft's publishing group - so I can't say for specific titles. As titles launch on 12on7 I would expect the publishers and sometimes the official DirectX blog to call out support.

I'm more interested in how much performance of DirectX 12 can actually be taped into under Win7.
We all know how much Fermi suffers under DirectX 12, and it doesn't support all it's functions : LINK.
Should we expect similar performance drop under Win 7 ?
I'm simply worried about having 1/4 or even less performance under DX12 on Win7 vs. DX11 (on either 7 or Win 10).
Also, is it possible to force DX12 capable driver from Win10, to work under Win7 (if GPU maker doesn't release DX12 ready driver for Win7) ?

Last question : Will DirectX 12 under Windows 7 require SSE2/SSE3/64-bit support (or other, "hidden" ones - similar to Win10 x64, like NX/XD-Bit, PrefetchW, CompareExchange128, LAHF/SAHF) ?
I'm asking about it, since Win 7 x86 can work even on Pentium III class PCs.

Describing the performance delta between operating system versions is complex, as is describing the performance delta between DX11 and DX12. What I can say is that my team has seen a fairly consistent frame rate boost in World of Warcraft running DX12 on Windows 7 versus DX11 on Windows 7, for the hardware configurations we had available to test. Blizzard is doing a great job getting their engine to render in a low-level API focused way. Getting a performance boost from 12 requires designing for that new API paradigm, something we've seen in previous major revisions of Direct3D. 12on7 helps more titles do that by enabling their engineers to focus on 12 rather than keeping 11 running.

12on7 does require a dedicated driver from IHVs.

My team didn't intentionally change the base processor requirements in the Windows 7 OS, though there's always the chance we set the wrong compiler flag somewhere. If there's a problem my team will find out from telemetry, Blizzard, or user feedback from folks like you.

Thanks,
Max McMullen
Development Manager
Compute, Graphics, and AI
Microsoft
 
What is your minimum target hardware for 12on7? I'd have thought low end (integrated) graphics would probably see the best, or most meaningful, improvements, but from the sounds of it your target hardware is gamer focussed.
 
Back
Top