Exclusive: Xbox One – Potential Impacts of DirectX 12, Asynchronous Compute and Hardware Specifications Explored; Compared with Sony’s PS4


Xbox One and PS4: Operating System and API Comparison

Xbox One Operating System Hierarchy

The second most important thing (after the hardware) is of course the software. You can have exceptionally powerful hardware specifications, but if you don't have the software to drive it - it's pretty useless. It is here, that the first hints of DirectX12 come into play. The gaming public is mostly aware of the fact that the Xbox One runs on some version of Windows - therefore, they reason, it must be logical to conclude that DirectX12 will benefit it somehow. Let's see just how true that really is.

Microsoft has been very picky about what they reveal about this entire OS business and while the reason for that is understandable - the fundamentals are already out via presentations. Most of what we know comes from the demos at Build 2014 and Hot Chips where, thankfully, a few specifics about the inner workings of the XB1 were shared:

Xbox One Operating SystemThere are three operating systems present in the Xbox One and the API in question is known as DirectX 11.X - higher up the hierarchy than 11.2, designed specifically for the Xbox One

The first tier ‘Host OS’ and the ‘to-the-metal- operating system present in Xbox One is dubbed the ‘Host OS’ and has complete control over the entire Xbox One hardware and resources. It owns everything, and, how everything works - including the CPU and the GPU. This is your basic Xbox One Operating System. However the thing is, this particular OS only handles tasking (of work) and the security layer. It does not execute any game code or run any application. It does however host (in a non – hyper-v form, contrary to what you might have heard) the ‘OS’ and the ‘Exclusive OS’, which is Windows 8 and the stripped down Windows 8 respectively.

The second tier ‘Shared Partition OS’ is occupied by Windows 8. This Operating System is “virtually indistinguishable” from the Windows 8 we know (and not really love), code wise. This particular Windows 8 handles all the basic functions of the Xbox One including the shell. Shared Apps are run here. It handles some major features of games such as networking and some audio. DirectX 12 will have a significant impact here since the OS is primarily windows 8. Of course the impact, if any, will not be noticeable while gaming.

The third tier ‘Exclusive OS’, which in Microsoft's Frank Savage’s words, is a “windows 8 that has gone on a massive massive diet…… lean and mean windows 8″. It has been hand tuned to remove any and all bottlenecks as well as bloat-ware. However this is the part which defines it as a ‘partition’ and not a virtual machine. It's primary purpose is to run the game and execute the code. (Remember: the tasking is handled by the Host OS).

Xbox One API DirectX 11.XNow even though the DX 11.X API that Xbox is running uses the Direct X 11 super set, it does in fact have low level access (which is not something available on the DX11 super set on mainstream PCs). So when talking about the Exclusive OS or the tier 3 partition, DirectX 12 could have an impact but only and only - in terms of code execution. Remember that the vast majority of improvement gains from DirectX 12 can be attributed to the decreased driver overhead, low level access or increased draw calls - neither of which is a problem on a console like Xbox One. [TBC] So if you see an improvement - it will probably be negligible at best [/TBC]. However, one main feature of the DirectX 12 API hasn't been mentioned here: ASync Compute, but that is something we will tackle on a separate page.

Bonus: PlayStation 4 Operating System Hierarchy

ps4-osImage Credits Only: Matt Brett

The PS4 has its APIs pretty well documented

The primary OS of the PS4 is named Orbis - which is a derivative of FreeBSD 9.0, which is a UNIX-like OS. This is the equivalent of the 'exclusive os' in the Xbox One and is the environment in which the game code will be executed. Since the previous Playstation console was Cell based, when Sony decided to shift to x86_64, FreeBSD and Linux were the primary candidates. The choice to go with FreeBSD over Linux can be rationalized by the fact that the former has far lenient licensing than Linux.

There are exactly two graphical APIs present in this console namely GNM and GNMX. The high level API is GNMX while GNM is the resident low level API. The language in question is the PSSL (PlayStation Shader Language).

Lets get into a bit more detail about these two:

GNMX (high level) Wrapper API for the PS4

  • Resembles DirectX and OpenGL, but doesn't sacrifice any efficiency.
  • Mostly acts like a 'pass through' API, handing down tasks to the low level API (once again without creating a bottleneck)
  • Full source code is available to the developers.

GNM (low level) API for the PS4

  • Builds draw calls, dispatch and command buffers to feed to the GPU hardware.
  • 'To the metal' access to the GPU hardware (Equal to or more than DirectX 12).
  • Very similar to PS3 and PS Vita libraries

So the PS4 has a very well polished software side of things with complete low level access and all of the features (if not more) that can be found in the DirectX based Xbox environment.