Deus Ex: Mankind Divided DX12 Performance Review @ [H]

Brent_Justice

Moderator
Joined
Apr 17, 2000
Messages
17,755
Deus Ex: Mankind Divided DX12 Performance Review - Deus Ex: Mankind Divided has received official DX12 support in its retail release. We will take the newest AMD video cards and NVIDIA video cards and compare DX12 versus DX11 performance. We will also pit AMD versus NVIDIA in DX11 and DX12 and find out how they all compare in the latest version of this game.
 
Last edited:
The developers should have used Vulkan. That actually seems to help performance at least. DX12 just seems to be in poor state on many games at the moment.

Something to further add in regards to DX12, DX12 requires much closer attention to detail from developers. Working closer to the hardware can be beneficial, but with that ability comes responsibility. Less is relied upon NVIDIA and AMD to optimize, and now much more of the optimization relies solely on the developer to exploit the API to its greatest potential and squeeze as much as they can out of the hardware.

Not all GPUs are equal. Where a triangle might have worked on both AMD and NVIDIA GPUs in the past, on DX11. It is possible that with DX12 a circle is better to use on AMD and a square is better to use on NVIDIA, as a crude example. It requires more work from the developer to make it work right.
 
We also find, quite shocking, that DX11 is faster than DX12 here. It appears that turning on DX12 actually hurts performance. In this test DX11 is 15% faster, which with framerates as low as this is quite significant.

Really? That's pretty much the norm for DX12 on nvidia cards and vulkan for that matter.
 
Perfect review. Not quite sure what is different without some research, nevertheless I really liked the way this was presented.

I can't help but hearing some suit telling me that DX 12 was gonna be faster than DX 11.

This review has totally fleshed this out. Excellent job.
 
Right, typically you only see gains on DX12 if the developer is smarter than AMD's DX11 driver engineers, AND actually has the time to put in more effort than the AMD driver engineers. Some times you will, some times you won't.

DX12 is not the industry mover that Microsoft would like it to be, it's a "nice to have, but not necessary" tool for modern games. We'll see if that changes with a year of experience, but I'm not holding my breath.
 
Quite timely. I just downloaded this game after getting the promo code for the AMD processor I purchased. I'm using a bit of an older video card, the R9-285, and as it is a 2GB card, I can only do the "High" quality setting. I have only spent a few minutes of gameplay (was fighting a stomach bug the last couple of days), and selected DX12, my resolution (monitor native 1600x1200), and left all other settings at default. So far, the gameplay seems smooth, but I haven't been tracking the FPS.

Part of my understanding for DX12 is that, at least initially, it would be of bigger benefit to overall lower-end systems. It would be interesting to see if DX12 had any tangible benefits for people running APU's, Pentiums with low-end GPU's, AMD FX8xxx processors, etc., over DX11.
 
Hi Brent! Great article, but I was wondering what effect DX12 has on the CPU side of things? Could the game in DX12 offer a better experience for users with old CPUs? I understood that the reduction of CPU overhead was the big deal with DX12.
 
I don't understand why people are surprised by the results of DX12 being slower. It will take a few generations of AAA titles to get DX12 to mature, just like previous versions of DX11.

DX10 right out of the gate was shite.

As of now DX12 is snake oil and anyone who buys a CPU and/or GPU now based on a manufactures promise DX12 will make your $400 combo perform like a $1000 combo out of the box is naive.
 
nice article, as always!

Part of my understanding for DX12 is that, at least initially, it would be of bigger benefit to overall lower-end systems. It would be interesting to see if DX12 had any tangible benefits for people running APU's, Pentiums with low-end GPU's, AMD FX8xxx processors, etc., over DX11.
that's what I thought too and have experienced! ive seen great improvements with dx12 on my system. does anybody here have this game and an AMD cpu/apu/gpu that can compare for us? I would but I don't have it...
 
I don't understand why people are surprised by the results of DX12 being slower. It will take a few generations of AAA titles to get DX12 to mature, just like previous versions of DX11.

DX10 right out of the gate was shite.

