Friday 23 October 2015

Windows 10 Gaming Guide

Windows 10 Gaming Guide

Get the most out of gaming with Bennett Ring

The release of a new Operating System is usually accompanied by a feeling of nervous anticipation followed by outright dread amongst gamers. Compared to the general PC populace, we’re the most sensitive to software change, with our demanding games putting more pressure on the entire PC than nearly every other type of software. If something doesn’t work quite so, it can destroy the entire gaming experience. It could be as simple as a broken refresh rate thanks to wonky monitor drivers, or as drastic as multiple-GPU setups no longer working caused by a revised version of DirectX; we’re accustomed to the release of a new OS breaking something. With the recent release of Windows 10, many gamers have adopted the safe Wait-and-See approach, which usually equates to waiting to see just how horrible the new OS is at gaming. Windows 10 seems to be something different though – despite the leap in version number up to 10, this isn’t really a giant leap forwards as an OS. It’s more a lick of paint applied to Windows 8.1, which probably explains why it’s already so good at gaming. We know this, because we’ve spent a month testing the ins and outs of this operating system in our regular gaming box. We’ve benchmarked the bejeesus out of it, but before we get to the performance metrics, let’s check out the new gamerspecific features that Microsoft has included.


DIRECTX TO THE POINT


If there’s one killer feature in Windows 10 that makes this a must-have for serious gamers, it’s the inclusion of DirectX 12. This is exclusive to Windows 10, which feels like a bit of a dick-move on Microsoft’s behalf, but it’s not the first time they’ve done this – DX11.1 was exclusive to Windows 8. There’s a reason this is exclusive; it’s going to deliver a massive leap forwards in PC graphics, the likes of which we haven’t seen since the first 3D accelerators. Savvy gamers simply must upgrade to Windows 10 lest they be behind in a land filled with Minecraftian graphics. Or so Microsoft would have you believe, as it’s screaming from the rooftops about how bloody awesome this new API is. If the hype is to believed, DX12 will deliver photorealistic graphics running in stereoscopic mode over next year’s VR headsets at 100fps, all while running on a processor as powerful as a pocket calculator. Ok, so maybe that’s a bit of an exaggeration, but we’ve seen claims bandied all over the place that DX12 can improve PC graphics performance by as much as 1000% on today’s hardware. Unfortunately the truth isn’t so simple, for a number of reasons.

First though, a primer on what DirectX actually does. This Application Protocol Interface (API) allows programmers to work with the multimedia related features of Windows – graphics, sound effects, music, control inputs and more. It’s useful because PCs are built from a huge range of hardware, making it impossible for developers to write code specific to each component. Instead, when using DirectX they can use a generic command, such as paint a polygon a certain colour, which is then translated by DirectX into the various commands that are understood by NVIDIA, AMD and Intel GPUs. While it makes programming the PC simpler, it also introduces processing overhead, as the API needs to translate the coder’s instruction into a format that the hardware will understand. This is why consoles tend to offer significantly better performance than an identically specced PC; as their hardware is fixed and identical, programmers can write low-level code that speaks directly to the hardware, with no need for the translation overhead.

The benefit of DirectX 12 is that it operates more like a low-level language, with less overhead. While this should have a significant impact across general performance, it increases performance massively in one area where the PC lags far behind the consoles – draw calls. Every time an object needs to be drawn in a frame, the CPU needs to issue a draw call to the graphics API. Even the fastest PCs running DirectX 11 are limited to around 10,000 draw calls per second, which limits the complexity of the image they can draw. However, DX12 increases this massively, up to around 600,000 draw calls per second, well in excess of today’s consoles. Therefore our graphics will be 60 times as pretty under DX12, right? Well, no. For starters, draw calls are just one part of creating a 3D scene, and simply increasing these without equally massive boosts in all of the other parts of the graphics pipeline won’t have much of an impact, except in scenes that are draw call-limited. Secondly, today’s programmers have figured out very clever ways to get around today’s draw call ceiling, increasing it above the 10,000 limit. So simply increasing draw call numbers even just tenfold doesn’t necessarily mean ten times more polygons on screen. We can expect some kind of boost, but it’s impossible to say just how much it will be until we start to see more DX12 engines.

DX12 WANTS ALL YOUR CORES.


Another, more tangible, benefit of DX12 is that it’s built to handle multiple processors much better than its predecessor, regardless of whether we’re talking CPU cores or GPU cores. In the past DirectX was built to operate on a single CPU core, but the new version is designed to scale beautifully across as many cores as you can throw at it. This should deliver solid performance increases, especially to AMD’s octacored chips, but again it’s not a miracle solution. While multi-threaded programming takes advantage of multiple cores, there are often situations in programming when the whole CPU is held up waiting for the result of one instruction, and it doesn’t matter if you have one or eight cores waiting on it. Still, we should see some pretty generous performance increases when using four or more cores.

