• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

"DX12 did not reduce any CPU bottleneck, infact it created more bottelneck in games and decreased FPS compare to DX11" Vex

Panajev2001a

GAF's Pleasant Genius
Typical dumb youtuber take. DX12 gives developers more low level choice thus they also are given more responsibility to do their jobs well. That's pretty much the gist of it AFAIK.
Yes, which was my point. Console developers, including on Xbox where they had low level control, and people that wrote the DX11 drivers knew how hard being in control can be. We are now seeing devs that are struggling but also devs that are not.

We are in for surprises, I never expected people to praise Apple’s Metal API as one of the best middle ground approaches but I am seeing several devs coming out in favour of it so well color me shocked 😂.
 

Bojji

Member
Don't we all know that dx12 basically let devs do the optimization directly, but most game devs simply don't do any optimization at all?

That's the case. I know term "lazy devs" was used as a meme but many games show exactly that, they don't care. Lack of time or pure incompetence, same results.
 

kruis

Exposing the sinister cartel of retailers who allow companies to pay for advertising space.
Typical dumb youtuber take. DX12 gives developers more low level choice thus they also are given more responsibility to do their jobs well. That's pretty much the gist of it AFAIK.

When the PS3 launched most 3rd party games ran like shit and only the absolute best developers were able to create visually stunning games that properly utilized the power of the Cell CPU processor. Who was to blame here? Lazy developers who didn't put enough effort into learning the intricacies of the Cell processor or Sony for creating a console architecture that was too difficult to master?

I'd say it was Sony since that company did a 180% degrees by dropping the Cell processor and creating a next gen console that was much, much easier to work with for developers.

Well, DX12 has the same problems as the PS3. It puts more power in the hands of the right developers, but that additional power comes with additional complexity. Now 3D engine programmers are asked to write code that had previously been the domain of graphics driver programmers. No wonder DX12 has turned out to be a performance disappointment.

Let's find out what ChatGPT says about this subject:

In DirectX 11 (DX11) and earlier versions, a significant portion of the graphics functionality was handled by the graphics driver. The graphics driver played a crucial role in managing resources, handling memory, optimizing performance, and implementing certain high-level abstractions. With the introduction of DirectX 12 (DX12), Microsoft shifted towards a more low-level and explicit API design, giving developers greater control and responsibility over these aspects. Consequently, many tasks that were once managed by the graphics driver in DX11 games are now the responsibility of the game developer in DX12.
Here are some aspects that were traditionally handled by the graphics driver in DX11 but are now managed directly by the developer in DX12:
  1. Resource Management: In DX11, the graphics driver was responsible for managing GPU resources such as textures, buffers, and shaders. DX12, however, requires developers to explicitly manage these resources, including their creation, usage, and release.
  2. Pipeline State Management: In DX11, the graphics pipeline state, which includes shader programs, input layouts, and other settings, was managed by the driver. DX12 introduces Pipeline State Objects (PSOs), and developers must create and manage these objects themselves.
  3. Memory Management: DX11 allowed the graphics driver to handle memory management tasks, such as swapping textures in and out of video memory. DX12 requires developers to manage memory explicitly, including resource residency and data transfer between CPU and GPU memory.
  4. Thread Management: DX11 had a more automatic threading model, where the driver managed multithreading for the developer. DX12, being more explicit, requires developers to manage threading, including creating and managing command lists and managing parallel execution on multiple CPU cores.
  5. Command Buffer Submission: In DX11, the driver handled the creation and submission of command buffers to the GPU. DX12 shifts this responsibility to the developer, who must explicitly record commands into command lists and submit them for execution.
  6. Swap Chain Handling: DX11 automatically managed the swap chain for presenting rendered frames. In DX12, developers need to implement their own swap chain management, including presenting frames to the screen.
The transition from a more implicit and high-level API like DX11 to the explicit and low-level nature of DX12 allows developers greater control and optimization opportunities but also requires a deeper understanding of graphics programming concepts and a more hands-on approach to resource management and optimization. While DX12 can lead to more efficient and performance-optimized code, it comes with the trade-off of increased complexity for developers.
 

Cryio

Member
"DX12 did not reduce any CPU bottleneck, infact it created more bottelneck in games and decreased FPS compare to DX11" Vex
I have nothing against the dude and that's clearly a senzationist headline, but it's pure nonsense in the real world.

