Alright,
I'm a long time lurker, but seldomly post.
Just upgraded my main desktop, so I figured it was time for me to join the fun.
Hardware Specs:
CPU: AMD Threadripper 3960x (24c/48T, based 3.8Ghz, Boost 4.5 Ghz)
GPU: Nvidia Titan X (Pascal)
RAM: 64GB (4x16GB) DDR4-3600 CL16
Screen/Resolution: 4k (3840x2160)@120hz (G-Sync on, V-Sync disabled)
OS: Windows 10 Professional 1909
Settings:
- Full screen mode
- 3840x2160@119hz
- All quality settings (including AA) at max
- Vsync off
- UI Scaling at 100%
Overclocking:
CPU: Stock Settings
GPU: Power Limit: 120, Core Clock +165, Memory Clock +500. Results in in-game clock of 2063Mhz
Cooling:
System is cooled with a custom water loop, with fan control set to keep coolant at 33C, which results in a GPU load temp when overclocked at full load of <40C
Results:
Code:
DX11 DX12
Old Graphics Avg 10.967 ms 14.118 ms
Old Graphics 99th 14.048 ms 17.920 ms
Old AI Avg Turn 6.72 s 6.75 s
GS Graphics Avg 14.567 ms 18.932 ms
GS Graphics 99th 17.711 ms 22.949 ms
GS AI Avg Turn 31.61 s 31.65 s
Considering how the last two Civ releases have been renowned for their multi-threading, I was hoping this Threadripper beast would really crush it. Seems like the engine limits itself to "only" utilizing ~16 threads heavily, one or two threads more lightly, with the rest just showing some noise level load (probably just DX12 calls) which is probably what's holding it back. Still, can't complain.
Here is a screenshot of the core load during the GS AI benchmark in DX12 if anyone is interested:
Another interesting note is that DX12 performs worse across the board. Not sure how much of it is due to cache thrashing from the DX12 calls spreading out over all the threads, and how much of it is just due to Nvidia's Pascal implementation for DX12 maybe being subpar, but it is what it is.
The difference is small, but since there is no visual distinction between the two to my eye, I'll be sticking with DX11 for now.
I've often theorized that DX12 primarily benefits slower CPU's, and particularly slower, highly threaded CPU's. If you have a CPU that can handle the load without hitting 100% on any core in DX11, it would likely be faster in DX11, as moving to DX12 would offer little benefit, and just add cache thrashing.
Would be curious what everyone else thinks.