As of now DX12 is snake oil and anyone who buys a CPU and/or GPU now based on a manufactures promise DX12 will make your $400 combo perform like a $1000 combo out of the box is naive.
I agree but will add that dx12 will make a $200 combo feel like a $400 combo. dx12 is geared towards squeezing more out of lower-end hardware. if you have a stupid-fast system you'll see no benefit or even a loss in performance. and one of the biggest improvement ive notice on my system is the load balancing on the cpu being much more even but slightly higher. there are no drastic spikes like under dx11 and the only dx12 game that ran worse for me was bf1, utter stutterfest!
 
hello, with me DX12 is always faster then DX11

i did some tests with the in-game benchmark, and DX12 was from 10%-30% faster for minimum and 10-20% for average fps, depending on the preset ("low" had the biggest vs "ultra" the lowest difference)

my system is:
- win10, [email protected], 16GB, SSD
- AMD 290 (16.11.3), stock (947/1250)

DX12 might be better on lower end system ... do you plan to test with a lower end CPU ?

also, i'm curious about the VRAM usage, it seems the game will use all available memory, but does it have effect on performance ?
(i doesn't seem to have, because otherwise the GTX 1060 6GB would suffer more, right ?)
are you planning to test for example an RX480 with 4GB and compare it to the 8GB version ?

thx for the review !
 
hello, with me DX12 is always faster then DX11

i did some tests with the in-game benchmark, and DX12 was from 10%-30% faster for minimum and 10-20% for average fps, depending on the preset ("low" had the biggest vs "ultra" the lowest difference)

my system is:
- win10, [email protected], 16GB, SSD
- AMD 290 (16.11.3), stock (947/1250)

DX12 might be better on lower end system ... do you plan to test with a lower end CPU ?

also, i'm curious about the VRAM usage, it seems the game will use all available memory, but does it have effect on performance ?
(i doesn't seem to have, because otherwise the GTX 1060 6GB would suffer more, right ?)
are you planning to test for example an RX480 with 4GB and compare it to the 8GB version ?

thx for the review !

Just goes to show how inaccurate in-game benchmarks can be. Your 290 is faster then a 470 and a 3570k @ 4.2 is no slouch. DX12 should be slower in most games.
 
Just goes to show how inaccurate in-game benchmarks can be. Your 290 is faster then a 470 and a 3570k @ 4.2 is no slouch. DX12 should be slower in most games.
yes, they can be inaccurate compared to real game scenarios, but the results i get seem to be very consistent:
i've done multiple runs for each preset (to average it) but the delta between runs is generally very low (mostly 0-3%)

when checking, quick and dirty, the CPU usage seems to be the same DX12 vs DX11
1x290 on low > DX12 +/- 90% CPU vs DX11 +/- 90% CPU
1x290 on ultra > DX12 +/- 50% CPU vs DX11 +/- 50% CPU
(for reference 2x290 on low > DX12 100% CPU)

testing with a lower end CPU might prove interesting, and when comparing, an i5 3570 @4.1 (instead of 4.2 apparently :D) might be significantly lower-end then an i7 6700 @4.7, IF the game uses more then 4 cores ...

as a side note, it might be that the build-in benchmark favors DX12, but that could also be found out :) ?
i know it's against [H] testing methodology (for which we are grateful) but there is no harm in testing the in-game benchmark for reference purposes ?
this way ppl that own the game, can know what to expect from the in-game benchmark compared to real gameplay ... it might be rubbish, or it might also prove to be somewhat relevant
if it's rubbish, than it's nice to know :) ... if it's ok, ppl could have a simple way to compare data, and relate to the real gameplay benchmarks provided by [H]
 
I also see higher performance in DX 12 over DX 11 on the Nano with an I7 6700K. Benchmark wise as well as game play wise. The 4GB of ram does not seem to be hampering the Nano at 1440p, at 4K forget it, it tanks HARD! As for the 1070 it definitely does better in DX 11 but the Nano in DX 12 is faster, not by much over the 1070 rig using DX 11. Remember the 1070 rig has a FX 9590 in it so that too can have an affect too. The in-game benchmark has so far been more restrictive or slower then any in-game play so far. Game and drivers probably just fills up the ram, testing a Titan X with 12GB of ram may show this but game may not absolutely need all the Vram it uses to play well. I play without motion blur and depth of field (motion blur was to create a sense of smoothness for 24fps film, if you have smooth FPS it is pointless to me and in itself will reduce fps). Depth of field makes me feel like I am near sighted and need a better prescription - stupid setting and is also a cost of fps, if eye tracking was done with a depth of field that would be different in my opinion and maybe worth while. So maybe some of the effects in this game is affecting DX 12 performance more then on DX 11? Unless isolated and tested this will not be known. Turning off all the special effects and testing one at a time comparing DX 12 and DX 11 to see percentage hit or difference between the two API's may isolate a problem area - could be AMD's hard shadows is not optimized for DX 12.

