Is DirectX 12 Worth the Trouble?

Megalith

24-bit/48kHz
Staff member
Joined
Aug 20, 2006
Messages
13,000
I am pretty sure that someone asked the same question recently, but here we go again. There are all sorts of amusing sessions taking place currently at GDC, and this one ponders whether anyone should waste their time with DirectX 12. All I got out of it is that developers shouldn’t be lazy and async compute is pretty darn great, but I’ll see what you guys have to say. Thanks to cageymaru for this one.

The developers revisit the question—is DirectX 12 worth it? Well, if you are willing to invest a lot of time into your DirectX 12 implementation, you could succeed, such as in case of "Rise of the Tomb Raider," in which users noticed "significant gains" with the new API. They also argue that it's possible to overcome CPU bottlenecks with or without DirectX 12, if that's relevant to your game or user-base. They also concede that Async Compute is the way forward, and if not console-rivaling performance gains, it can certainly benefit the PC. They're also happy to have gotten rid of AFR multi-GPU as governed by the graphics driver, which was unpredictable and had little control (remember those pesky 400 MB driver updates just to get multi-GPU support?).
 
NOPE.jpg
 
Aren't there growing pains with all new APIs? At some point the industry has to move forward, but that march of progress is more of a crawl sometimes.
 
IMO I treat this the same way I treat all development projects. One must evaluate the current state of the application to determine if its worth the upgrade. List pros/cons etc. But with new projects go with the latest stable release. Its stupid not to use DX12 if you're starting a project totally greenfield.
 
They quote Tomb Raider getting significant gains, but thats at the expense of image quality.
DX12 does not get the VXAO option which gives a very nice improvement.

I havent found a single use for DX12 yet.
 
  • Like
Reactions: ecktt
like this
I think this pattern of game developers using pre-built engines (whether they get them in company like EA with Frostbyte or license UE4 or Unity etc.) is going to essentially be the only way forward, which will both slow down progress of bleeding-edge engine graphics development while also raising production values as many more people will have deeper experience with comparatively fewer game engines.
 
Aren't there growing pains with all new APIs? At some point the industry has to move forward, but that march of progress is more of a crawl sometimes.

the original point of direct x (and opengl) was to simplify the job for the developer so they can put more of their focus on their game instead instead of worrying about which hardware it should or should not run. now DX12 try to bring the complexity back by giving more control to developer.
 
Well, AMD seems to be doing better with DX12... so i would say nVidia says NO! :D
 
What are you taking about multi GPU, every directx 12 game is have seen only supports 1 GPU. Feel like I wasted 600 bucks on a second 1080gtx. I think moving it over to the lazy or doesn't have time to support the few multi GPU delevepers screwed us people trying to run 4k at good frame rates.
 
Well, AMD seems to be doing better with DX12... so i would say nVidia says NO! :D
AMD are doing better than they themselves do in DX11 because they didnt optimise their hardware for DX11.
NVidia on the other hand still match or beat AMDs DX12 performance and excel with DX11.
So you are right, NVIDIA chose wisely.
 
This day and age, it makes no sense to support DX12, given that is only available on W10.

IMHO, developers should concentrate on Vulkan, given its multi platform nature.
 
"If you have to ask..."

I think Vulkan is what developers and the industry need to embrace since it's platform agnostic (not tied to one version of Windows like DX12). It's got all of the positives of DX12 with none of the negatives.
 
Last edited:
The negatives outweigh any positives in my experience with dx12. Rivatuner doesn't always play nice with it and games don't feel as fluid as dx11 mode. Not to mention random driver crashes that only appear in dx12 games.
 
Mostly no.

I like all the promises of the features but I'm not really seeing it.

Whether on my 970's or 1080's the best positive is when it doesn't lower frame rates and RIOTTR is still pretty buggy/crash happy for both.

At this point I'd just be happy with better textures in DX11.
 
Honestly, nice as it would be to see the industry as a whole move to Vulkan, previous experience shows that that's unlikely to happen.
 
