For the past Five years, I've been very vocal and outspoken towards CPU inefficiency, commonly known as a CPU bottleneck. Back then, I could not convince a single soul that such a thing even existed. Every time I was told that something was wrong with my system. Five systems later, I still have the problem! Often, the CPU's usage will increase substantially, causing the GPU usage to reduce overall. FPS often suffers, mouse input becomes delayed and frame latency increases. Windows task manager reports high usage on all cores. Although this indicates a bottleneck, the actual usage cannot be displayed by task manager properly. What actually happens is that Core #0 runs at 99% usage, whilst the remaining cores show less usage. We are indeed quick to blame the Direct-X 11 API for it's short comings, but how does the AMD driver fair in all this?
Let us start with Direct-X 11 API. In short, it does have the ability to use multiple CPU cores for a more efficient workload:
Quote:
This API has introduced multi-threaded capabilities to the pipeline, whilst utilizing parallel loads:
Quote:
Direct-X 11 has the ability to use deferred context/command listing as it's main multi workload function:
Quote:
Nvidia explain the reasons why a developer would like to take advantage of deferred contexts within the API
Quote:
After this quick explanation of the API and some of it's core functions, let's look at AMD's side of the story. Again, to put things simply, deferred contexts and command lists are not mandatory. AMD have specifically chosen not to use it in their driver. The drawback is significantly higher CPU overhead is observed, which heavily chokes the GPU(s) in CPU intensive applications. However, the positives from this is that you get a simple and stable driver which can work with almost any newly released game without compatibility issues and the need for specific driver tweaks. It also gives consistent performance in most games across the board, even if that performance is relatively low. Hence why you can run pretty much any Indie game on an AMD card without a "not supported" error message. In contrast to Nvidia drivers, each game requires driver tweaks for that game to actually remain stable. This is a lot of work for the driver team, but at least you are getting the performance boosts from the multi rendering capabilities of Direct-X 11. I would not be surprised if AMD chose compatibility over performance to either reduce staff workload, or because the driver team don't have the ability to compile a fully stable driver which uses such features discussed.
AMD have shown promise in the past with their CPU overhead issues with "Sid Meier's Civilization Beyond Earth", whereby they worked closely with the developer to ensure the game used good API optimization methods for enhanced CPU performance. AMD also enabled command list support (such a rare moment) for this title which allowed proper usage on all threads.

Source
Here is more information on the Civ: Beyond Earth case in relation to AMD's driver and the API's capabilities:
Quote:
Will we see an improvement from AMD's DriectX-11 overhead, I think not as suggested here in an interview with AMD's Richard Huddy at Bit-tech:
Quote:
Source Two
Nvidia not too long back decided to fully support Direct-X 11's capabilities with their "wonder driver" which promised the following:

Source
It would seem Nvidia had fully enabled all the bells and whistles associated with the Direct-X 11 API, putting an end to CPU bottlenecks for most games with those running an Nvidia GPU. AMD still refuse to make such changes even now, in Q3 2015. Their main focus is clearly Direct-X 12, which does not help those who wish to play a game using Direct-X 11 as shown here:

Source
Clearly, the image above shows that AMD's driver had a maximum output of 1.1m draw calls despite the hardware being used at the time of testing. This has now been improved to around 1.3m depending on the hardware configuration.
To conclude, this is only a basic analysis of Direct-X and AMD's drivers. It is clear that AMD are not utilizing the full potential of Direct-X 11, causing CPU limitations for AMD customers. To reiterate, I spoke about all this 4-5 years ago, yet I was labelled as the crazy guy in the corner of the room who's making stuff up because he's out of his mind, and the bottleneck was nothing more than a problem with the system. instead, it turns out those involved just has a lack of understanding. hopefully with these findings, we can show people the true state of AMD GPU drivers and demand change once and for all. last but not least, i'd like to leave you with some Nvidia marketing benchmarks (which turned out to be completely true) to solidify the fact that AMD's driver performance is in a diabolical situation in comparison.
Source
UPDATE 24/02/2016: More evidence of AMD's DX11 single threaded performance issues. Look at the boost over DX11, and over the 980 Ti, in DX12.
New Ashes of the Singularity build benchmark results:




