The State of DirectX 12 Games in 2017: Is DX12 Losing Its Steam?

Megalith

24-bit/48kHz
Staff member
Joined
Aug 20, 2006
Messages
13,000
In their latest analysis of DirectX 12, DSO Gaming notes that only five DX12 games were released this year, a 50% reduction from 2016 (11). Some developers have simply ignored the DX12 API, even though they’ve been experimenting with it. Out of all the DX12 games, only Sniper Elite 4 performed better than its DX11 version on AMD’s hardware.

Things are not looking good for DX12, as most triple-A developers are not supporting it. Tiago Rodrigues, 3D programmer at Ubisoft Montreal, says most developers probably won’t be satisfied with DX12 if they only care about raw performance. Rodrigues also claimed that it takes a lot of effort to get a DX12 game up and running as fast as its DX11 counterpart. And while DX12 was hyped as the next big API, it may end up as one of the biggest API failures!
 
I think a problem is that people are taking engines that were designed to work with the older way of doing things and slapping on dx12 and vulkan when they probably need to be designed from the ground up as from the start -- and on top of that it's really hard to develop for the new api's as you are in charge of a lot of BS that you don't really care about (eg: managing memory)
 
I think a problem is that people are taking engines that were designed to work with the older way of doing things and slapping on dx12 and vulkan when they probably need to be designed from the ground up as from the start -- and on top of that it's really hard to develop for the new api's as you are in charge of a lot of BS that you don't really care about (eg: managing memory)
and yet more of that ground up is being done with Vulkan and not DX12. isn't vulkan younger as well.
 
Well, DirectX 12 was Microsoft's attempt to cop AMD's Mantle, which developed into Vulkan, while restricting it to Windows 10 in order to entice people to install and use Windows 10. Since Vulkan is available on Windows XP, Vista, 7, 8(.1), 10, Linux, Android... it tends to be more attractive for developers to use, instead of DirectX 12.

Before Vulkan, there was talk from Microsoft about DirectX 11 possibly being the final version of DirectX: http://www.i-programmer.info/news/1...404-microsoft-phases-out-xna-and-directx.html

But when AMD said they don't think there will be any more DirectX versions, and then presented Mantle, it seems to have sparked a competitive reaction from Microsoft in the form of DirectX 12: http://www.i-programmer.info/news/144-graphics-and-games/5744-amd-no-directx-12.html


I'm a bit surprised that people still talk about DirectX 12, as if it's something important to have support for. People should instead be asking whether a game supports async-compute, or if just a particular API, then Vulkan. I guess that's the effect of buzz-word-like marketing - people wanting to know whether a game has the buzz-term in it, rather than the technology.
 
with Nvidia dominating the market since 2016, independent developers had little reason to code their game to DX12 anyways since DX 11 runs better on Nvidia hardware
 
MS really screwed up making DX12 windows 10 only. It would of had more traction if it was usable with 7 and 8. It is really limiting the market for developers with it just being windows 10 only. All games that use DX12 made by MS run really well and look great. Like GoW4 ad Froza 7.
 
MS really screwed up making DX12 windows 10 only. It would of had more traction if it was usable with 7 and 8. It is really limiting the market for developers with it just being windows 10 only. All games that use DX12 made by MS run really well and look great. Like GoW4 ad Froza 7.

Yep. Essentially Microsoft limited it to Win10 to make it a value-add feature to entice people to upgrade. That only works if the developers see the userbase necessary to program for it. Instead, they find themselves losing ground because developers will always choose the easier (less costly) path.
 
In regards to the article, Tom Clancy's The Division is another game that does benefit from DX12, its DX12 performance is faster than its DX11 performance, so besides Sniper Elite 4, The Division uses DX12 to an advantage as well. Those two games, I have found, to be better under DX12.
 
In regards to the article, Tom Clancy's The Division is another game that does benefit from DX12, its DX12 performance is faster than its DX11 performance, so besides Sniper Elite 4, The Division uses DX12 to an advantage as well. Those two games, I have found, to be better under DX12.

The fact one has to scrape bottom of barrel to find a couple exceptions pretty much answers the thread question. If we need any low level API then it's Vulkan since it doesn't discriminate OS choice or even OS version along arbitrary corporate marketing lines and agenda.