More interesting is that DX12 is built from the ground up for multiple GPUs. We recently spoke to AMD about the matter, and discovered that this should mean the end of CrossFire and SLI profiles in DX12 games. AMD and NVIDIA won’t have to make sure their drivers work with a game; instead it’s up to the game developer to ensure their game can scale over multiple GPUs. Best of all, DX12 can handle GPUs that aren’t identical. You could run an AMD and NVIDIA card, and it should work, with the game asymmetrically and dynamically shifting the workload to where it will run best. This is great news considering that most Intel CPUs now pack an integrated GPU that sits idle in gaming machines, with the discrete video card doing all the heavy lifting. In DX12, the game should be able to leverage this unused iGPU alongside the discrete graphics card, contributing to a performance increase. DX12 also means that the combined memory buffers of each GPU can be combined to create one massive memory pool. For example, a PC running twin graphics cards with 3GB of onboard memory will now have a video memory of 6GB (today it will be reported as just 3GB). This sounds amazing, but it’s worth noting that exceeding the memory of a single GPU could result in huge performance hits, as the code would need to access the shared memory across the PCIe bus rather than directly on the graphics card.

There are a myriad of other improvements buried deep within DX12, but the above are the major ones. Thankfully most modern GPUs should run DX12 without any issues. All of AMD’s cards from the HD 7000 series and up, along with NVIDIA’s 400 series and upwards, should work with DX12. At the time of this article, there was fierce debate amongst the GPU community about which company offered the best DX12 performance, due to a feature called Asynchronous Compute. It’s an incredibly technical discussion, beyond the scope of this article, but currently AMD products have a huge lead when this feature is used. This partially explains AMD’s lead in the one DX12 game benchmark, which we’ll get to in a minute. However, NVIDIA claims that its DX12 drivers simply aren’t ready, and it will introduce better support for asynchronous compute in the future, as and when it’s needed.

DX12 certainly has the capability to change the way today’s games are programmed, but like any new API, it’s going to take some time before it becomes the norm. At the time of writing, there wasn’t a single DX12 game on the market, unless we count Ashes of the Singularity, a DX12 powered title that is in Alpha. This RTS game specialises in displaying a huge number of units on screen simultaneously, which typically requires a lot of draw calls. We benchmarked it on our usual test bench, using a Gigabyte GTX 980 Ti to represent NVIDIA, and a Sapphire R9 Fury to represent AMD. As our tests show, AMD’s performance increases when switching from DX11 to DX12, though not by a big enough margin to match NVIDIA’s numbers. On the flipside, NVIDIA’s performance actually decreased when moving from DX11 to DX12, the opposite to what we’d expect. It’s no wonder then that NVIDIA has gone on record to dismiss this alpha as a benchmark, with Brian Burke, Senior PR Manager at NVIDIA recently stating that, “We do not believe it is a good indicator of overall DirectX 12 gaming performance.” Just to nail their point home, he then went on to state how NVIDIA expects DX12 games to perform on AMD vs NVIDIA hardware. “When accurate DX12 metrics arrive, the story will be the same as it was for DX11.” Ouch.

WHAT ABOUT TODAY?


While the story of DX12 performance has yet to be told, one area where we can measure Windows 10’s merit is in performance using today’s games. In the past it’s been commonplace for a new version of Windows to lead to slight decreases in game performance, as a result of early drivers and a lack of optimisations. To see how Windows 10 faired, we fired up our usual gaming benchmarks, this time grabbing MSI’s GTX 980 GPU to test performance. As you can see, performance was basically identical across all three benchmarks. There was a slight variance across our tests, but these were well within the standard deviance expected from each benchmark. We’ve also updated our main gaming rig since Windows 10 was released, and haven’t encountered a single issue with game compatibility of performance. Having said that, Microsoft recently acknowledged that both Safedisk and SecuROM won’t work properly with Windows 10. Older diskbased games that use either of these services will either need to be cracked, or savvy users can follow this rather technical guide posted by Microsoft, which will sign the necessary driver files: https://msdn.microsoft.com/en-us/library/windows/hardware/ff553467(v=vs.85).aspx

GET YOUR UPGRADE ON


Given the fact that Windows 10 is free, combined with its excellent performance results, we can happily give Microsoft’s new OS the big PC PowerPlay tick of approval. It’s going to become a mandatory upgrade in the future as DX12 takes off, but even now the refreshed interface and inclusion of several new useful features make it a welcome upgrade. If there is one flaw with Redmond’s new Operating System, it’s the massive volume of information that Microsoft gathers about its users, but there are countless guides online about how to disable these to keep your computing habits private. It’s not often that we’d recommend upgrading to a new OS as soon as its released, but Windows 10 has bucked that trend. The only question now remaining is whether Microsoft’s latest OS is enough to turn the company’s fortunes around, after the dismal take-up of Windows 8.