TechnoBabble: DirectX 12, Windows 10 and XboxOne
Watches of my last episode in this series will know I guessed correctly on the aim of microsoft with windows 10's aim for cross play/remote play both ways, yes you will be able to stream play X1 games on your PC and when they fix it the other way around. With 1080/60 being the target rate, now even though I guessed this it was not a hard one to see coming for a while, with windows 10 being designed to create an eco system that is a windows device rather than a PC.
Using a completely virtualized environment (most likely my guess as to how it is configured) means it can scale appropriately across all platforms with a unified experience, we all know another platform that follows this rule and Apple have done ok out of it. The stage demo showed that Microsoft see a phone, tablet, PC or any other device simply as a Windows device and that very much includes the XboxOne. Also pretty much a given process is the free upgrade offered for the first 12 months of launch to go from windows 7 or 8 into 10 for free, no word on the retail cost of that but expect it to be cheaper than previous releases for 2 reasons. One: Microsoft do not want another swerved O/S that 8 was in many way and - more importantly- Two: they want to negate as much legacy as possible, by doing this they move the base on as far and as fast as possible and tie people into to the platform, and every one likes free stuff.
With the launch being around June-September expect much more info later this year at GDC and the like with an XboxOne dash update from its current windows 8 to the new 10 around the same time, but this will most likely not change a great deal from a UI point of view at first, more just to get the centralised kernel in place. With phones, tablets, PC and laptops all having a free upgrade to gain advantage of the benefits of 10 then I see this being a mass surge of windows 10 devices popping up left right and centre. But what does it offer us, well before I go into the DX12 stuff lets hit the O/S benfits. Spartan is the new spruced up browser that Microsoft hopes will compete against Chrome/Firefox for winning back users into the Microsoft fold of browsing, and by merging it so seamlessly into a work flow it means that you can use it for screen grabs, citations and a hub of work no matter which device you are using, creating a one size fits all approach is just good practise with more and more technophobic users having to use a PC of sorts each day by doing this they make the mass market easier to adopt whilst simultaneously flattening the learning curve of each device, they will for all intents and purposes feel the same. Now aside a love of voice recognition and Cortana for many this will feel alittle jaded and meh, but this will still work if done right with the masses. Windows is still the core of many businesses and homes, by removing the cost barrier in the long term is a win! win! Win for Microsoft. But talking assistants and halo browsers is not enough to win over the other market they are also going for, they want the gamer!.
Be them console, phone or PC to only choice Windows (the steam demo was no mistake during the Windows 10 demo from phill spencer, give the people what they want) for all their pixel pushing fun. And by showing that steam works out of the box and offering up a new MS marketplace with shared use, cross play, streaming and even cross buy while launching with Fable Legends being an originaly launch X1 exclusive now shipping day 1 on PC also. Microsoft have an advantage that Sony do not in this regards with a completely separate revenue stream with no need to fund the messy and mostly thankless hardware fulfilment side, this is not to say that MS will abandon the console space, not in the slightest, I see this as nothing more than hedging your bets. And they can! a game like Fable Legends being X1 / PC cross launch and play means that MS will see more sales for a similar development cost / cycle (more on that later) than just Console but more importantly it will not anger the gaming public at large. Don't expect similar deals yet with Halo 5, Quantum Break or even more so Rise of the Tomb Raider. These would be too big and to vocal an issue to get into, but as has been seen so far with Ryse and most likely some time around windows 10 launch Sunset Overdrive and maybe Killer Instinct to drum up excitement and goodwill. And these staggered release on select games will most likely continue and be monitored to gauge how the market handles this. As I say do not expect big hitters like Forza 5 or above but maybe Forza Horizon 2 and other games that do not quite make targets to make that shift at a later date to maximise ROI.
But aside all of the cross market stuff and open arm activity what else does Win10 bring to the party. Well this is a gaming channel and thus games is what we care about most, and DX12 is exclusive to windows 10. Yes it will not have support even on 8.1, both that and 7 ( most Likley 7 sticking with 11 only) will make do with the 11.3 updates that offer up some of the benfits of DX12 but what are they and what do they do?.
The first thing that DX12 offers and the single most important aspect is the ability to use the CPU’s of modern machines far more appropriately, but it also offers up some new features that require Hardware. The big question is what these features are and even more importantly what CPU/GPU’s have these hardware feature available. The latest Maxwell cards from Nvidia all support DX12 as does all GCN 1.0 to 2.0 cards of which both the PS4 and XboxOne are GCN 2.0 BUT and this is a big one at this point Supporting DX12 (which they all will) and having Full DX12 support are not one in the same.
Now the hardware features that we know of that DX12 is bringing to the table are Conservative rasterization, Raster Ordered Views which can both be achieved in software but as always with hardware solutions this is slower and thus may not be used at all unless the hardware is present. Now Raster Ordered Views is remarkably similar to Intel’s Pixel Sync which manages the overdraw of pixels enabling more effects in games. GPU render work is what is called embarrassingly parallel, when a scene is rendered the Pixel shaders all work at once and when this involves a transparency affect like a fence or glass then this can get into issue’s resulting in a poor results, slow and the end output even being out of order and wrong . What ROV will do is allow the software to manage the hardware on areas where blending is needed and serialised the process so that each pixel is shaded in order rather than as received, serialising the render but only on the areas needed so that performance on the entire scene is not lost. Resulting in a much better looking visual along with performance not being affected on the single best thing GPU’s do, order independent transparency is a good benefit in DX12 for all blending affected parts of a scene also meaning the CPU does not have to sort the order.
Conservative Rasterization is again not a brand new feature but it may need hardware to get the best out of it. Used for when collision on primitives as it can detect this without the need to use GPU resource by upping the resolution. As standard rasterization cannot know when this occurs on edge cases it is a real problem that will help. Effectively pushing voxel use more in D3D as it will be a significant part of this process, also Volume tiles resource is coming which is an extension of tiled resource or mega textures or partially resident textures again minimising memory use on parts of a texture when not needed or used across a lot of a scene, this is a hardware feature in later GCN cards and both consoles. Again what hardware has all of these features (if any at all) is unknown but we will learn more about these and any other features coming in DX12 at GDC.
We do know the benefits it offers up on performance but these do not come for free, working on a Console API is far more work than with a standard DX API as it takes care of so much more for you in DX11 that DX12 will allow developers to manage more of the render process and not micro-manage it so much, DX11 has so much state control in place it is wasteful, but with DX12 this will be paired back but it will not be for everyone and DX11.3 will allow some features to improve but also allow Dev’s to simply stay as close to it as they are now with the option of using descriptor heaps, tables and the like if required and choose when/what the GPU hardware state does throughout the pipe, even index materials within shaders opening up the possibility to have 10 times the amount at the same cost as DX11. It will not be a silver bullet for all games so don’t expect everyone to always use it and for it to improve everything within a game as we are talking about increases within parts of the pipeline. Even on console they have a choice to use DX11 code right from PC and do less leg work themselves, even PS4 has a wrapper API GNMX that is much higher level and enables developers to code similar to DX11 paths and have all this managed with a higher VM that obviously comes at a performance cost and I am sure many games on both consoles have and will use this now and going forward. I expect the same thing with DX12 also being used in the bigger companies but not everywhere, brute force is always an option with PC. Also games will need to be written for DX12 to work as intended. One such game is Fable legends as it is a DX12 game for both PC and X1 it will be the first real game we will see that shows off the early benefits in a real game.
But we have had some tests already with the Mantle Test Star Swarm used to compare DX12 to Mantle itself (AMD’s own Low level API). Some say that AMD wasted their time with mantle and now it will die due to DX12 as they will not support 2 separate API’s but I am not of that mind-set. You may remember that I mentioned on my last video about the Intel AMD CPU split and in my AC:Unity and Dying Light videos I showed this in practise. The single biggest advantage that Intel has over AMD is its ability to run all code very well and more importantly single threaded code is blinding and as I mentioned is down to the Intel memory structure and sleep/wake process into Turbo mode. Most PC CPU’s never operate anywhere near the speed they are clocked at all the time, most apps just fire off and then wait again and the power of a modern CPU is far in excess of what is needed of it most times. Turbo modes are when an app needs fast single core speed that have power gates that shut off part of the chip when not in use to save power/heat and also allow this boost on a single core to much higher base speeds for a short time and blast through the job. And this is Intel’s secret weapon over AMD and why you see even lower level CPU’s beating much higher AMD one’s in some games, those being heavy on a single core with DX11 having all communications with the GPU happen from a single core you can see where this is going. Dying light is a great example of it in practise, single threaded code affects the AMD machine far more than the Intel one. But with Dx12 (and mantle) this advantage is massively reduced and enables much lower spec and cheaper CPU’s to be in contention once again, this is what AMD did with Mantle. It needed Dx12 but it had to motivate the market and it did.
Now as you see below with the Star swarm test the improvements on an Intel CPU are around 67% with the i3 having pretty much 100% improvement on FPS to the AMD A8 APU , but under DX12 this advantage is gone as the game stops being CPU bound and becomes GPU bound with the AMD CPU seeing nearly 200% improvement and running the test identically to the Intel CPU. And this advantage is also seen in the GPU area with the Nvidia card seeing a +150% improvement from DX12 but AMD seeing up to and over 400%. Now you can see why AMD wanted this so much as it makes the difference in CPU and GPU much smaller or removes it entirely, putting rest to the silly rumour Nvidia Tflops are better than AMD’s and such like. Mantle was IMOP never meant to be anything other than the carrot it was and it works. Still being in Beta and most likely never coming out, here with the Star Swarm test Mantle can get beaten by DX12 and this is only good for AMD with its APU’s also seeing the biggest improvement from both CPU and iGPU. But like all tests even more so a beta one like this running on a beta OS and API should only be taken as a guide and a Best Case scenario. Only if you are batch submission restricted will you see this kind of improvement with a game having far more going on than just this no game is going to see this kind of benefit but it will be large, far more NPC’s with much better AI, richer worlds, more realistic lighting.
Along with this performance gain much better things can come, far more draw calls means richer worlds on PC and XboxOne, more lights in games with better framerates. This will improve hardware the lower down the food chain it is with AMD CPU/APU’s seeing the most benefit and then getting smaller as you move up the level, but everyone will benefit to a lesser or greater degree but all will see the benefits in games, Mobile devices will see most likely the biggest gains not only on performance but power use and heat TDP being pushed back into the GPU where it belongs. Again Dying Light aggressive cut back on LOD on the consoles and dynamic light sources highlights just how affected the consoles are by this limit of single threaded submission (or strong CPU power). See here how the split from DX11 API, driver, Kernel leaps in DX12 as it spreads the work out over the threads. Both X1 and PS4 CAN still run on the DX11 pipeline and this change will affect them greatly as it will on PC, but many of you are probably saying "But PS4 does not use DX?" which is correct it has its own GNM API and the PSSL language for graphics but with the next gen version of OpenGL also being shown at GDC this year with Sony as part of the members it is always a case of whatever you can do. All the improvement’s we have gone through here and thanks to Anandtech for the graphs will also be in works for OpenGL and the PS4 API so by the time DX12 hits PC and X1 at the end of this year with Fable and Windows 10 be sure that Sony will have something ready to ship also, you don’t move forward by standing still. As I have said on my previous videos this gen will have as much if not more of a leap from early games to end, it will. The Order 1886 is a game that right now is THE benchmark for Real-time visuals looking like Pre-rendered CGI but by the end of this gen and by RaD themselves and others it will be surpassed, this is a golden age of gaming no matter your platform and it will only get better. I will cover more on DX12, GLnext and much, much more from GDC soon in another Techno-babble and others to come.