Quote:
Let us start with Direct-X 11 API. In short, it does have the ability to use multiple CPU cores for a more efficient workload:
Quote:
Source
This API has introduced multi-threaded capabilities to the pipeline, whilst utilizing parallel loads:
Quote:
Source
Direct-X 11 has the ability to use deferred context/command listing as it's main multi workload function:
Quote:
Source
Nvidia explain the reasons why a developer would like to take advantage of deferred contexts within the API
Quote:
Source
After this quick explanation of the API and some of it's core functions, let's look at AMD's side of the story. Again, to put things simply, deferred contexts and command lists are not mandatory. AMD have specifically chosen not to use it in their driver. The drawback is significantly higher CPU overhead is observed, which heavily chokes the GPU(s) in CPU intensive applications. However, the positives from this is that you get a simple and stable driver which can work with almost any newly released game without compatibility issues and the need for specific driver tweaks. It also gives consistent performance in most games across the board, even if that performance is relatively low. Hence why you can run pretty much any Indie game on an AMD card without a "not supported" error message. In contrast to Nvidia drivers, each game requires driver tweaks for that game to actually remain stable. This is a lot of work for the driver team, but at least you are getting the performance boosts from the multi rendering capabilities of Direct-X 11. I would not be surprised if AMD chose compatibility over performance to either reduce staff workload, or because the driver team don't have the ability to compile a fully stable driver which uses such features discussed.
AMD have shown promise in the past with their CPU overhead issues with "Sid Meier's Civilization Beyond Earth", whereby they worked closely with the developer to ensure the game used good API optimization methods for enhanced CPU performance. AMD also enabled command list support (such a rare moment) for this title which allowed proper usage on all threads.
Source
Here is more information on the Civ: Beyond Earth case in relation to AMD's driver and the API's capabilities:
Quote:
Quote:
Quote:
Quote:
Source
Will we see an improvement from AMD's DriectX-11 overhead, I think not as suggested here in an interview with AMD's Richard Huddy at Bit-tech:
Quote:
Source One
Source Two
Nvidia not too long back decided to fully support Direct-X 11's capabilities with their "wonder driver" which promised the following:
Source
It would seem Nvidia had fully enabled all the bells and whistles associated with the Direct-X 11 API, putting an end to CPU bottlenecks for most games with those running an Nvidia GPU. AMD still refuse to make such changes even now, in Q3 2015. Their main focus is clearly Direct-X 12, which does not help those who wish to play a game using Direct-X 11 as shown here:
Source
Clearly, the image above shows that AMD's driver had a maximum output of 1.1m draw calls despite the hardware being used at the time of testing. This has now been improved to around 1.3m depending on the hardware configuration.
To conclude, this is only a basic analysis of Direct-X and AMD's drivers. It is clear that AMD are not utilizing the full potential of Direct-X 11, causing CPU limitations for AMD customers. To reiterate, I spoke about all this 4-5 years ago, yet I was labelled as the crazy guy in the corner of the room who's making stuff up because he's out of his mind, and the bottleneck was nothing more than a problem with the system. instead, it turns out those involved just has a lack of understanding. hopefully with these findings, we can show people the true state of AMD GPU drivers and demand change once and for all. last but not least, i'd like to leave you with some Nvidia marketing benchmarks (which turned out to be completely true) to solidify the fact that AMD's driver performance is in a diabolical situation in comparison.
Source
UPDATE 24/02/2016: More evidence of AMD's DX11 single threaded performance issues. Look at the boost over DX11, and over the 980 Ti, in DX12.
New Ashes of the Singularity build benchmark results:
Quote: