Microsoft Makes It Easier to Bring DirectX 12 Games to Windows 7
When Microsoft launched Windows 10, it made its stance on DirectX 12 clear: Windows 10 would be the only OS that supported the company’s latest API, period. For years, the company stuck to this stance. Then, earlier this year, Microsoft announced that one game — World of Warcraft — would be allowed to take advantage of the DX12 API while running Windows 7.
The reason for this allowance? Probably China. World of Warcraft has always had a huge Chinese following, and Blizzard’s decision to add DX12 support to WoW was a significant step for both the developer and the API. Now, Microsoft has announced that it’s expanding this program. In a short blog post pointing an array of API documents, Microsoft notes:
We have received warm welcome from the gaming community, and we continued to work with several game studios to further evaluate this work. To better support game developers at larger scales, we are publishing the following resources to allow game developers to run their DirectX 12 games on Windows 7.
The development guidance document for how to move DX12 to Windows 7 actually contains some useful information on how difficult it is to get games running under the older OS and what the differences are between the two. Microsoft states:
We only ported the D3D12 runtime to Windows 7. Therefore, the difference of Graphics Kernel found on Windows 7 still requires some game code changes, mainly around the presentation code path, use of monitored fences, and memory residency management (all of which will be detailed below). Early adopters reported from a few days to two weeks of work to have their D3D12 games up and running on Windows 7, though the actual engineering work required for your game may vary.
There are technical differences between DX12 on Windows 7 and DX12 on Windows 10. DirectML (Direct Machine Learning) is not supported under Windows 7, but all other features implemented in the October 2018 Windows 10 update are supported. There are differences in terms of API usage (D3D12 on Windows 7 uses different Present APIs), and some fence usage patterns are also unsupported.
There are, however, some limits to support. Only 64-bit Windows 7 with SP1 installed is supported. There’s no PIX or D3D12 debug layer on Windows 7, no shared surfaces or cross-API interop, no SLI/LDA support, no D3D12 video, and no WARP support. According to Microsoft, “HDR support is orthogonal to D3D12 and requires DXGI/Kernel/DWM functionalities on Windows 10 but not on Windows 7.” This seems to imply that HDR content can work in Windows 7, but it may be on the developer to implement it properly.
Microsoft has published additional resources on the topic, including a NuGet package and a D3D12 code sample that runs on Windows 7 and 10 with the same binary.
Why Make DX12 More Accessible?
This is honestly a little surprising to see. Windows 7 is supposed to be headed for firm retirement in a matter of months. The implication here is that Microsoft is taking this step to cater to gamers that are still using Windows 7, but the Steam Hardware Survey suggests that’s a distinct minority of gamers. Windows 10 has a 71.57 percent market share according to the SHS, while Windows 7 64-bit is pegged at 20.4 percent. What’s interesting here is that the SHS actually tilts much more towards Windows 10 than a generic OS survey.
It’s not clear at all how Microsoft is going to deal with that problem as it relates to overall support, but it could be that this is Microsoft’s way of providing a certain degree of backward-compatibility without being willing to do anything equivalent as far as continuing to provide security features. Microsoft wants its customer base — all of it — to be Windows 10. It’s surprising to see the company extending DX12 backward, but we’d be stunned if they granted Windows 7 a stay of reprieve and kept publishing patches for it.
MS could also be hoping to encourage devs to adopt DX12 more widely. Three years after debut, neither DX12 nor Vulkan has done much to revolutionize APIs or gaming. Developers do use the APIs, but we’ve seen comparatively little use of them to pull off anything unique. The need to support older hardware and a wide range of users, plus the fact that these APIs require developers to be more familiar with the underlying hardware, seems to be a drag on their overall usage.
Continue reading
MSI’s Nvidia RTX 3070 Gaming X Trio Review: 2080 Ti Performance, Pascal Pricing
Nvidia's new RTX 3070 is a fabulous GPU at a good price, and the MSI RTX 3070 Gaming X Trio shows it off well.
Xbox Series X Review: The Living Room Gaming PC I’ve (Mostly) Always Wanted
The Xbox Series X launches in five days, and we're clear to talk about it. I've never done a console review before, so I went into this from the perspective of what I'm used to — PC gaming. Microsoft objectively has a lot to be proud of, here.
Sony May Let Users Move Games Off PS5, Xbox Series X SSD Is User-Replaceable
Microsoft is using a user-replaceable SSD for the Xbox Series X, while Sony is researching PS5 game transfers.
Microsoft: Bethesda Games ‘Either First or Better’ on Xbox, Not Exclusive
Microsoft's Tim Stuart doesn't think the company will try to cut PS5 gamers out of future Bethesda titles. The company wants Xbox to be the best destination for its games, but not the only one.