Slowing the cpu down with DX 11 and DX 12 to see which API handles a slower CPU better would have been interesting. Also turning off Intel's hyper threading to see if that is causing any kind of difference would also be interesting. Changing ram speed and compare the two API's.

DX 12 allows more access to the GPU, unless the developer does that level of optimizations DX 12 may have a long road ahead of it. I also think both Nvidia and AMD need to help the developer more on getting the most out of the the new APIs. Doom with Vulkan main success, especially with AMD was ID did that deep GPU level optimizations and it really paid off big time. Both my 1070 and especially the Nano runs much better with Vulkan.

Good review, interesting results which begs more questions now to be answered.
 
Really? That's pretty much the norm for DX12 on nvidia cards and vulkan for that matter.
Well, I think it is likely shocking for Brent from the standpoint that nothing has been done to tweak/fix this driver, or the fact that it "can't be" fixed, since August. As we have visited this title before. http://www.hardocp.com/article/2016/08/24/deus_ex_mankind_divided_performance_iq_preview/ Not like DX12 is a big secret with it.

That all said, when we make statements and have to rely on proof, rather than what some group of people on an internet message board said about running a benchmark. ;)
 
Something to further add in regards to DX12, DX12 requires much closer attention to detail from developers. Working closer to the hardware can be beneficial, but with that ability comes responsibility. Less is relied upon NVIDIA and AMD to optimize, and now much more of the optimization relies solely on the developer to exploit the API to its greatest potential and squeeze as much as they can out of the hardware.

Not all GPUs are equal. Where a triangle might have worked on both AMD and NVIDIA GPUs in the past, on DX11. It is possible that with DX12 a circle is better to use on AMD and a square is better to use on NVIDIA, as a crude example. It requires more work from the developer to make it work right.


I think this is it. Devs under schedules are used to cutting corners and half assing it. You can tell a half-baked implementation of DX12 to one done right, because the bad implementations look like this.

Basically, it looks like they just tried to slap it on for marketing purposes.
 
I think this is it. Devs under schedules are used to cutting corners and half assing it. You can tell a half-baked implementation of DX12 to one done right, because the bad implementations look like this.

Basically, it looks like they just tried to slap it on for marketing purposes.
I don't think most developers are slapping it on, it is new and programming more for the hardware to me is like assembly language which you have to get to know the hardware better to optimize it over a compiled language where the optimizations come from the compiler which are more generic then very specific. Best case so far for a lower level ability API has been Doom and Vulkan which did show a pretty big enhancement when done. The second part is that AMD, Nvidia and Intel will need better tools/information to give to the developers so to make it much easier for them. Now with Nvidia I think that will come with DX 12 GameWorks and Nvidia I see are active as well in DX 12 developement
https://developer.nvidia.com/dx12-dos-donts-updated

The problem with DX 12 uptake now is that it is only on Windows 10, if it was on Windows 11 as well I would think many more developers would take the dive and just use DX 12 but that is not the case.
 
What about running on a Fury based card. They seems to be the most starved in DX11.
 
Vulkan in Doom is really good so hopefully all is not lost. If more developers used it we'd see if these problems are due to DX12 or lower-level APIs in general.
 
Well the questions I would pose would be:
If slowing down the cpu, which API does better and at what point?
To be succinct, I will not be spending resources to answer that question or the others. Slow CPUs are not an enthusiast problem for years. I get the academic standpoint however, but I am not going to spend money to answer that.
 
feeling a little insecure as an official n00bie on the [H]forum, but being a fellow Silverstone Raven user (RV02-E), i gather my strength and would like to address "MasterChef Editor Mr. Kyle" and "Video Card Managing Editor Mr. Brent":

