Microsoft is preparing a big update to Windows 10 this year called the “Creators Update”, which adds in a bunch of new features for people who create and work with media, as well as 3D printing and design. Along with the update is a new component of the Xbox app called “Game Mode”, which supposedly gives users a console-like performance uplift. Up to now, how Microsoft was going to do that was a mystery, because Windows is a melting pot of software that somehow clashes and works well together 90% of the time – even apps that claim to boost your framerate like Razer Cortex don’t affect performance too much, although they’ve been known to help weaker systems run a game slightly better. Well, we now know a little more about how Game Mode will work, and it’s a very cool trick hidden up the sleeve of Windows 10.
The Windows Insider blog yesterday announced some of the features that they’re adding to the Xbox app, and they work for games bought through the Windows store on the Universal Windows Application (UWA) platform, or Win32 games that you’ve gotten elsewhere. The first is built-in streaming to Beam.io, a Twitch competitor that Microsoft literally just bought out a few months ago. Beam’s streaming technology is arguably a bit further along than Twitch’s is, but both are much of a muchness. If you’re interested to see how Beam functions, head over to their currently streaming page and check out some streams. Unlike Twitch, or Youtube, there’s only a one second delay in the stream, so it’s as close to real-time as you’re going to get.
Along with Microsoft finally putting some of the Xbox app’s settings into the main Settings menu, there’s also the much-awaited Game Mode. Game Mode is invoked by hitting WIN+G as you launch your game or while it’s running, and enabling the Game Mode option to improve performance. There’s not a lot of technical detail in the blog post to go on, which is probably intentional. Microsoft is still testing out the feature to make sure it works, and a new build of Windows 10 for Insiders that features Game Mode and other additions will be made available this week.
TechRadar, however, managed to get more information from Microsoft Xbox Platform Partner Group Program Manager Kevin Gammill. “One thing we wanted to make sure with Game Mode that we didn’t do is, one of our core tenets is ‘do no harm,’ and we wanted to be very thoughtful about just turning things off willy nilly”, Gammill says.
“When you have a game running in the foreground, we basically will give the game more affordances to the GPU resources than the background tasks,” Gammill continued. “Windows kind of has this default split between foreground and background, and we can tweak those numbers.”
That makes a bit of sense. Splitting the workload more towards running the active game is a good idea, although this happens already via the GPU driver without a dedicated mode like this. However, it’s the CPU side of things where my interest gets piqued.
“We’re essentially affinitising the CPU cores. If you take an eight-core machine and you’re running a game on it, typically the game is spread across those eight cores along with the system processes that are running. When you’re playing a game and you run into some of those hiccups, it’s often not because of the game, but because of something going on the background just kicked up and stole some of the CPU resources. So, what we do is we affinitise a lot of CPU cores, so that the game will get 80% of the cores, and they will get 100% of that 80% of all the cores. And, the system will get the remaining 20% of the cores, but at 100% of their capacity.”
In both the Xbox One and PlayStation 4, the operating systems dedicate system tasks to two cores, while the other six are left to run games. Sony stretches this a little bit by dedicating 50% of the CPU time on one of the remaining two system cores to improve performance when needed, but Microsoft keeps their two separate because of how much background work needs to be done to keep the system running smoothly, in addition to reserving some GPU power in case a Kinect camera is plugged in. Doing a similar thing for the PC is a sound idea.
The way that Windows currently schedules threads on a CPU frequently leads to the scheduler swapping the workload to a new core every couple of milliseconds, which helps keep down power usage and heat, and helps maximise the gains seen from turbo boost mechanisms. Some applications can peg themselves to a particular core, or a number of cores, but Windows’ scheduler does have the power to shift that workload around when needed.
None of this is really new…
We’ve had the ability to lock programs into specific cores for a while now. You can do it inside the Windows task manager in the details pane for any application or service, and it’s one of the easiest ways to manage performance when you’re multi-tasking. Other operating systems have this feature as well, and on Linux there’s a way to launch an application from the command line with parameters on which cores it’s allowed to run on. For instance, let’s say you want to run a render in Premiere Pro at the same time that you’re playing through Borderlands again. If you have enough cores for both workloads, you could assign cores 0-3 for Premiere Pro, and cores 4-7 for Borderlands. That way neither application interferes with the other, and the Windows scheduler won’t swap cores between them whenever it feels like it. However, that does mean that Windows can launch a service on a core you’ve parked for a specific application and consume resources, so it isn’t an exclusive mode.
What Game Mode is offering is exclusive access to a particular core for a game, while setting the affinity of every other program and service to use the ones that aren’t already reserved. No other application does this, at least none that I’m aware of, and because your affinity settings reset themselves after a reboot, or when restarting a program, doing it manually can be a pain. What Microsoft is promising here is quite nifty, and while I don’t think it’ll boost performance that much, it is going to be useful to have around. Where users might see performance boosts are systems with AMD’s Bulldozer-based processors, because that architecture benefits more from applications being parked to groups of cores, rather than having the scheduler swap workloads around as needed.
In their interview, Kevin Gammill assured TechRadar that Game Mode will work on any combination of hardware, including AMD CPUs with NVIDIA graphics cards. The Windows team would also be whitelisting games to allow them to work automatically with the feature, but there is no word about being able to add in a custom application. It would be really neat to see them open this up for other applications to take advantage of.