DX11 will be the last D3D any developer cares about. As long as MS insists on keeping 10 spyware laden with no telemetry opt out, no control over updates, and lack of compelling new features, resistance to 10 will remain strong. And by extension resistance to DX12 will remain strong among publishers and developers that want to avoid fiscal suicide by excluding Windows 7 customers.
 
Last edited:
The problem that I have is that you can create much better visual aesthetics with DX12 than with DX11, even if you take a performance hit. And the same is true with Vulkan. I just want one of those used, rather than sticking with DX9-11. With the older DXs, you can have tons of stuff on the screen, but they're just batches.
 
Wait you have to optimize your games and do more work to get it to run better. No shit developers aren't going to use it, most developers don't even make their own engines anymore they do jack shit when it comes to optimization on PC so why would they use something that could give them better performance if they put in the work vs something that gives consistent performance with little work. Despite a few developers who think themselves fancy nobody was actually calling for closer to metal api for pc games.
 
Hopefully we'll see less of the "buy this brand because even though it's slower now it'll magically be better in a few years because of mantle/DX12/Vulkan/async compute" and more of "buy this card as it's the best performing card in your price range in the games you play".

Who am I kidding. There'll just be a new 'fairy dust of the month' that people will use to muddy the waters instead.
 
Remember when DICE told us that game developers are dying to have a low-level API?

Pepe Farm Remembers.
Remember when they said Frostbite was too hard for the average modder to use and therefore no tools would ever be released then a few months later a team that was partially in charge of making a casual mobile game came out of with a frostbite engine 3rd person team shooter under the same franchise that used frostbite and then we got another half dozen games that were all essentially just mod packs of the previous titles?
 
Any videos or links where I can watch, read about that difference?

Mostly in their documentation.

Also, from a few blogs like:

https://community.amd.com/community/gaming/blog/2015/05/12/major-new-features-of-directx-12
https://www.geforce.com/whats-new/articles/geforce-gtx-is-game-ready-for-windows-10-and-directx-12
http://www.dsogaming.com/news/dx12-...00-performance-increase-achieved-on-amd-gpus/


Remember, just because you can do something doesn't mean you will do it.

As others have already stated, it requires a new mindset towards how you develop games, and most people just use preexisting engines. For example, draw calls. Let's say you have a forest of 100k trees. With DX12, you could potentially render each tree individually. With DX11, you'd batch render 1 tree 100k times. That actually will be faster, but you'll have less variation. When it comes to things like grass and trees, and other objects that are common in vast amounts, nobody really cares about minute differences.
 
Directx 11 and lower made it easy to target pc. The API handled a lot of stuff.

If I’m going to use a low level API and take the time properly utilizing it, why would I not choose the API (Vulcan) that allows me to much more easily port to competing systems and platforms?

The “easiness” of directX seemed like its best feature to me.
 
Why use DX12, when Vulkan can get you on so many more platforms? Just look at DOOM.

Hell, it's even native for Linux.
 
dx12 was nothing but a ploy to get people to move over to windows 10.

tricking people is terrible.

DX10 was a Vista exclusive and even that had a very slow adoption rate in terms of actual games...more developers used DX9 for a long time instead of DX10...DX11 brought things back to normal as it wasn't exclusive to any OS
 
and yet their games also performing much worse on DX12 than DX11.

Because as I noted back when all this was first proposed, low level APIs really don't work in the PC market. You can get away with it when you have exactly ONE hardware spec to work against, but when you have literally hundreds of thousands of different possible configurations you need to support, there's simply no way to use a low level API that is high performance across the entire spectrum of configurations.

In addition, there's a lot of scheduling issues that start to crop up once you move beyond a single thread for the GPU driver. I've noticed a couple of titles where the GPU worker threads actually stall out the main application from time to time, which KILLS performance. Developers need to remember they have ZERO control of thread scheduling on PCs.

DX12 has gone as well as I expected it to.

Why use DX12, when Vulkan can get you on so many more platforms? Just look at DOOM.

Hell, it's even native for Linux.

Several reasons, same as why you use DX over OpenGL.

The first reason is performance: Because DX is tightly integrated with the Windows OS, it doesn't have the same amount of abstraction that eats away performance.

Second (and probably more importantly): DX has best in class development tools, by a mile. Just like OpenGL, development tools for Vulkan suck because no one wants to bother making them. Same concept as why everyone does initial development in MSVC, and only uses GCC when they have to.