since DX12 mGPU has been officially integrated in the last patch for AMD as well as NVIDIA (just a couple of days ago), are you considering doing a follow-up comparing DX11 crossfire/SLI vs DX12 mGPU ?
 
Great review. I like how the comparisons were organized, charted, and cross-related to one another. Kudos.
 
I agree that slow CPUs are not an enthusiast problem.

However, one of the popular class of CPUs among enthusiasts are the upper end i5s and 4 core i7s due to their value for money proposition. With DX12, we might have a case where sometimes, more cores may benefit more than pure clockspeed.

Perhaps we could get more CPU comparisons in DX12 benchmarks?
Kyle did do some extensive cpu testing with DX 12 and DX 11 here
http://www.hardocp.com/article/2016..._4770k_5960x_framerate_scaling/4#.WDDx9bIrKUk

Looks like this game, DX 12 does not give anything significant over DX 11. Now I will have to recheck my results since for me DX 12 gave some benefits on an I7/Nano rig. At least on the benchmark included in the game. HardOCP is not seeing that at all, is it due to the differences in the setups, updates, drivers, how tested (HardOCP testing/data is much more realistic than any canned benchmark ) ? After awhile one would be chasing their tails around in a circle. Probably time to move on to other games while this one does seem to be good to test cards with using DX 11.
 
I agree that slow CPUs are not an enthusiast problem.

However, one of the popular class of CPUs among enthusiasts are the upper end i5s and 4 core i7s due to their value for money proposition. With DX12, we might have a case where sometimes, more cores may benefit more than pure clockspeed.

Perhaps we could get more CPU comparisons in DX12 benchmarks?


while i see where you're going with this, the amount of time trying to find the threshold where eventually 1 API outperforms the other is just a witch hunt and not worth the time. yeah i'm sure you'll eventually find a specific combination where dx12 finally outperforms dx11 but ultimitelythe performance at the high end should be identical within the error limit which it's not for there to be a curve in performance where a low end system performs better using dx12 over dx11. you're not seeing that so the likely hood of a commonly use combination of hardware having that effect is unlikely. the performance difference is within the engine code, not the hardware.


Kyle did do some extensive cpu testing with DX 12 and DX 11 here
http://www.hardocp.com/article/2016..._4770k_5960x_framerate_scaling/4#.WDDx9bIrKUk

Looks like this game DX 12 does not give anything significant over DX 11. Now I will have to recheck my results since for me DX 12 gave some benefits on an I7/Nano rig. At least on the benchmark included in the game. HardOCP is not seeing that at all, is it due to the differences in the setups, updates, drivers? After awhile one would be chasing their tails around in a circle. Probably time to move on to other games while this one does seem to be good to test cards with using DX 11.

the benchmark tool in game has shown everyone's performance being better in dx12 over dx11 but thats not actually translating to real game play performance difference. hence why they're called canned benchmarks for a reason, lol.
 
while i see where you're going with this, the amount of time trying to find the threshold where eventually 1 API outperforms the other is just a witch hunt and not worth the time. yeah i'm sure you'll eventually find a specific combination where dx12 finally outperforms dx11 but ultimitelythe performance at the high end should be identical within the error limit which it's not for there to be a curve in performance where a low end system performs better using dx12 over dx11. you're not seeing that so the likely hood of a commonly use combination of hardware having that effect is unlikely. the performance difference is within the engine code, not the hardware.




the benchmark tool in game has shown everyone's performance being better in dx12 over dx11 but thats not actually translating to real game play performance difference. hence why they're called canned benchmarks for a reason, lol.
Probably so, once again the canned benchmark can mislead. Agree contorting to find where DX 12 is better would be missing the point. The game just plays better with DX 11. I would like to know more the reasons or the why and if future games with DX 12 will be better performing because of it. So far DX 12 has just been a let down in general. Plus we can do our own testing and give results/feedback here for others interested in verifying in this game anyways.
 
As I pointed out multiple times:

Using low level APIs against multiple pieces of hardware NEVER results in an optimal experience. It's impossible to optimize for everything. And what we're seeing is NVIDIA and AMD are a lot smarter with resource allocation then developers are.

The move to low level APIs was a mistake, and I fully expect developers will eventually stop trying to do everything themselves, and move back to the DX11 way of dong things [albiet through the DX12 API].
 
