Friday, November 18th 2016
Sid Meier's Civilization VI Gets a DirectX 12 Renderer in Latest Update
Firaxis Games released the biggest update to Sid Meier's "Civilization VI." The update is particularly big for the PC version, as it adds a DirectX 12 renderer, letting the game take advantage of performance-enhancing features introduced with the API, such as multi-threaded rendering, which could improve frame-rates in CPU-limited low-resolution setups. The in-game benchmark tool is also updated. The update also adds new content, user-interface updates, and gameplay changes.
Source:
Kotaku
22 Comments on Sid Meier's Civilization VI Gets a DirectX 12 Renderer in Latest Update
That's very debatable thing considering many developers release DX12 support that actually makes performance SIGNIFICANTLY worse. Which goes against any and all logic beind DX12...
When you'll see a DX12-only title, or a title that launches with DX12 and receiving DX11 in a later patch, then you can be sure you're looking at what DX12 can do.
And that's not even unexpected, technology is not adopted overnight.
That was literally impossible for my setup to do before.
What I did notice was the huge improvement to load times of the benchmarks where DX12 was FAR superior.
Only game I'm aware of that supports both D3D11 and Vulkan is Talos Principle, in which D3D11 is a lot faster (or at least was when the benches were done originally)
There's also many games where at least AMD benefits notably from D3D12 over 11, even if there now is titles which do better with D3D11 instead, too.
Also, I don't believe there's any title right now that's faster under DX12 than in DX11 (I'm hoping that's because DX12 is bolted on, not because DX12 requires more attention than developers are willing to pay).
So they are making the game scalable downwards, well that's interesting…
"All" Direct3D and Vulkan games so far sucks for a simple reason, they are utilizing the new "low level" APIs through a wrapper making them behave like the old APIs, which defeats the whole purpose of a low level API in the first place. There will only be minor occasional gains due to driver side optimizations, but generally speaking it will be comparable or worse compared to the "old" APIs. Exactly. It will be a while before we see any title written for Direct3D 12 or Vulkan. Please explain why. AofS is a ported Mantle title, so it's most certainly not a non-biased well written Direct3D 12 title. The Talos Principle is built using a "Direct3D 11-like" wrapper, so it will make all APIs behave like the old ones… Just like The Talos Principle, Dota 2 uses a similar wrapper. So we'll have to wait for Valve to build a game engine build around Vulkan natively, which will not happen anytime soon.
For this reason, Dota 2 does not seem to scale very well either.
It sucks that they changed the benchmarking system. Is any work underway to retest for image and performance differences between the two APIs?
Ashes doesn't have Vulkan (yet)
Talos has Vulkan and D3D11, but D3D11 is faster in it (or at least was when it was benched)
DOTA2 does indeed support both, didn't remember it supporting D3D11 - there doesn't seem to be many benches, but the one YouTube video comparing the renderers I did find showed similar performance between D3D11 and Vulkan, not better on Vulkan I suggest you re-check your benchmarks, not 100% sure for NVIDIA, but Tomb Raider was the first title that didn't run faster with D3D12 than D3D11 on AMD
DX:MD: www.hardocp.com/article/2016/11/18/deus_ex_mankind_divided_dx12_performance_review/4#.WDAkLROMQwE
Nvidia seems to take a bigger hit across the board from DX12, but they all take a hit, nonetheless. The Furies don't, but they only gain a few fps regardless.
First of all, there is very little about Vulkan and DX12 that will just make an 3D application faster, it provides you tools to help accelerate performance. Back in the days of DX11 and OpenGL, most of what the API was doing was reliant on global state and individual draw calls. This means that everything is intended to work together and be indivisible which is great from a stability and predictability standpoint but, is terrible from a throughput perspective. There are some thing in Vulkan that make it a little different such as removing a lot of error checking and reducing overhead to interact with the API but, there is one fundimental contstruct that they added that can yield the best performance: Command buffers. The nice thing about command buffers is that they're like a queue for things like drawing. Now, there are still some limitations to how many commands can be issued at any given time but, a big benefit is that multiple threads could be preparing command buffers to be executed. This helps decouple the preparation of APIs for things like drawing, texturing, and lighting from the actual act of making them happen.
If there are Vulkan or DX12 ports that merely wrap DX11/OpenGL and literally execute a command buffer for every draw call, then yeah, performance is going to suck because the developers didn't know what the hell they were doing because using Vulkan the same was as OpenGL/DX11 defeats the purpose of using Vulkan/DX12 in the first place. If you're going to be so lazy just to wrap the new API, then you should just keep using DX11 or OpenGL.
Khronos was very clear that Vulkan was not intended to replace OpenGL or OpenGL ES. Vulkan is a harder to use alternative that provides lower level access and greater ability to improve performance. It is not a drop-in replacement for existing 3D APIs.
tl;dr: Vulkan and DX12 are not intended to be drop-in replacements for DX11 and OpenGL and people (as well as devs,) need to stop treating them as such.