A couple of NvEnc related questions.

Bryce Demar

New Member
Heyo, i've been messing with nvenc for a couple hours and have a few questions for those more experienced in this stuff.

How should I go about measuing the true load NvEnc is putting on my gpu? GPU-Z reports the "video engine load" at usage values exactly double that of what task manager reports under the "video encode" graph. I have no idea which is the more accurate measurement.

The main reason I ask is because i've been trying to get 4K 60FPS streaming working on YouTube. The highest I can go before OBS gives me an Encoding Overloaded message is 1440p 60FPS. However GPU-Z almost never reports a "video engine load" higher than around 40 percent.

Note that I am already running OBS as admin and have game mode enabled. I'm getting the overload warning even when my gpu 3d load isn't anywhere near 95%.
 

koala

Active Member
The nvenc encoder on the GPU is a dedicated circuit, separate from the grid processing units. Video engine load means the load of producing the video frames, and encoder load is nvenc load alone. If you add them together, you could get 200% load, because each them can go up to 100% for itself.
With nvenc, there are fixed limits of what it can encode. This depends on the chip of your GPU (Kepler with GTX 6xx, Maxwell with GTX 7xx, Pascal with GTX 1xxx, Turing with RTX 2xxx and RTX 3xxx).
I'm unable to find it right now, but as far as I remember, nvenc is able to encode 4k above 30 fps only with Turing, i. e. RTX 2xxx and above.
 

TryHD

Member
On a 1080ti, nvenc encodes 2160p60 at max quality and 2160p120 at performance just fine. So the bottleneck doesn't seem to be nvenc instead somewhere else.
 

Bryce Demar

New Member
If you add them together, you could get 200% load, because each them can go up to 100% for itself. With nvenc, there are fixed limits of what it can encode.
Huh, that clears things up a bit. If its true that there are driver/software level limits on nvenc profiles that would explain the overload warning message occurring when the actual video engine/encoder utilization hasn't hit 100% yet.
This depends on the chip of your GPU (Kepler with GTX 6xx, Maxwell with GTX 7xx, Pascal with GTX 1xxx, Turing with RTX 2xxx and RTX 3xxx).I'm unable to find it right now, but as far as I remember, nvenc is able to encode 4k above 30 fps only with Turing, i. e. RTX 2xxx and above.
Thats odd as I know for a fact that streaming within shadowplay itself allows 4K 60fps on my hardware. Could this be an obs nvenc limitation?
 

Bryce Demar

New Member
On a 1080ti, nvenc encodes 2160p60 at max quality and 2160p120 at performance just fine. So the bottleneck doesn't seem to be nvenc instead somewhere else.
Where could that bottleneck exist considering nvenc is supposed to only put load on the gpu video engine?
 

koala

Active Member
You're scaling up your 1920x1080 monitor to 4k and try to encode this - this doesn't make sense to me. It's putting unnecessary load on the machine and doesn't improve the quality, because upscaling isn't adding picture information. It even eats up quality by consuming upload bandwidth.
Just set the output resolution to the canvas resolution (1920x1080) for best quality.
 

Bryce Demar

New Member
You're scaling up your 1920x1080 monitor to 4k and try to encode this - this doesn't make sense to me. It's putting unnecessary load on the machine and doesn't improve the quality, because upscaling isn't adding picture information. It even eats up quality by consuming upload bandwidth.
Just set the output resolution to the canvas resolution (1920x1080) for best quality.
I agree with you as I myself don't actually have an interest in 4k60 streaming. However humor me here if you don't mind as I have a friend who does game at native 4k or higher with a genuine desire to get 4k working that is having the same issue that i'm having. I'm trying to sort this out for them. The fact that I can do 4k60 in shadowplay without a problem but can't in obs means that there is an obs limitation/bug that I like to troubleshoot for the sake of helping my friend out.
 

TryHD

Member
Ah bumping up base canvas up to 4k and upscaling my scenes themselves did resolve it. Seems that this could then be a bug with scaling in obs when using nvenc.
not really, like you see in the log they have to fallback to ffmpeg because of the scaling which is not as efficient as the normal implementation. That is a singlecore implementation that is done on the CPU. With a faster CPU that works just fine, even though i wouldn't recommend anyone to use it. Instead do the scaling in the video tab which will result in that it will be done on the GPU much more efficient.
 

Bryce Demar

New Member
got it. Then perhaps a note/warning for to user on the video tab could help avoid this. Either way thanks for the help.
 
Top