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

Sep 18, 2015 at 04:57pm EDT

Foreword: A few weeks back, I delved into the DirectX 12 question as it is applicable to the PC world. This time around, I will attempt to do something similar for the current generation consoles, specifically the Xbox One. The specifications, capabilities and features of both consoles are scattered and are usually not found in one coherent entity. While I would expect a vested party like Microsoft to deliberately refrain from clearing the confusion, the extent to which information about the consoles and DirectX 12 (in the case of the Xbox One) is exaggerated, remains one of the root causes of the flame war. This editorial isn't, by any means, a thorough documentation on either console; but it does aspire to be a resource for a good number of technical queries of the average console gamer.

Not an official poster. @Wccftech

Xbox One: A technical summary, potential impacts of DirectX 12, Asynchronous Compute capabilities and comparison with the PS4

The Xbox One's launch has been marred with allegations of being underpowered and an inferior alternative to the PS4. With the advent of DirectX 12, there has been an even split amongst camps, debating over whether the new API would bring any real performance gains to the console. In this editorial, I will explore the possible and the probable, in terms of DirectX 12 API (and "DirectX 12" hardware based features where applicable). It will also contain a complete overview of the hardware, OS, API and other features that are of interest to console gamers.

If you are reading this, and are interested in learning the basics (such as differentiating between API and hardware features, as well as a complete overview of the technicalities) I would recommend giving the original DX 12 editorial a read first. Unlike graphic cards, which are meant for the PC industry, the territory of console hardware is treacherous at best, so some of the blanks that I have filled could pass as educated speculation (clearly marked as such with the [TBC] tag), although all of it is based on real documentation.

In this article you will find:

  1. A basic hardware specification comparison of both consoles

  2. A sufficiently thorough comparison of the operating system and known APIs of both consoles

  3. An analysis of the µArchitecture and investigating Asynchronous Compute support for the Xbox One and PS4

  4. Answering the DirectX 12 Question and Something to Ponder

Disclaimer: Every attempt has been taken to ensure the accuracy of the data present in this piece. However, we accept the possibility of a mistake or accidental omission due to human error. If any such hiccup is spotted, please let me know and I will make sure to update accordingly at the earliest.

At the heart of every gaming machine - is the hardware powering the games you see on-screen. Traditionally, it refers to the precise recipe of CPU/GPU horsepower and memory throughput. The previous generation of consoles - namely the PS3 and Xbox 360 were vastly inferior in terms of hardware power - but were designed as single purpose machines. With both the PS4 and Xbox One entering X86 territory now, the lines between a console and a small form factor PC are getting increasingly blurred - and separated only by software. Infact, most, if not all, of the hardware powering the consoles was originally intended for the personal computer.

PS4 and Xbox One hardware: navigating the architectural shift to X86

Both the Xbox One and PS4 have custom based APUs courtesy of AMD. Knowing the exact hardware specifications of a custom chip is usually a dubious proposition at best; but thankfully, in this case, we already know all the major features and architectures used. Given below is the publicly available specification of the graphics and compute parts of the APUs used inside the consoles:

Console Hardware Comparison Chart

WCCFTechXbox OnePS4
CPU CodenameJaguar Jaguar
Primary CPU Configuration4 + 44 + 4
Auxiliary ProcessorNoYes
Clock Rate1.75 Ghz1.6 Ghz
GPU CodenameBonaire derivativePitcairn derivative
Stream Processors (SP)7681152
Raster Operation Processor (ROP)1632
Texture Mapping Units (TMU)4872
GPU Clock853 Mhz800 Mhz
Memory Clock (Effective)1066Mhz (2132 Mhz)1375Mhz (5500 Mhz)
Memory Bus256256
Rated Floating Point 1.31 TFLOPs1.84 TFLOPs
Bandwidth 68.3 GB/s176 GB/s
Unified Memory 8GB DDR38GB GDDR5 (+250 MB DDR3)
eSRAM32MB (192GB/s)N/A

Both the Xbox One and PlayStation 4 have the same CPU architecture – namely Jaguar (which is an improved version of AMD’s Bobcat). Although, the configuration of the CPU side is the same (dual quad-core modules) the clock speeds are slightly different. The Xbox One has a known clock speed of 1.75 Ghz, while as the PS4 has a [TBC] clock speed of 1.6 Ghz.

