One of the main features for gaming on Windows 10 is the DirectX 12 API, which some developers use to create titles that Microsoft says has better performance and stability. However, the finished product isn’t perfect, and it’s still susceptible to numerous error and crashes. In order to better understand the actual causes of these game-breaking issues, Microsoft released two new tools for DirectX 12 developers.
The new commands center around the CPU and "device removed" or "device lost" errors, which affect a GPU when a driver update is installed during gameplay or if there are errors in the game’s programming code. Before the launch of the Fall Creators Update, an app couldn’t get access to the system resource memory, which is crucial when one of the aforementioned errors occur. Now, a developer can add the “OpenExistingHeapFromAddress” command to their game; it gathers information from the resource memory that can be used to determine the source of the device error.
Sometimes the problem might not be in the GPU, but in the information sent to the card from the CPU. Microsoft added a “WriteBufferImmediate” method that records the commands executed and in progress from the CPU. If a crash occurs, developers can use the script to look at the CPU’s activity during that time and determine which command was active during the error.
Other additions to the Fall Creators update include bugfixes and a monthly update to PIX, the company’s graphics software used for debugging.
With better diagnostic methods, developers have a clearer view of the problems plaguing their games, which results in better patches in future updates. Depending on the nature of the crash, a fix could take a few hours or days, but at least there’s more information available to help developers create a suitable solution.
I have been impressed with the smooth performance of Vulkan-based Wolf 2 on my systems though, if not its general lack of true mgpu support. However, given that there is no OGL/DX11 version, its hard to say if there really was much of a benefit to using Vulkan.
You'd better look at Doom then, as it uses the very same engine Wolf2 is built on - but it also provides an OpenGL 4.5 backend (which compares rather well with DX11, according to developers used to both backends). The boost AMD cards get on Vulkan in Doom is nothing to sneeze at, and is comparable to what titles like Battlefield 4 (Mantle) would get over the DX11 backend.
The main problem is that, currently, most engines are built using the DX11 feature set as a target (and Nvidia cards are geared towards DX11 features), and added backends usually end up mapping DX11 features to DX12 (or Vulkan).
According to a Croteam developer (their Serious Engine was initially developed for DX9, and includes backends for DX11, OpenGL and Vulkan), mapping such an "old" engine to one of the new APIs results in little performance improvements (less draw call overhead is one), however developing an engine to actually making use of an API's strength can really quickly provide huge performance improvements.
Said improvements come mainly through drastically lowering CPU overhead (async compute is one such feature that delegates task management to the GPU when it can handle it - as in GCN 1.1+ AMD cards -, multiple queueing is another). Note that a game that can perfectly load a GPU without getting any CPU bottlenecking through DX11 won't see any increased FPS from using DX12/Vulkan. However, it'll get a much lower, better distributed CPU load.
Just like Wolfenstein II exhibits.
That, and other DYNAMIC features for both the CPU and GPU that work to optimize the FRAME TIME.
Put another way, let's have the game ENGINE (and thus the game) automatically adjust to the PC hardware so our games are smooth with little to no tweaking of settings.
*I am so sick of starting a game, tweaking the game, then retweaking the game when it stutters, then finding areas that are just so demanding tweaking doesn't help, and so on...
DOOM doesn't have a DX11 mode... It has OpenGL v4.5 and Vulkan.
Those games that can run dx11 and earlier does not use features where dx12 or Vulcan is superior.
On Nvidia cards, Vulkan widens the CPU bottleneck but if your CPU is powerful enough you would see no improvement over OpenGL. On AMD cards, you get a 20-40% performance boost even if you weren't CPU limited because the hardware is better used.
DirectX 12 and Vulkan are pretty much the same beast, the former being Microsoft's "me too" when AMD came up with Mantle and Vulkan being what the Khronos group came up with when AMD provided Mantle free of charge as a template for their "next gen API", Intel said it was interesting and Nvidia complained that it wasn't fair to them.
In all cases (Mantle, DX12 and Vk), these APIs aim to lower CPU overhead and driver complexity by giving developers a more direct access to graphic hardware. Engines become harder to program, but they are also able to directly manage hardware resources.