I agree that slow CPUs are not an enthusiast problem.

However, one of the popular class of CPUs among enthusiasts are the upper end i5s and 4 core i7s due to their value for money proposition. With DX12, we might have a case where sometimes, more cores may benefit more than pure clockspeed.

Perhaps we could get more CPU comparisons in DX12 benchmarks?

Replying specifically for this:

CPUs are only a bottleneck if a single individual core is overloaded. As long as no core is bottlenecked, there is no negative impact on performance versus using more threads. And all using more threads does is reduce the chance of a single core being overloaded.

While the main rendering thread in DX11 is computationally large, every modern CPU out there is capable of running it on a single CPU core without bottlenecking. Therefore, as long as no other application in the background is competing for CPU time, no game is going to be CPU bottlenecked. [Note: Performance loss due to low per-core performance will still exist in either case; see FX for reference].

Where DX12, or more specifically, the breakup of the main rendering thread into smaller threads, will help is in the case where you have other applications running in the background, in which case the odds of a core being overloaded increase significantly. But as far as running a game and NOTHING else in the background, there's almost always zero benefit to DX12's approach, and if developers have sub-optimal resource allocation for a specific GPU architecture, a loss of performance is both possible and expected.
 
As I pointed out multiple times:

Using low level APIs against multiple pieces of hardware NEVER results in an optimal experience. It's impossible to optimize for everything. And what we're seeing is NVIDIA and AMD are a lot smarter with resource allocation then developers are.

The move to low level APIs was a mistake, and I fully expect developers will eventually stop trying to do everything themselves, and move back to the DX11 way of dong things [albiet through the DX12 API].
That is what many developers wanted - more hardware level access. Since you can do way more draw calls, compute operations etc. with DX 12 it will take time before developers can exhaust future capabilities of the API. Plus I would think costs to develop for more complex games would sky rocket with it. The issue maybe more of a hardware level to process multiple threads efficiently as in if the majority of the GPU's in PC's will tank when you through multiple threads at them - meaning you have a big issue in using the API like how it was meant to be used. Look how Nvidia tanked with Dues Ex while AMD not so much. I am sure Eidos is asking the question - How much more time should we waste with DX 12 in this title when most of the graphics cards out there tank with it?

Also if you can do the full load on one core of a cpu vice several, it would be more efficient in that case since you would have better hits on the cpu caches, less memory stalls from the main memory where you have less cores fetching and writing at the same time (less contention). Once you go above one core limits or a weak cpu ability DX 11 can fall apart. I just think it is way too early to judge DX 12 yet.
 
Calling DX12 a 'lame duck' is a bit much. "Other than benchmarking software"...uh..games like Forza Horizon 3 and Gears of War 4 were built from the ground up with DX12 and perform phenomenally and look extremely great. Where are those evaluations and why haven't we seen [H] articles on them? I'm disappointed in this article's blanket conclusion on the API to be honest.

The problem here may simply be half-baked implementation after the fact. DX12 appears to perform worse when it's patched in but looks to perform wonders when the game is built from the ground up with it. Considering we have no DX11 to compare performance with Forza and Gears, well, we may never really know but the fact of the matter is that both of these games look more than next-gen and run silky smooth on even a 1070.

I suspect that DX11 coders that are translating their code to DX12 in these types of instances aren't doing so in the most efficient way possible. They may very well be adding a lot of overhead with existing, non-Direct X, related code which could easily explain why patched in DX12 is worse than their out-of-the-box DX11.

An API on it's own isn't magic. It requires people that know how to use it well to really have an impact. I took a game programming class once and I was blown away at how much code I used to write simple applications when others used much more efficient code to do the same thing. You can't label the API a bust just because existing devs aren't good with it.
 
Last edited:
Really? That's pretty much the norm for DX12 on nvidia cards and vulkan for that matter.

