Exclusive: The Nvidia and AMD DirectX 12 Editorial – Complete DX12 Graphic Card List with Specifications, Asynchronous Shaders and Hardware Features Explained
The Main Problem: DirectX 12 Hype
"DirectX 12 is a revolutionary API". This statement, and variations thereof, have been echoing throughout the tech world for the past year or so. WCCF included, everyone has hailed the upcoming API like the harbinger of a new age in gaming technology. And to a certain extent - it is true. There is however, a very big problem with this mindset. While any tech enthusiast, myself included, will attest to the fact that the DirectX 12 API makes for a very significant update, the general gaming world has been quietly taking away a very subtly different meaning from all this.
With hype at an all time high - even for hardware standards, it was only a matter of time before the over inflated bubble burst. There are amazing things that DirectX 12 can achieve, but magically adding power to a hardware configuration that it was not theoretically capable of in the first place, is not one of them. Confused? Let me elaborate.
Differentiating between Untapped Potential and Maximum Potential
The key difference between the hardware enthusiast and the general masses, is knowing what the words 'untapped potential' means. Contrary to what most gamers might believe, there are a very few cases in which a graphic card is being utilized completely, or at a true 100% capacity - especially in the high end spectrum. Usually, there are certain bottlenecks in place that stop that from happening, and usually, these exist in the software layer that acts as a bridge between the GPU and the end user software.
The point of DirectX 12 is to move towards an approach that has many names - 'low level', 'to the metal access', etc etc. This is basically the implementation where the bloated middle software layer (drivers) provides minimum interference, and the ability to control specific parts of the hardware directly is also handed over by the API. At the same time, more autonomy is given to the GPU. Traditionally, the graphic card is a slave of the processor and can only work as fast as the work provided by the CPU. With DX12, much of the load is lifted off of the CPU so the GPU can work towards its true potential.
So lets look at the following scenarios:
- A very high powered graphic card, paired with a low powered processor. DX12 API gains will be massive in nature, since not only will the processor be able to issue more workloads, the GPU will have more autonomy to work on them faster.
- A very powerful CPU with a low power graphic card. DX12 API gains will be negligible in nature, since the card already is operating at peak capacity and has more than it can chew.
In the first case, the untapped potential of the graphic card was enormous - and DirectX 12's low level API was able to unlock it to a very, very impressive extent. In the second case, the card was already operating at its maximum operational capacity and DX12 API did not make a lot of difference. Because of the consistent over-hyping, everyone now expects DirectX 12 to be nothing short of a miracle worker.
Differentiating between the DirectX 12 'Low Level' API and DirectX 12 'Hardware Features'
Now granted, the vast majority of the cases are going to have one bottleneck or the other; that DX12 successfully overcomes. This means that most of the users, be it AMD or Nvidia, are going to benefit from the DirectX 12 API in general. But this is where another problem starts. People see the "DirectX 12" tag on a GPU and will undoubtedly expect it to use and benefit from every single "feature" that DX12 unlocks.
As far as I can see, the average gamer fails to differentiate the API from the various hardware features that it can access on a particular card. The point of DirectX 12 API, is to provide low level access and GPU autonomy capabilities. This translates into more draw calls (among various other things), more flexibility to the developers and basically universal performance gains of any given extent.
What is not universal is the availability, use and advantage of a given hardware feature. For convenience's sake, lets call it DX12 hardware features. These consist of many, some of which are available to select vendors, some of which are limited to certain graphical generations and some which are redundant to a particular IHV. Before we go any further, a short overview on feature levels is in order.