Microsoft Makes It Easier to Bring DirectX 12 Games to Windows 7

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.

Microsoft Makes It Easier to Bring DirectX 12 Games to Windows 7

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

Microsoft: Pluton Chip Will Bring Xbox-Like Security to Windows PCs
Microsoft: Pluton Chip Will Bring Xbox-Like Security to Windows PCs

Intel, AMD, and Qualcomm are working to make Pluton part of their upcoming designs, which should make PCs more difficult to hack, but it also bakes Microsoft technology into your hardware.

Apple: ‘It’s Up to Microsoft’ to Get Windows Running on New ARM Macs
Apple: ‘It’s Up to Microsoft’ to Get Windows Running on New ARM Macs

According to Apple, the question of supporting Windows on the M1 is entirely in Microsoft's court.

How Does Windows Use Multiple CPU Cores?
How Does Windows Use Multiple CPU Cores?

We take multi-core awareness for granted these days, but how do the CPU and operating system communicate with each other in the first place?

Minecraft With Ray Tracing Now Available for All Windows 10 Players
Minecraft With Ray Tracing Now Available for All Windows 10 Players

You don't usually think of Minecraft as a realistic game, but the developers have been hard at work adding RTX ray tracing to the game for the last eight months. It's finally out of beta today, and it really works with the blocky look of Minecraft.