0
$\begingroup$

More of a question about what's possible in DX.

Some people have reported that when running games on higher settings they get less CPU load but when dropping the settings the CPU load increases.

What would be causing increased CPU load in these cases?

Someone suggested that the DirectX API falls back to software when certain features are turned off, but is this something that can happen - can DirectX do a mixed render where some stuff in the render pipeline is pushed through the CPU and the rest goes to the GPU?

My thoughts were texture quality and downsampling and potentially physics processing not being offloaded but does anyone actually know what the cause might be?

$\endgroup$
3
$\begingroup$

The most likely explanation is that the game is GPU-bounded and not running at a fixed frame rate. If reducing the quality in the settings allows the game to reach a higher frame rate, the GPU load will be the same, but the CPU load will increase: the CPU is doing the same amount of work per frame (or possibly less), but there are more frames per second, so the total amount of CPU work per second increases. If the game does some non-graphics work per frame as well (for example, if physics updates are at the same rate, or if input is polled once per frame), the effect will be even greater.

Forcing rendering to a fixed frame-rate would allow a controlled comparison.

Your hypothesis about software emulation of features may apply to some features in some games. A particular hardware feature might be exposed as an option because it's slow on some GPUs, and turning the feature off uses a CPU implementation in the game instead. If you have more specific questions about that, be sure to ask a new question which includes the source code you're working on and the benchmark results.

$\endgroup$
4
  • $\begingroup$ Right but in the case of the fallback to software, does DX have any software support out the box or does it rely on the DX supported drivers to implement each graphics function? If a feature isn't there - apart from WARP does DX have any implicit software implementations or just it just serve as the HAL? $\endgroup$ – Charleh Sep 10 '18 at 15:36
  • $\begingroup$ @Charleh No, DX doesn't provide any software fallback for unsupported GPU features out of the box. That's something that would have to be implemented by the game engine. $\endgroup$ – Nathan Reed Sep 11 '18 at 0:29
  • $\begingroup$ or by the GPU driver, of course. Even if it were implemented by DX or the driver, how would turning off the feature in the game activate it? That logic is backwards. $\endgroup$ – Dan Hulme Sep 11 '18 at 9:53
  • $\begingroup$ That's what I thought - it's more to settle an argument about why CPU load goes up when games are set to lower settings on the U4 engine. I'd favour the more frames = more load over anything. Someone was suggesting that the U4 engine must fall back to software for certain things but I doubt it. Maybe it does but I can't find anything in the Epic dev docs that mention that, also most hardware accelerated effects would be so slow in software they wouldn't be worth implementing. $\endgroup$ – Charleh Sep 11 '18 at 10:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.