moonlight-stream / nvidia-gamestream-issues

Repository for tracking known GameStream issues that require a fix from Nvidia
11 stars 1 forks source link

[Nvidia streaming server component] GPU footprint reaches over 30% #39

Open RubiksCubei opened 2 years ago

RubiksCubei commented 2 years ago

Describe the bug [Nvidia streaming server component] GPU footprint reaches over 30%

Steps to reproduce I just connected mstsc and didn't do anything else

Screenshots image

Affected games Not a game

Other Moonlight clients

Moonlight settings (please complete the following information) image

Client PC details (please complete the following information)

Server PC details (please complete the following information)

Moonlight Logs (please attach) Moonlight-1663895275.log

cgutman commented 2 years ago

Moving to the nvidia-gamestream-issues tracker, since this is an issue with nvstreamer.exe, not Moonlight.

cgutman commented 2 years ago

I think this is just the way Windows measures load on GPUs, not indicative of an actual performance issue.

Unlike a CPU where the entire core is scheduled as a unit, a modern GPU has various different engines that are not all sharing the same hardware. That means you can have a game fully utilizing the CUDA cores, ROPs, etc, while NVENC is running simultaneously with little to no performance degradation of either task.

Windows tries to provide something understandable for the average user, but it is not perfect in cases like this as Microsoft themselves point out:

In the left pane under the GPU name and at the bottom of the right pane, you’ll notice an aggregated utilization percentage for the GPU. Here we had a few different choices on how we could aggregate utilization across engines. The average utilization across engines felt misleading since a GPU with 10 engines, for example, running a game fully saturating the 3D engine, would have aggregated to a 10% overall utilization! This is definitely not what gamers want to see. We could also have picked the 3D Engine to represent the GPU as a whole since it is typically the most prominent and used engine, but this could also have misled users. For example, playing a video under some circumstances may not use the 3D engine at all in which case the aggregated utilization on the GPU would have been reported as 0% while the video is playing! Instead we opted to pick the percentage utilization of the busiest engine as a representative of the overall GPU usage.

https://devblogs.microsoft.com/directx/gpus-in-the-task-manager/