the original point of direct x (and opengl) was to simplify the job for the developer so they can put more of their focus on their game instead instead of worrying about which hardware it should or should not run. now DX12 try to bring the complexity back by giving more control to developer.

Pretty much this. This is exactly why DX12 games have been so sub-optimized out of the box. I suspect the low-level features of the API will be quickly abandoned.
 
i have a short list of complaints about dx 12 and windows 10 isn't even one of them.

gpu vram stacking, not there.

mixing of gpus, still waiting.

multi gpu, a farce.

directx12 is great. like stubbing your toe on glass.
 
DX12 killing SLI/CF at the dawn fo 4K/5K is ridiculous at best.
It's not worth the trouble. DX11 is just fine. Bring on Vulkan or some other version of DX moving forward.
 
All these fucking developers whining and shit about the low-level APIs. I don't see id Software, The Coalition, Oxide/Stardock or Croteam complaining about jack shit. I have a friend who has been concerned about how most developers would take to the low-level APIs. He figured neither Vulkan nor Direct3D 12 was gonna come out on top, with developers too scared/too lazy/too intimidated to use either. These devs would think these lower-level APIs would not be worth the time and effort. I figured it was just the usual growing pains and learning curve when new APIs show up, but developers have been babied for so long by high-level APIs and GPU drivers handling shit (and have been focused primarily on console development for so long) that now they see DX12 and Vulkan and run away screaming and crying. So now I'm wondering if my friend might have been right. Well, at least I know CDPR will be up to the challenge whenever Cyberpunk 2077 finally rolls around. Like the guys at id Software said, the time for getting onboard the new APIs is NOW.

Its stupid not to use DX12 if you're starting a project totally greenfield.
Damn straight. You only get better with time and practice. From this point forward, only stick with one of the new lower-level APIs for all your projects, and eventually you will get a handle on dat shiznit. Croteam is gonna be Vulkan-only from here on out, even going so far as to take current Serious Engine 3 games and toss out DirectX, switching them over to Vulkan. The Coalition gave no fucks, they jumped right into the deep end of the pool by only supporting DX12 in Gears 4 (though of course Epic helped them out DX12 and how UE4's implementation of it). I'm pretty sure Doom 4 is gonna be the last time we see id Software use OpenGL. Probably gonna stick exclusively to Vulkan from now on (at least on the PC side).
 
Something about titles ending with question marks automatically meaning a resounding NO
 
How I remember it a few years ago it was developers saying "oh we need to get back to low level, closer to the metal, cut out the bloat! DX12 will do this!"

Then they get the APIs and its suddenly "Oh this is all too difficult!"

Too difficult or too lazy? Sorry guys but you might actually have to learn some new skills and code rather than just cutting and pasting the old stuff.

Man up!
 
the way to go would be more like engines supporting dx12/vulkan out of the box
and implementation is being handled by the engine dev's

giving game makers time to concentrate on games


like unity engine

In total, we’ve seen a rendering performance improvement out-of-the box up to 60% using Unity – that is without having to deal with any specifics of the Vulkan API

https://blogs.unity3d.com/2016/12/13/unity-5-6-beta-is-now-available/

as far as I can see modern API support is still an ongoing thing for UE

ehh

you know optimising a game/code can always be done, despite the API being used

and as far as day one patches show, is being neglected too much already
 
Is this really a concern? I mean as mentioned earlier already, the way it works for many developers is you go and pick up a solid engine (Unity, Unreal etc) and those engines should have DX12 - and Vulcan - support handled for them, all they have to do is test and optimize for the path when they're ready to look at it, right?
 
IMO I treat this the same way I treat all development projects. One must evaluate the current state of the application to determine if its worth the upgrade. List pros/cons etc. But with new projects go with the latest stable release. Its stupid not to use DX12 if you're starting a project totally greenfield.
It's not stupid if you, you know, want to sell your game and reach as many players as possible. Only about half of PC gamers are on Windows 10. That means you're shutting every other potential buyer out of the market. Those statistics may move a couple percentage points in a few years, but I wouldn't expect anything major until at least 2020. No company I know of wants to automatically shut out 50% of buyers for what are debatable gains. There's a REASON the only DX12 exclusive games are from companies published under Microsoft. It's only "stupid" if you don't care how many people buy or play your game.
 
I think Vulkan is more worth the trouble than DX12. Do you want to target damn near everybody or just Windows 10 ?

History has shown otherwise so far, with an inclination toward DirectX.

The same argument has been said about OpenGL, which is older than DX, yet DX games heavily outnumber OGL games.
 
History has shown otherwise so far, with an inclination toward DirectX.

The same argument has been said about OpenGL, which is older than DX, yet DX games heavily outnumber OGL games.

Oh don't get me wrong, i'm not saying that Vulkan or OpenGL are more popular but that there are good reasons to use them. Most DX 12 games I see benchmarked run better in DX11 while Vulkan seems to provide higher framerates over their OpenGL/DX versions in the few games that use it. Just adds to the reasons to pick Vulkan.
 
History has shown otherwise so far, with an inclination toward DirectX.

The same argument has been said about OpenGL, which is older than DX, yet DX games heavily outnumber OGL games.
The history between OpenGL and DirectX on Windows is a little bit more malicious than that on the part of Microsoft.
 
History has shown otherwise so far, with an inclination toward DirectX.

The same argument has been said about OpenGL, which is older than DX, yet DX games heavily outnumber OGL games.

But also DX went through a period of much more rapid adoption of new features at a time when OpenGL was mostly left to stagnate. OpenGL caught up eventually, but by that point everyone had built their games around DX.
At least with DX12/Vulkan, if there's little to choose between them in terms of capabilities, and few legacy advantages either way (maybe there are, I don't know), Vulkan seems like it would be a sensible choice. What would you stand to lose? As opposed to being tied to Microsoft's increasingly egregious W10 ecosystem with DX12.
 
