Microsoft might take the wind out of DirectX 12 games all by themselves

lionhead fable directx 12 demo

DirectX 12 is Microsoft’s baby, a culmination of just over twenty years of graphics innovation and working to try standardise things as much as possible. To their credit, Microsoft should be thanked for keeping PC gaming intact just through offering solid APIs and a workable platform, even though the means they used to make it so were sometimes dubious, and occasionally unfair to other platforms. With DirectX 12, the company hopes to offer a standardised API that works across all the platforms that Windows 10 currently supports – mobile phones, tablets, laptops, and desktop computers – along with the universal windows app (UWA) platform that gives developers a chance to finally enjoy the programming holy grail of writing an application once and running it on everything.

But the methods that Microsoft is using to achieve this have ended up affecting the first run of games that are sold through the Windows Store and use DirectX 12, and there’s every chance that a lack of planning and foresight will kill off the benefits that DirectX 12 brings to the table.

Games distributed using the Windows Store are locked down

Gears of War windows store

In the last few months, Microsoft has partnered up with several game developers to launch games through the Windows Store, a first for the company and the first time they’ve sold AAA games through a storefront since the closure of Games for Windows Live (GFWL). This is part of Microsoft’s plan to start offering Xbox One games on Windows 10, though the possibility of cross-buy between the Xbox Live stores on both platforms is remote for now. While this initiative is welcome, and it’s taken a lot of courage to try offer this to gamers while the death of GFWL is still fresh in the mind of many, the ways in which they’ve locked down these games leaves a lot to be desired. According to a thread on reddit, this is a list of all the limitations we know about this far for games distributed on the Windows Store.

  • No SLI/Crossfire
  • Windows 10 store download is buggy
  • No clear refund policy
  • V-Sync is always on
  • Always borderless fullscreen
  • Game files are protected
  • Can’t launch it via the exe (So adding it as a non-Steam game will not work)
  • No fps/hardware monitor software works with it
  • Mouse software which lets you create custom binds for each game doesn’t work
  • Say bye to using Sweetfx and mods
  • No third-party overlays, meaning no Steam Controller since you can’t use Big Picture Mode

If that’s not enough, there are other limitations as well. Only the Xbox One controller works with these games – you can’t use others. V-Sync stays on no matter what you change in the game’s settings or what you’ve edited in the .ini files. Technologies like G-Sync and Free-Sync do not work. High-refresh displays have no effect on the way the game feels because applications that use the UWA platform can only hit a 60Hz maximum refresh. There is, in my mind, no way that any gamer would choose buying a game through the Windows Store with these restrictions. There isn’t even any functionality for NVIDIA’s Geforce Experience or AMD’s Gaming Evolved applications, no way to automate benchmarks in the command line, and no way to use third-party recording software other than what Microsoft gives you via the gaming app.

Rise of the Tomb Raider, distributed through the Windows Store, has these issues. It also applies to the Gears of War: Ultimate Edition release, and will apply to Quantum Break, Forza Motorsport 6: Apex, and any titles released through the Windows Store. Even regular Win32 applications will have these restrictions foisted upon them, a nonsensical limitation that probably gave Gabe Newell the incentive he needed to start to push Valve towards catering for gaming on Linux. Thus far, Microsoft hasn’t said too much about these restrictions, or how they’re going to work around them for enthusiasts who would otherwise be driven to madness, and possibly a rival platform.

Phil Spencer’s tweet above was in reply to a question from someone linking to this How-T0-Geek article that listed several good reasons why people shouldn’t buy games from the Windows Store, and the tweet below that is Microsoft’s Mike Ybarra, director of program management for Xbox, responding to questions about the issues found with Rise of the Tomb Raider (which, it should be noted, was previously an Xbox One exclusive). The various stories around these issues broke a few hours after PCWorld’s interview with Ybarra, which could have been a great time to get some answers from someone actually in charge of making sure that games on the Windows Store sell well.

But as with all of Microsoft’s plans when it comes to gaming on Windows, the rabbit hole we’ve now discovered goes much deeper than we imagined at first.

Some UWA restrictions seem to also apply to games using DirectX 12

It should come as no surprise that DirectX is deeply embedded into Windows by this time, controlling parts of the user interface and hardware in ways that the original team working on DirectX 1.0 in 1996 could never have dreamed of (though they predicted the rise of GP-GPU technology with freakish accuracy). DirectX 12 also controls a fair amount of the things Windows 10 does on the desktop, and it’s well-baked into the UWA platform as well.

But as a result of the one-OS-fits-all approach that Microsoft’s taken with Windows 10, there’s some cross-pollination of ideas and philosophies from the Windows and Xbox teams, to the point where several of the restrictions laden on DirectX 12 games distributed through the Windows Store also somehow affect DirectX 12 games that come from other stores. Ashes of the Singularity, developed by Oxide Games and distributed through Steam, is the first title to be affected by these issues, and it surely won’t be the last.

