Investigating DirectX 12 CPU Scaling

Does core count matter in DirectX 12?

AotS Screen shot4

CPU core count does matter for gaming. It’s particularly important in DirectX 12 games as our testing in this article shows. One of the big advantages of low-level APIs is that they give developers greater control over the performance of their games. With Windows 10’s resource management scheme spreading threads out across all the available cores rather than just loading up a single core has become the priority.  The combination of these two advancements have enabled developers to more effectively break the different tasks in their game engines down into discrete threads to be executed. With games taking better advantage of multithreading thanks to DirectX 12 we’ve already seen drastically improved performance on the same hardware.

You may recall that many DirectX 11 games and almost all DirectX 9 games failed to show significant performance improvements after you added more than two CPU cores to a system. In fact, at playable framerates and reasonable image quality settings, differences in L3 cache sizes and absolute single core clock speed had the biggest impact on performance. With the ongoing stagnation of CPU clock speeds this lead to a world where a sub-$100 dual core processor could consistently provide the same level of gaming performance a $1000+ eight core workstation CPU. Now this may sound like a dystopian reality but the last five years have actually been a pretty good time to be a PC gamer.

AotS Screen shot5

Given all of that history the question we’re aiming to answer here is how does DirectX 12 scale with CPU core count. To that end we’ll be disabling the cores of our test CPU in the BIOS. All settings other than which cores are enabled and whether hyper threading is on will be left at their defaults. We’ll be using the DirectX 12 version of Ashes of the Singularity to gauge the performance of DirectX 12 games in general. We’re using the same test PC that we used in our initial article on Ashes of the Singularity.

Although we’re using hardware and game keys sampled to us from a number of different companies we took no outside input on the creation of this article.

As always you can find our raw testing data on OneDrive.

AotS DX12 CPU Scaling

The big take away here is that performance in DirectX 12 with good hardware scales with increasing core counts up to four cores. We see reductions in the amount of time the game believes its CPU bound up to six cores, but no increase in the actual framerate. Although disabling Hyper threading has no impact on performance, it does reduce the amount of time the game believes that it’s CPU bound. There are large performance gains to be had in DirectX 12 when upgrading from a dual core to a quad-core CPU.

Interestingly Ashes of the Singularity was excruciatingly slow and wouldn’t render anything at all when we tried to benchmark it with all but one CPU core disabled. The game started up correctly, but there was about a ten second lag between the moment you clicked on a button in the main menu and when the game actually responded to your input. The benchmark said it was starting, and that it had finished, but it never rendered a single frame on the display and never saved any benchmarking results to our system. To its credit AotS didn’t crash out right, but the clock which displays how many seconds the benchmark has been running for reversed itself and was incrementing time as negative value up to a whole -13:00 minutes before we killed the application.

DirectX12Multithreading

Bring this discussion back to the variety of different CPUs we tested in our initial AotS article we noticed that older CPUs with weaker single threaded performance and plenty of cores saw the largest performance gains when moving from DirectX 11 to DirectX 12-based rendering engine. The testing we’ve conducted today demonstrates why this is happening. DirectX 12 games scale to more cores than DirectX 11 games. In doing so the performance of a single core becomes less relevant and the combined performance of up to four cores becomes the limiting factor.

Now to be clear this doesn’t mean that in DirectX 12 four slower cores will perform just as well as four faster cores. Faster cores of an equal number will still be faster even if that core count is at the limit of the game engine’s ability to leverage multithreading. Rather it means that the performance gap between a small number of fast cores like an Intel Celeron or Core i3 and a larger number of slow cores like one of AMD’s FX or A-Series chips will be smaller under DirectX 12 than with DirectX 11. Of course this trend is going to be limited by a variety of factors including the relative performance of the two chips you’re comparing and how well upcoming DirectX 12 games take advantage of multithreading.

This all basically boils to two points: DirectX 12 improves performance on chips with multiple threads to a greater degree than DirectX 11 could; and if you’re getting ready to purchase a new CPU for gaming get at least a quad-core chip.S|A

The following two tabs change content below.
Thomas Ryan is a freelance technology writer and photographer from Seattle, living in Austin. You can also find his work on SemiAccurate and PCWorld. He has a BA in Geography from the University of Washington with a minor in Urban Design and Planning and specializes in geospatial data science. If you have a hardware performance question or an interesting data set Thomas has you covered.