DX12 kinda did nothing to push geometry/draw calls to new hights, BUT IT DID allow better CPU usage so GPUs don't simply idle by like they often do in DX11. Not applicable to all games where DX12 is available, but to most of them anyway
 

Alexios

Cores, shaders and BIOS oh my!
DX12 in Dolphin got rid of shader stutters for me, for some reason with the same Ubershader settings and Vulcan instead it still stutters for me, it's weird, for the longest time I thought they just didn't work as advertised as their whole purpose was to eliminate that stuttering but they do, in DX12 🤷‍♂️
 
Last edited:

Clear

CliffyB's Cock Holster
Weirdest thing for me is the assumption gamers have that everyone making stuff is basically on the same level, and that new technology is going to be equally beneficial or detrimental to everyone using it.

It really doesn't work that way for anything else creative, so I don't know why people should look at making games like that! Some people adapt more readily to change, others are really adept at getting great results using traditional or even outdated techniques. Some are more focussed on performance than functionality and vice versa.

Technology is just a means to an end, its not the totality of the process.l
 
I have nothing against the dude and that's clearly a senzationist headline, but it's pure nonsense in the real world.

DX12 kinda did nothing to push geometry/draw calls to new hights, BUT IT DID allow better CPU usage so GPUs don't simply idle by like they often do in DX11. Not applicable to all games where DX12 is available, but to most of them anyway
To support his claim. This is a detail video. Frametime is better on DX11 than Dx12.

 
Weirdest thing for me is the assumption gamers have that everyone making stuff is basically on the same level, and that new technology is going to be equally beneficial or detrimental to everyone using it.

It really doesn't work that way for anything else creative, so I don't know why people should look at making games like that! Some people adapt more readily to change, others are really adept at getting great results using traditional or even outdated techniques. Some are more focussed on performance than functionality and vice versa.

Technology is just a means to an end, its not the totality of the process.l

True. You can use the exact paint and brushes Rembrandt had but that doesn't mean you can paint a Night watch...
 

violence

Member
DX12 is for the cream of the crop developers. I can only assume lower level API means bigger pain in the ass.
 

winjer

Gold Member
To support his claim. This is a detail video. Frametime is better on DX11 than Dx12.



Are you going to ignore the part where CPU utilization and frame rate are higher in DX12, on Borderlands 3 and Tomb Raider.
Also, these are some of the first games to support DX12. Deus EX is probably not using any new features and instructions from DX12, as it runs exactly the same as DX11.

Frame times are also lower on Borderlands 3 and Tomb Raider, simply because they have higher frame rate.
Borderlands 3 seem to have slightly higher frame time spikes, this could be due to improper memory management or shader compilation issues. Remember this game's DX12 mode was an early implementation in an old UE4 version.
 
My monkey brain finds DX11 has better framerates with no visual difference, so I just go with that.
IMO, the major benefit of DX12 should be reducing CPU requirements, more performance on GPU, better GPU utilization etc, but the only major difference in DX12 vs DX11 is Ray tracing, which 99% of PC gamer does not use this feature.

On Note
DX12 was not made for Ray tracing priority but it replaced AMD Mantel as low level API, which suppose to have far batter CPU draw Calls and less overhead.
 
Last edited:

winjer

Gold Member
IMO, the major benefit of DX12 should be reducing CPU requirements, more performance on GPU, better GPU utilization etc, but the only major difference in DX12 vs DX11 is Ray tracing, which 99% of PC gamer does not use this feature.

On Note
DX12 was not made for Ray tracing priority but it replace AMD Mantel as low level API, which suppose to have far batter CPU draw Calls and less overhead.

That is just wrong. DX12 is not a static API and several functions have been added. That's why we are currently at 12_2 version, also known as DX12 Ultimate.
DXR, is a whole new set of instructions that work inside DX12.

 

Hugare

Member
I dont know how to code, but from my limited understanding (and from what I've read online), I believe that DX 12 gave too much freedom to developers but they were very comfortable with Nvidia/AMD helping them with drivers

Suddenly, devs had to do it all by themselves and shit hit the fan. Only really talented ones can extract the good parts from DX 12
 
Top Bottom