History has shown otherwise so far, with an inclination toward DirectX.

The same argument has been said about OpenGL, which is older than DX, yet DX games heavily outnumber OGL games.
That's not the full story. History indeed serves a precedent, with DirectX 10. DirectX 9 was released to be compatible XP, 2000, and 9x when it came out. We had major studios releasing DX9-only titles a year later. DirectX 10 was released being tied to Vista at a time it had slow adoption and most people were on XP. Major studios basically NEVER required DirectX 10 and didn't require anything higher than 9 until about 6 years later, once market penetration on Vista / 7 was high enough to be worth dumping DX9 support.

So if history is any indicator, we'll continue having development focused on DX11 with some titles having a DX12 mode also, but almost nothing actually requiring DX12.
 
History has shown otherwise so far, with an inclination toward DirectX.

The same argument has been said about OpenGL, which is older than DX, yet DX games heavily outnumber OGL games.

Apples v Oranges though. OpenGL was reportedly a much bigger mess to code for while DX made a lot of things easier for devs; it was also a different, pre-mobile era where Microsoft still enjoyed positive mindshare and user trust -- at least more than they have now in this failed Metro tile era.

Vulkan however is on par with DX12, plus it works across Windows 7/8/10 as well as Linux and its the defacto graphics API for Android 7+. Unless its a Microsoft funded developer there's basically no good reason to design around DX12.

And now that Windows 10 has suffered yet another month of rejection as uptake not only stalled but decreased, while Windows 7 marketshare actually increased, DX12 focused development makes even less financial sense for any developer.
 
Last edited:
History has shown otherwise so far, with an inclination toward DirectX.

The same argument has been said about OpenGL, which is older than DX, yet DX games heavily outnumber OGL games.

I don't think the mobile market was the huge player in the digital market back then, so things are a little different right now imho.
 
Frankly, I think Vulkan is where its at. The two share technologies, but given the recent news of Bethseda opting to optimize all their games with Vulkan using Doom as a blueprint, I think Vulkan is going to become the dominant player.
 
Back
Top