Well, not really.
I remember how AMD was referring to Ashes of Singularity as a shine example of how much better DX12 API works for their GPUs.
But if you look now, at the present time & after driver update, Ashes of Singularity works equal with NV and AMD ( http://www.bit-tech.net/hardware/graphics/2016/09/16/gigabyte-gtx-1060-g1-gaming-review/3 / http://www.anandtech.com/show/10540/the-geforce-gtx-1060-founders-edition-asus-strix-review/7 ).
RX480 and GTX1060 are completely equal in performance.
The same goes for another DX12 title: TotalWar: Warhammer ( https://www.techpowerup.com/reviews/Gigabyte/GTX_1060_Xtreme_Gaming/23.html / http://www.bit-tech.net/hardware/graphics/2016/11/18/asus-radeon-rx-480-strix-oc-8gb-review/8 )
So my estimation for DeusEx is that NV is having so severe performance drop because of the way this game was developed and not purely because of the use of DX12 API .
 
More DX12 failure, what a surprise. Its an API not designed for the PC.
 
I think "can't be fixed" is it. NvIdia put all their chips in the DX11 basket. They have by far the best cards with DX11. But when it comes to DX12, AMD has open source for devs to access their cards, and NVidia charges. Not to mention that much of the DX12 and Vulkan Tech came from Mantle.

So really, AMD laid groundwork to outmaneuver Nvidia even with lesser engineering on their cards. And depending on how well a development team implements DX12 or Vulkan (since in both cases, optimization is now on them and not on the driver team), you either end up with AMD getting big performance gains or neither do, for the more poorly optimized.

I'd wager you won't see NVidia catch up on DX12 until Volta at the earliest, and even then, only if it wasn't far enough along that they could afford to go back and revisit the engineering without taking a substantial cash and R&D time hit. That said, Vega will NEED to take it to Nvidia's top end AND hold the overall DX12 and Vulkan performance increase margins in games that have those well-implemented; else if Vega is another Polaris-level "meh", that should open the door to Nvidia to put their foot right back on the throat of AMD's graphics card division, as it will give them time to launch Volta and then get a step ahead.

Funny how there's opportunity right now, and it all rides on Zen and Vega for AMD. They need both to succeed in a major way.

Nvidia beat AMD in DX12 in a Gaming Evolved title, Civ6.

All the PR BS about AMD being better at DX12 is simply PR BS. In reality it pretty much ends up as it always does.
 
Quad SLI not officially supported / quad crossfire - burn the house down due to the heat :p
 
More DX12 failure, what a surprise. Its an API not designed for the PC.
In two years when graphics cards are 2-3 times more powerful, games have 100-200gb downloads with draw calls 3x -5x more then today - please keep using DX 11.
 
In two years when graphics cards are 2-3 times more powerful, games have 100-200gb downloads with draw calls 3x -5x more then today - please keep using DX 11.

That story have been said multiple times before in the history. We never needed a low level console API for that reason.

In 2-3 years we may have DX13 instead as well.

DX11 beats DX12. Just as DX9 did with DX10.

But it shouldn't be a surprise, everything in the PC industry tells you low level isn't the answer to anything. Same reason why pretty much no DX12 game runs on the most feature advanced GPU, the gen 9/9.5 IGP ;)
 
Last edited:
That story have been said multiple times before in the history. We never needed a low level console API for that reason.

In 2-3 years we may have DX13 instead as well.

DX11 beats DX12. Just as DX9 did with DX10.

But it shouldn't be a surprise, everything in the PC industry tells you low level isn't the answer to anything. Same reason why pretty much no DX12 game runs on the most feature advanced GPU, the gen 9/9.5 IGP ;)
Not quite. It isn't all about the LOW LEVEL API. You wish it was so your asinine comments would have merit but well... they don't.

DX12 adds the ability for more than one core of the CPU to talk to the GPU at any given time. This is the biggest performance gain that can be brought as it is the next logical step after the single core gaming we have dealt with for years/decades. It doesn't require a great deal of low level programming but does require knowledge of the hardware's functions and ability to handle multiple core communications.
 
DX12 adds the ability for more than one core of the CPU to talk to the GPU at any given time.
And what? Btw, Dx11 allows 2 threads submitting draw calls, last time i checked.
This is the biggest performance gain that can be brought as it is the next logical step after the single core gaming we have dealt with for years/decades.
Newsflash guys: Frostbite is apparently single threaded engine.
It doesn't require a great deal of low level programming but does require knowledge of the hardware's functions and ability to handle multiple core communications.
Yep, and that makes it bad, just saying.
 
Back
Top