For PC owners, DirectX 12’s release next year will solve a long running issue with PC gaming – lack of a low level GPU access via the API. Sure, right now we’ve got AMD’s awesome Mantle API, but there are developers who’re a little cautious to stray away from the well supported DirectX API. But DX12 will also be heading to the Xbox One, and for owners of Microsoft’s console there have been a plethora of questions raised regarding the performance boosts that will be associated with the console.
The lead programmer over at Naughty Dog, Christian Gyrling had less than flattering comments regarding DirectX’s current form. “Low-level access to the GPU really makes you understand why using DirectX is slow and why it is really just in your way. Being able to unmap/remap memory pages from its virtual address space while maintaining its contents is absolutely amazingly useful.”
Sony’s ICE Team, who’re responsible for the optimization of the Playstation 4’s SDK’s and API also chimed in regarding DirectX 12 “I was in that room : ) That session was pure marketing hyperbole. Later DX12 sessions at GDC were more realistic/interesting IMHO. And but so yeah, these GDC sessions are exactly what I had in mind when I wrote the tweets I linked you to earlier.“
Last month, Cort had been asked a few questions of DX12 and had responded by saying “looks awfully familiar 🙂 Glad to see more gfx APIs moving closer to the hardware. New patterns are emerging!”. He’d not given exact info regarding his thoughts regarding performance at the time however, as he’d cited lack of experience with the API and DX12.
Slightly Mad Studios Ian Bell has also mentioned DX12’s improvement – on both the Xbox One and the PC. “We’re hearing that up to a 30% performance increase is possible under certain circumstances. Xbox One should support it, as will PC. It will make the Xbox faster and it’s something worth caring about.”
We’ve conducted an analysis of what we know about DirectX 12, but there are big questions regarding what exactly we’re going see in terms of raw performance are we going to see the increases on with the Xbox One? Will it primarily be commands being issued from the CPU (Draw Calls) and multi-threading? Rumors and comments from camp Xbox are pointed to an additional 10 percent (roughly) of performance from the GPU being granted to developers. This is all because of developers (as far as we understand, Microsoft have admitted they’re still working out the finer details) will be able to optionally disable Kinect as they deem fit. If a developer disables the Kinect (while the game is loaded) the game application will benefit from the additional GPU resources which are traditionally taken up for OS and Kinect functionality.
You as a user won’t be required to ‘do’ anything or set any options, it’ll be down to the developer to decide they want and need the extra performance for their game. Therefore in theory, when you boot up the title the Xbox One will read that the game wishes the Kinect disabled and go ahead and shut down the services (or at the least, free up the GPU reserve) for Kinect / OS and grant it to the application which requests it. Of course, as stated above this is just the leading theory and hasn’t been confirmed as yet by MS.
It’s an intriguing prospect – as one major issue regarding DX11 is that it quite frankly sucks for multithreading on PC. It’s very difficult to spread the workload of the renderer over multiple CPU cores, and so you can often be CPU bound – because effectively one CPU core is doing a lot more work than the others. With the Xbox One, as far as we understand it’s an improvement over the PC version of DX11, but just how ‘low level’ the access is has been called into question. If it’s already fairly low level provides decent multi-threading then the boost will be obviously be less than the advertised by Microsoft 50 percent improvement in CPU performance,
It’s also difficult to know how optimized the Playstation 4 is too – as despite generally having improved visuals in multi platform games over the Xbox One, this could easily be attributed to the additional GPU grunt and better memory structure of the console. With that said, we do know that the PS4 has a low level and a ‘wrapper’ high low access of the GPU. The GNM, the lowest level API allows you to control many of the functions of the GPU, but requires much more work. The higher level API available for the PS4 is known as GNMX and offers developers an easier time in porting titles over if they’re more familar with say DX11. It is perfect for smaller studios who aren’t bothered about squeezing every last drop from the heart of PS4’s GPU due to their game not requiring the extra grunt. Sony’s ICE Team looks like it’s providing a large shot in the arm to the PS4 too, with rumors (and evidence) pointing to it being due to GPGPU computing. It’s worth noting that the PS4 can get more mileage due to the beefed up GPU ACE structure and extra grunt.
Interestingly enough, at the recent GDC event there was also discussion of Sony pushing tools out to the game development community to make things easier – particularly with Authoring Tool Framework / .NET C#. Indeed the description of the seminar was as follows:
Authoring Tools Framework (ATF) is a set of C#/.NET components for making game development tools on Windows. ATF has been in development for over 8 years and has been used to make many custom tools such as Naughty Dog’s level editor and shader editor for The Last of Us, Guerrilla Game’s sequence editor for Killzone: Shadow Fall, an animation blending tool at Santa Monica Studios, a level editor at Bend Studio, a visual state machine editor for Quantic Dream, and many others. After many years of proprietary releases, ATF is now being released as an open source project on GitHub.
Well, we know about Mantle (and AMD are of course continuing to push their API – as they should with the release of White Papers and more) but what about OpenGL? “OpenGL is broken” claims Joshua Barczak, while Aras Pranckevičius admits that OpenGL has issues, but also has lots of potential in his recent blog post.
API’s are changing, and it’s a good bet that we’ll be seeing a lot of movement in the market over the next few years. But look at it this way – even if there’s only a slight improvement in the performance of the Xbox One, it’ll likely make porting games too and from the machine to the PC much easier, which will benefit everyone. And hey, more performance, right?