ashes of the singularity pcper furyx-uncapped
Source: PC Perspective

PC Perspective discovered that the latest version of the benchmark was oddly affected by several restrictions placed on DirectX 12 games in Windows 10. The first was that the game was always running in windowed borderless mode, despite the fact that it was not a universal app distributed through the Windows store. The second was that the game was capped at 60Hz and always had V-Sync turned on. Thirdly, Microsoft’s approach to running 3D applications on Windows might be as a result of changes in the Windows Driver Display Model (WDDM) version 2.0, as games are run in borderless windowed mode and made to run through the same compositor that makes the magic happen for the Windows user interface, in order for Microsoft to implement their overlay, the game recording bar, and other Xbox-like stuff in a standard fashion.

What we end up with is a game that is fairly hobbled in terms of delivering a good user experience for the enthusiast, and at the same time has a benchmark that doesn’t reflect the actual experience while running the game. If you disable V-Sync in AotS on AMD graphics cards,  the game engine will run at an uncapped framerate and will report those numbers in the benchmark run that it performs. However, the output to the display is still capped at 60fps (see the graph above), causing noticeable judder in the animation when the framerate is forced to stay at 60fps. This doesn’t bode well for displays that have high refresh rates, or which support technologies like G-Sync and FreeSync, because those require the GPU to directly manage the game’s output and communicate with the display to synchronise everything.

ashes of the singularity pcper gtx 980 ti-uncapped
Source: PC Perspective

Interestingly, NVIDIA’s hardware doesn’t suffer the same problem running with an uncapped framerate in AotS, but that’s because they’re implementing a workaround in their drivers to fix this issue partially. PC Perspective learned through their sources that NVIDIA is making use of an older feature of DirectX 11, still present in DirectX 12, called a DXGI buffer flip, which allows them to take control of an application that runs in borderless windowed mode, and changes it into an exclusive fullscreen mode, allowing greater control over the framerate and bypassing the compositor responsible for these issues in the first place. AMD will have a similar workaround in their driver eventually, but for now the experience of playing AotS on Radeon cards on Windows 10 is not particularly great.

Also, some people are reporting different results in their tests. PC Perspective says they clearly see judder in their hands-on testing, while Extremetech’s Joel Hruska doesn’t. The conversation online gets messier with Guru3D in the mix, who claims that the FCAT data is accurate, while Extremetech’s work points to it not working properly. There’s a lot of finger-pointing going on, but arguably no-one has a clear idea of what’s actually happening.

This leads us into some of the restrictions that also affect Gears of War: Ultimate Edition, which recently had a very quiet release from Microsoft, available to purchase and play hours before any press releases went up about it. The support team for Gears plainly states in their forums that the game won’t run acceptably with G-Sync enabled in NVIDIA’s Geforce drivers. If you want to play the game, the support staff recommend that you turn this off to get the best experience. It’s possible that G-Sync introduces conflicts with the compositor for the game and thus we don’t get the expected behaviour, and it remains to be seen if this is a bug, or a limitation of Gears because it is a DirectX 12 title. The forum post detailing the issue states that a future driver update from NVIDIA might fix this.

Even if Microsoft acknowledges this issue, it’s probably too late

NVIDIA GDC 2014 DirectX 12 slides NVIDIA-DirectX-12-API-GDC-2014

Check out those two slides more closely. Both were shown off to press at the Game Developer’s Conference (GDC) in 2014, a full year and a half prior to the release of Windows 10, and eighteen months before the first certified DirectX 12-compatible video drivers. At this point, Microsoft had only gotten a short benchmark run of Forza 5 running on Windows 10 and DirectX 12, and we knew very little about it. But there are a few lines that now clearly stand out to me. They are:

  • “Works across all platforms”
  • “Conformance and consistency”
  • “Provide console-like execution environment”

All three of those lines tell me that Microsoft intended for DirectX 12 games to behave in this manner from the beginning. They knew they had to have a user interface that mimics that of the Xbox One UI, and doing that meant running games through windowed mode with an overlay running across it. They knew that developers wanted more control in how users launched games on their computers, and that’s where the “console-like environment” comes into play. But why they chose this route is confusing and slightly alarming to some. Microsoft’s made some spectacularly bad decisions before on behalf of gamers, and trusting them is a bit difficult when they get up on stage once a year and repeat the “we’re committed to PC gaming” line that we’re so familiar with.

If they don’t want this issue to blow up out of proportion and have gamers lash them for it by refusing to buy games in the Windows Store, they need to act quickly and explain what’s happening in the background and whether or not these restrictions in place on AotS and Gears of War are inflexible. If they are, then we need not worry, and consumers should use the Feedback tool in Windows 10 to voice their displeasure at the issues they’re facing. If they are inflexible, then we might see a mass downgrade back to Windows 7 or 8.1 by gamers dissatisfied by the decision, and it may be the catalyst that gives the Vulkan API a publicity boost when it gets into more games.

Further reading: PC Perspective, Extremetech, Guru3D