Now here is the thing, while the main configuration is also given responsibility for handling background tasks on the Xbox One, the Sony PS4 has a dedicated (and separate) low power processor (technically increasing its configuration to 4+4+1) for all these behind the scenes work. The Auxiliary Processor has its own pool of 256 MB DDR3 RAM. While that might seem insignificant in comparison to the 8GB of GDDR5 shared memory for the primary APU, it’s actually not. It was not so long ago that 256 MB was all processors of ‘current generation’ consoles (like the PlayStation 3) had.

So that’s the compute side of things for APUs of both consoles. It’s when we move on to the graphics side, that things get really interesting. While the Xbox One houses a Bonaire derivative with 768 stream processors, the Sony PS4 rocks a Pitcairn derivative GPU with 1152 stream processors. The Xb1 features 16 ROPs and 48 TMUs versus the PS4’s 32 ROPs and 72 TMUs.

This means that the Sony PS4 is inherently more powerful than the Xbox One in terms of gaming performance – and no amount of optimization or software updates can change this fact

The GPU of the Xbox One is clocked at 853 Mhz while as the PS4 GPU is clocked at 800 Mhz. The memory of the XB1 is clocked at 2133 Mhz effective while as the PS4 has a significantly higher 5500Mhz effective memory clock speed. The APU of the Xbox One will have about 68.3 GB/s total bandwidth while as the PS4’s (Primary) APU will have access to 176 GB/s of sustained bandwidth. Unlike the PS4 however, the Xbox One also has 32 MB of esRAM, capable of boasting bandwidth upto 204 GB/s – but depends on entirely on how the developers use it.

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:

There 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).

Now 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

Image 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

GNM (low level) API for the PS4

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.


I have a confession to make. Calling these features "DirectX 12" hardware features is not technically accurate. These are hardware features that can be unlocked by any capable API. However since the vast majority of gamers knows them by this name - I decided to forgo technicality for convenience on this one. As I am sure everyone reading this is aware - Async caused quite a bit of noise recently. And that is because the impacts of this particular little feature are quite a lot.

A slide from the AMD press deck showcasing an ACE. @AMD Public Domain

Asynchronous Compute is all about using the compute pipeline of the graphic processing unit in conjunction with the graphics pipeline. This allows the usually idling compute resources of a card to come into effect - increasing the true utilization of a graphics processor and utilizing excess resources. Not to mention it offloads some of the load on the CPU allowing for more work to be issued (to the GPU).

In the case of the consoles, the capability to offload compute tasks to a significantly superior GPU (in terms of raw compute horsepower) is invaluable. Even though the CPU cores present in both consoles aren't really powerful cores - or clocked all that high for that matter, Asynchronous compute can allow developers more compute headroom without any noticeable trade offs.

Xbox One and Asynchronous Compute

Since this editorial is primarily about DirectX12, lets start with the Xbox One. Given above is the architectural diagram of the Xbox One GPU circuit. The first thing any person well versed in GPU architecture will notice that the Xbox One actually has two graphical queues. This is something that is not present in any other PC GPU (to my knowledge). Even the latest R9 Fury X has only one graphics queue. We will talk a bit more on it later. Secondly, readers will notice that there are actually two "Compute Command Processors" present in the diagram. Since we are dealing with the GCN (Graphics Core Next) architecture, these are of course the Asynchronous Compute Engines or ACEs for short.

You will remember that the Xbox One GPU is a Bonaire derivative - so this is pretty much as expected since Bonaire is based on the GCN 1.1 micro architecture which boasts 2 ACEs as well. Since each ACE can run 8 Compute Queues, the Xbox One can run a grand total of 16 Compute Queues [Update: Information present in a publication presented at Hot Chips suggests that Xbox's ACEs can manage upto 16 queues each for a total of 32 queues. We do not at this point know whether this is a typo or a feature thanks to AMD's custom solutions]. We know that the Xbox One has compute queues that developers can use to offload compute tasks to the GPU. The next question then becomes - can we access them and more importantly, do we require DX12 to do so? The answer to these questions is Yes and No respectively.

The Xbox One can implement Asynchronous Compute using 2 ACEs without the DX12 API

Take a look at the slide above from the HotChips presentation. As far as we know, the DirectX 12 patch hasn't been rolled out on the Xbox One yet. And yet, developers possess the capability to utilize the Xbox One's 'Compute Command Processors'. A recent example was the Tomb Raider demo - which utilized the ACEs to calculate the volumetric lighting used inside the game. The full length working paper can be found here.

This means that the Xbox One can successfully access Asynchronous Compute without requiring the DX12 API. So that is one less significant update that the new API could have brought. Now let us take a look at the PS4 GPU (Source: VGLeaks ).

PS4: Assessing Asynchronous Compute capabilities

