What Will PS4 and Xbox 720 Bring Other Than Faster Hardware
We expect the next generation of consoles – The XBox 720 and Playstation 4 to be substantially better spec wise than the previous generation. It’s not an unfair expectation, but we should not focus our pursuit purely on the amont of FLOPS or the amont of RAM a new system can put out, instead we need to look a lot deeper.
The current generation of consoles (well the Xbox 360 and Playstation 3) have around 250GFLOPS of computing power, which for the time of their release was impressive. But, as they say – times change, and now it’s starting to feel sluffish. We know that developers are cutting things out in games, be it high resolution textures, the rendering resolution, the size of levels, the amont of NPC’s (Non Playable Characters) dotted around the level or something else entirely, there’s always a pixel sacrifice going on in the name of the performance Gods.
Honestly though – it’s vital to remember that it’s not all just about the raw performance numbers which makes games look better. An example of this would be Anti-Aliasing. When it was first introduced it came at a huge cost in raw performance, and while it did make games look a hell of a lot better, frame rates would tank, even at low levels. Since then, there have been a number of improvements, Now, because of both software and hardware improvements FXAA and SMAA come practically free of cost. On the Geforce GTX 680 for example, FXAA while running Crysis 3 makes so little difference on the FPS of the game, that it’s within half a frame per second difference (in other words, the margin of error).
There are a number of other differences too – including API and general programming improvements. The latest version of Microsoft’s DirectX is DX11, the Xbox 360 however is running DX9. I won’t list all of the changes that have been made for DX11 (as I’d also need to list certain changes from DX10 too), but a few highlights of DX11 include:
Improved Multithreaded Performance:
DirectX10 offered a slew of Improvments over DZ9, but one of the most important was the reduction on the CPU workload. Previously, the CPU was required to perform many repetitive tasks, but with DX10 this involvement was significantly reduced. DX11 improved on this further. Direct3d previous to DX11 was written in such a way that it was focused upon a single core CPU, DX11 however fixes this limited multithread support. The API now can better drive the GPU (Graphics Processing Unit, such as say the GCN units on the Xbox 720 or PS4, or indeed a GPU in any modern gaming PC) from a multi-core CPU.
This is of special benefit to consoles like the Playstation 4 and XBox 720, which are using an 8 core AMD Jaguar APU. The cpu is only running at 1.6GHZ, but when combined with the various improvements that the system has for multi-threaded support we will see far greater interactivity between the GPU and CPU. Other improvements include the APU design as a whole, the large amount and speed of RAM, and overall efficient design of a console.
The First thing this does is provide improvements in synchronization between the Direct3D device object and the driver enable asynchronous API calls, including resource allocations. Direct3D 11 allows developers more freedom when expressing parallelism by allowing such calls to occur across multiple threads.
The Second benefit is the Direct3D device interface now supports multiple rendering contexts. 1) a primary immediate context which dictates the timeline for work submission to the GPU, and 2) optional deferred contexts created by the application developer as needed. Work associated with each deferred context can occur on a separate thread/core. This enables GPU commands to be accumulated in parallel to the main rendering work, and then sent to the GPU later when the main context is ready to submit a new task to the GPU.
New Hardware Stages For Tessellation
Tessellation is the act of breaking down a polygon into finer pieces. A very simple example would be if you were to imagine a square, and then you cut that square into two triangles (by cutting along a diagonal) you have tessellated the square. This combined with other techniques such as Displacement Mapping – which is a texture which carries height information. With DirectX 11, the two techniques can much better be blended together to create far better looking character models. Batman Arkham City was notorious for its delay on PC, but aside from hardware Physx, Rocksteady also added Hardware Tessellation (via DX11) too. Other titles such as Metro 2033 also use this technique.
There are numerous benefits to Hardware Tessellation, including smother characters, better looking and more naturally smooth characters, improved bump mapping and much more.
DirectX 11 improves this by binding an additional three stages (hull shader, tessellator, and domain shader) to the rendering pipeline. This gives a great deal of extra flexibility to the programability of hardware tessellation.
This programmable unit allows transforms on input data to be performed as it runs at the source control mesh frequency. When discussing applications of the pipeline, we often mention performing a basis change in this shader, from one surface representation to another-for example, from Catmull-Clark quad mesh to Bezier patch controls.
This fixed-function unit can be simply thought of as a data expander and as a place where the IHVs can safely parallelize with the user-provided algorithms. It takes tessellation factors as input and inserts vertices in surface U,V space according to the chosen partitioning scheme.
This unit executes once for every generated vertex, and as such is the place where surface formulations are evaluated. The inputs to this stage are provided in surface U,V domain ready for parametric surface evaluation.
The pipeline supports several input types (quad patch, triangle patch, or even poly-line), which allows developers to target almost any surface formulation. One usage scenario that has been strongly requested is support of sub-division surfaces for rendering characters.
Sub-Division Surface Approximation Schemes
Charles Loop and Scott Schaefer from Microsoft Research worked on a number of approaches for approximating sub-division surfaces that can be applied to the DirectX 11 pipeline. One of the approaches, provided as a DirectX 10 sample in the DirectX SDK, changes a quad patch basis mesh into Bezier surfaces of fixed tessellation. When applied to the DirectX 11 pipeline, this and other schemes can be used to deliver real-time rendering of sub-division surface meshes.
This is just the tip of the iceberg, there are other examples such as Shader Model 5, which with it brings a whole slew of its own improvements too Shader development is easier, and also includes (optional) support for double precision.
Much better clipping reduces the workload on the GPU, by quite simply reducing the amount that is drawn. We also have advantages of an APU design. I’ve spoken about this heavily in previous articles and videos, but the basic premise is that the data is constrained (for the most part) within the APU, due to the SoC (system on chip) design. This massively reduces wasted bandwidth, therefore more cycles and bandwidth can be spent performing tasks which are actually going to benefit us rather than being wasted.
The PS4 and XBox 720 are going to have a bright future, this is a mere small selection of some of the new technology that has been implemented into the consoles. This isn’t even taking into account the carious improvements on the Playstation 4’s own APIs and various improvements that Parallel computing will bring. With the GPU offering assistance to the CPU with performing certain tasks (such as AI, physics, post processing, video decoding and more) it means that you can get a far more efficient and neat system.
Does that mean that the Playstation 4 and Xbox 720 are incredible feats of engineering that should silence all before their power? No, at the end of the day they are still not going to beat a high spec gaming PC, but they are going to be capable of a lot more than just slightly improved graphics. We’ll be seeing huge leaps and bounds from massive open worlds.
I’ll create part 2 of this article soon.