No kidding right, heres a new DX revision... what does it do? Oh just basically tessellation.

The problem is there really isn't any new graphical effects you can do on modern GPU architectures that won't tank performance. That's why pretty much everything post DX9 have been new AA modes, shaders, performance enhancements of the API, and programmability. In terms of "graphics", there really isn't anything left until we get GPUs powerful enough for real-time Ray Tracing.
 
MS really screwed up making DX12 windows 10 only. It would of had more traction if it was usable with 7 and 8. It is really limiting the market for developers with it just being windows 10 only. All games that use DX12 made by MS run really well and look great. Like GoW4 ad Froza 7.
They didn't screw up because they never cared if people adopted it or not. Their goal was to push Windows 10 and Xbox. DX12 was just a carrot to try and dangle in front of PC gamers, like DX10 was for Vista.
 
In regards to the article, Tom Clancy's The Division is another game that does benefit from DX12, its DX12 performance is faster than its DX11 performance, so besides Sniper Elite 4, The Division uses DX12 to an advantage as well. Those two games, I have found, to be better under DX12.
The Division is not a 2017 game. The article talks about games released this year.
 
Low level APIs just isn´t doable in reality on a mixed platform.

And the results have been disappointing as well.

Think about spending months and months on extra development and more bugs to fix for no benefit. And then we dont have to talk about cost and increased skill level for the workers. And all this brings 0$ back.
 
Preface: I worked for various game developers for over 25 years before retiring from it. So my perspective is not that from a player, but from the inside looking out.

There is a lot of information in this thread and some of it is right, some of it is close, some of it is in left field.

Dismissing a myth: You can make a game look as good in DX9, as it would in DX11 or even DX12. It just takes more effort and code to do so. There is nothing stopping any developer from augmenting the DirectX 3D graphics API. I have seen some pretty impressive lighting engines done under DX9. HDR, shadows w/accurate umbra, penumbra, and antumbra, rudimentary ray tracing and so on.

On DX12. The last developer I worked for had a meeting when we heard about DX12. It was decided to wait until a level of acceptance was reached before a final decision was made. In the meantime, we got our hands on Windows 10 and summarily decided Windows 10 was not a good gaming platform. Thus we had no reason to consider DX12. Then the split in the marketplace between Windows 7 and Windows 10 (forget 8 or 8.1) made us feel like we made the correct decision in sticking with DX11.

The only way I see a developer doing a DX12 game would be if the developer has no business acumen at all, or Microsoft paid them a lot of money to do an exclusive DX12 version of the game. Now, I am talking about PC games. Console games are another story.

All the developers I worked with did the same thing. They stuck with DX9, through Vista, then slowly migrated to DX11 and stayed there.

I do not mean for this to sound like the "final word". It is just a perspective based on the information I have been privvy to over the years.
 
Last edited:
Preface: I worked for various game developers for over 25 years before retiring from it. So my perspective is not that from a player, but from the inside looking out.

There is a lot of information in this thread and some of it is right, some of it is close, some of it is in left field.

Dimissing a myth: You can make a game look as good in DX9, as it would in DX11 or even DX12. It just takes more effort and code to do so. There is nothing stopping any developer from augmenting the DirectX 3D graphics API. I have seen some pretty impressive lighting engines done under DX9. HDR, shadows w/accurate umbra, penumbra, and antumbra, rudimentary ray tracing and so on.

On DX12. The last developer I worked for had a meeting when we heard about DX12. It was decided to wait until a level of acceptance was reached before a final decision was made. In the meantime, we got our hands on Windows 10 and summarily decided Windows 10 was not a good gaming platform. Thus we had no reason to consider DX12. Then the split in the marketplace between Windows 7 and Windows 10 (forget 8 or 8.1) made us feel like we made the correct decision in sticking with DX11.

The only way I see a developer doing a DX12 game would be if the developer has no business acumen at all, or Microsoft paid them a lot of money to do an exclusive DX12 version of the game.

All the developers I worked with did the same thing. They stuck with DX9, through Vista, then slowly migrated to DX11 and stayed there.

I do not mean for this to sound like the "final word". It is just a perspective based on the information I have been privvy to over the years.
Really though, most companies...and by extension developers stick with what they know until they are forced to do otherwise, or until it's more convenient to learn/use the new stuff.

Hell most companies are usually a version behind 90% of the time anyways.
 
Back
Top