We know that Pitcairn possesses exactly 2 ACEs (based on the GCN 1.0) design, but here is where things get interesting. The diagram of the PS4 is fairly detailed and very enlightening, you will notice there are a total of 8 Compute Pipelines (numbered 0 to 1). This means that the PS4 actually has 8 ACEs. This is 6 more than one would expect from an architecture based on Pitcairn and results in a grand total of 64 Compute Queues and a significant upgrade over the compute Asynchronous compute capabilities of the Xbox One. But what about the graphics queue? Well, the answer is 1+1 actually. On the right side of the diagram you will notice an "HP3D" pipeline and a "GFX" pipeline. Both can take graphic workloads but one (the HP3D) is dedicated completely for graphics processing while the other (GFX) can take both compute and graphics work loads in a serial fashion. So while the PS4 has 1 graphics queue by the traditional definition, it actually has a secondary pipeline (for a net total of 2, 3D capable pipelines) which supports graphics tasking as well.

The PS4 can implement Asynchronous Compute using 8 ACEs

So now that we know exactly how many compute queues and graphics queues each console has - just how much difference does it make? Well - the answer to that is pretty straightforward. If you recall the original DX12 editorial, you will remember I talked about the maximum theoretical potential of hardware. When talking about graphics, a single graphics queue is really all you need, since it will be able to task the available Control Units (we are talking about Stream Processors here) pretty well, two will help increase parallelism, and allow asynchronous tasks to be scheduled. However, increasing graphics queue will only help the programmer near the maximum theoretical potential of the CUs, they will not increase the actual maximum theoretical performance .

On the other hand ACEs are independent engines that allow compute tasks to be scheduled asynchronously and executed parallel to the graphics queue. This means that increasing ACEs actually result in more compute tasks that can be processed simultaneously with graphics. This also means that, in theory, the PS4 can simultaneously handle 4 [or 2 times, given the updated information is correct] times more Asynchronous Compute tasks than the Xbox One. Although once again - the theoretical hardware limit remains the same.

In this editorial we have successfully established the following:

The vast majority of performance improvement in DirectX 12 comes from either the low level access or the asynchronous compute - both of which are already present on the console. As far as the draw calls go, the Xbox One API DX11.X already supports draw call bundles - the same as DirectX 12. In short, it already has a multitude of DirectX 12 features present.

Armed with this information, we can safely say, that (Xbox One) gamers should not expect any significant performance upgrades (where significant is defined as the Xbox being able to run games at higher resolutions than now) with the arrival of the DirectX 12 update

However, DX12 will bring a plethora of features - most of which will probably be visible only to the devs. How soon these trickle into games; will be up to the devs. Sony's PS4 is an exceptionally powerful machine and already has full to the metal access and Asynchronous Compute. The API it uses is equivalent to or better than the DirectX 12 API - which means that neither does it need the update, nor will the update give the Xbox One any sort of edge.

Since we are now at the end of this editorial, I wanted to mention something that has very little documentation present currently. As we saw, the "Exclusive OS" present in the Xbox One is based on Windows 8. [TBC] There is supposed to be a Windows 10 update coupled with the DX12 update (since the new API can only run on Windows 10). If that is true than one thing that I am particularly interested in is whether the Exclusive OS will be updated as well. Will it be replaced with a "lean and mean" version of Windows 10, or will Microsoft stick with Windows 8 and make the DX12 API (for Xbox) backwards compatible. The answer to that is any body's guess. As far as performance upgrades go, this could result in a more streamlined process and code execution - although I still doubt it will result in any significant gains (nothing which might magically allow the Xbox One to run games on 1080p, that it previously ran on 720p). [/TBC]

Both Microsoft and Sony have made incredible consoles. On paper, and in terms of hardware specification, the PS4 is the superior console. That said, consoles have hosted AAA titles and absolutely immersive games when they had as little as 64 MB of memory and a piss poor GPU/CPU combo.

Hardware power is simply not a good enough metric to solely judge gaming consoles by

The games that arrive on each consoles are nothing less than works of art - and you can absolutely count on the fact that the artist knows the limitations of his medium. Working with polygon budgets and pushing the available hardware to the limit is exactly what developers are used to doing.

In real life, this hardware difference might translate to the PS4 being able to run higher resolutions - but does this also automatically equate to better games? No. The answer to that, in its entirety, rests with the game developer.

 

About the author: PC Hardware and Technology Enthusiast, Blood of Silicon (1 nm),

Follow Wccftech on Google to get more of our news coverage in your feeds.