Bug Report No option to use NVENC(Old) in the new update.

R1CH

Forum Admin
Developer
The nvenc encoder is a piece of hardware on the card, the quality is identical regardless of the interface used to access it. "Old" nvenc was removed since there's no reason to use it as the rewritten nvenc is more performant; in situations that the new nvenc can't handle (such as resized output) it will fall back to the old implementation automatically.
 
The nvenc encoder is a piece of hardware on the card, the quality is identical regardless of the interface used to access it. "Old" nvenc was removed since there's no reason to use it as the rewritten nvenc is more performant; in situations that the new nvenc can't handle (such as resized output) it will fall back to the old implementation automatically.
thanks for clearing that but I am quite sure when the output is rescaled, the quality goes nuts. And I think the old implementation use to perform far better as compared to the new one.
 

FerretBomb

Active Member
thanks for clearing that but I am quite sure when the output is rescaled, the quality goes nuts. And I think the old implementation use to perform far better as compared to the new one.
It literally is using the same encoder stack, just with improvements so that the GPU doesn't have to copy the framebuffer out to system RAM, then back to VRAM. New just copies it from one location in GPU memory to another. You are under placebo effect.
 
Hey man. I did try to stream with both New NVENC encoder in version 25.1 and Old NVENC encoder in version 23. Its not a placebo efeect that I am quite sure of. Check out my twitch if you need proof. I have a gtx1080ti and I am very sure of it. Anyways I think you guys did a goof up there or NVIDIA is trying to NERF pascal in some way. I will give you more proof if you need but I am quite sure of this. Also a you confirmed NVENC is a peice of hardware on the turing cards which is better optimised for turing gen. I have observed this before as well and pascal cards sucks in New NVENC mode. period.
 

koala

Active Member
You mix things up. Quality of Nvenc on the same chip generation has always been the same. It's the same in OBS 23 as well as 24 as well as 25, and it is also not dependent on any Nvidia driver version.
From Pascal to Turing chip generation Nvenc has been improved. The hardware Nvenc circuit built in the Turing chip produces better quality than the hardware nvenc circuit built in the Pascal chip. The Pascal encoder was not and cannot be "nerfed" after the release of Turing, because it's a hardware circuit. Hardware cannot be modified.

OBS is just calling that circuit for encoding. If OBS, regardless the version, is running with a Pascal chip, it gets the Pascal encoding quality. Which is about the same as the "veryfast" x264 profile. Regardless the encoder setting of "nvenc" or "nvenc (new)".
If OBS, regardless the version, is running with a Turing chip, it gets the Turing encoding quality. Which is about the same as the "medium" x264 profile. Regardless the encoder setting of "nvenc" or "nvenc (new)".

The difference between "nvenc" and "nvenc (new)" is not encoding quality, it's the method the data is fed into the encoding circuit. But the data, input as well as output, itself is the same. If you read that Nvenc (new) is different, than it is because Nvenc (new) calls the encoder more efficiently. If there is a variant that is better, then it is nvenc (new) and not nvenc (without new). It makes no sense to release an updated encoding method that performs worse than any old one.
 

FerretBomb

Active Member
Hey man. I did try to stream with both New NVENC encoder in version 25.1 and Old NVENC encoder in version 23. Its not a placebo efeect that I am quite sure of. Check out my twitch if you need proof. I have a gtx1080ti and I am very sure of it. Anyways I think you guys did a goof up there or NVIDIA is trying to NERF pascal in some way. I will give you more proof if you need but I am quite sure of this. Also a you confirmed NVENC is a peice of hardware on the turing cards which is better optimised for turing gen. I have observed this before as well and pascal cards sucks in New NVENC mode. period.
They are not. Please take off the tinfoil hat.
Chances are good that other setting changes are responsible if there is a qualitative difference, possibly during the upgrade to v25. Especially if you skipped v24, and were using 23.
NVENC old and new use the same encoder stack, regardless of the card generation you use. It calls the card in the same way. If you want to use 'old' NVENC, use a downscale on the streaming output. It automatically falls back to old NVENC as new does not (yet) support downscaling. But there will not be a difference, because the encoding is exactly the same between NVENC old and new. The main difference is that some elements no longer need to be copied from VRAM out to system RAM, then right back into VRAM.
 

carlmmii

Active Member
Just to check, could you post a log file from a stream when you were using OBS 25.0.1? As well as possibly one from 24.0.3 using non-new?
 
Last edited:
You mix things up. Quality of Nvenc on the same chip generation has always been the same. It's the same in OBS 23 as well as 24 as well as 25, and it is also not dependent on any Nvidia driver version.
From Pascal to Turing chip generation Nvenc has been improved. The hardware Nvenc circuit built in the Turing chip produces better quality than the hardware nvenc circuit built in the Pascal chip. The Pascal encoder was not and cannot be "nerfed" after the release of Turing, because it's a hardware circuit. Hardware cannot be modified.

OBS is just calling that circuit for encoding. If OBS, regardless the version, is running with a Pascal chip, it gets the Pascal encoding quality. Which is about the same as the "veryfast" x264 profile. Regardless the encoder setting of "nvenc" or "nvenc (new)".
If OBS, regardless the version, is running with a Turing chip, it gets the Turing encoding quality. Which is about the same as the "medium" x264 profile. Regardless the encoder setting of "nvenc" or "nvenc (new)".

The difference between "nvenc" and "nvenc (new)" is not encoding quality, it's the method the data is fed into the encoding circuit. But the data, input as well as output, itself is the same. If you read that Nvenc (new) is different, than it is because Nvenc (new) calls the encoder more efficiently. If there is a variant that is better, then it is nvenc (new) and not nvenc (without new). It makes no sense to release an updated encoding method that performs worse than any old one.

I am quite sure the explanation given by you is decent and things should work like this on ideal world. However threr are a few things Ill explain you.
1. In the previous version (OBS 23) Choosing New NVENC was totally crap with same presets and 6000 mbps bit rate. My 1080ti was dropping frames when I used the new encoder. As per you the new NVENC calling the encoder more efficiently is plausible but practically I think pascal encoder is not optimized for using the New NVENC. New NVENC encoder works brilliantly for turing cards except 1650 and I can vouch for that. Anyways Ill be providing you a link of my analysis in a day or two on my youtube channel. That's the only way I can share more on this;.
 

FerretBomb

Active Member
Again. There is no difference between the NVENC old and new encoder qualitatively, regardless of NVENC generation. It is purely a functional efficiency improvement. It uses the same encoder stack. It will output the same video on old or new on a given card, unless the user has made other changes to the settings.
 

XxFuryDxX

New Member
The nvenc encoder is a piece of hardware on the card, the quality is identical regardless of the interface used to access it. "Old" nvenc was removed since there's no reason to use it as the rewritten nvenc is more performant; in situations that the new nvenc can't handle (such as resized output) it will fall back to the old implementation automatically.
Not exactly true. NVENC (old) uses system RAM, while the new version uses only VRAM on the GPU. Other than that yes everything is basically the same. This could prove to be an issue with people running higher frames on an 8GB pascal card and trying to encode/stream 1080P.
 

Adamethius

New Member
I can attest to how real the problem is because I do stream with an old GTX 970 with a 4GB (technically 3GB) GPU RAM. My issue is not artifacts though as that has been a problem for me since day 1. My problem is that Apis now dropping so much frames now compared to before for both encoding AND GPU. And there is literally nothing in my settings that changed except for the old NVENC disappearing. If what XxFuryDxX is right, then that could be my issue since I have always had 16GB of RAM on my system.

Is there any chance the old NVENC could be brought back?
 

Adamethius

New Member
You have any log file ?
We don't you CPU usage.

Here are the last 2 tests I made.

Also I meant to say Apex Legends - not APIS, lol. I was writing that when I was half-asleep...
 

Attachments

  • 2020-07-20 04-40-06.txt
    122.6 KB · Views: 68
  • 2020-07-20 18-03-47.txt
    75.9 KB · Views: 38

Tomasz Góral

Active Member
05:18:50.573: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 11077 (17.7%)
05:18:50.574: Video stopped, number of skipped frames due to encoding lag: 11686/62456 (18.7%)
 

Adamethius

New Member
05:18:50.573: Output 'adv_stream': Number of lagged frames due to rendering lag/stalls: 11077 (17.7%)
05:18:50.574: Video stopped, number of skipped frames due to encoding lag: 11686/62456 (18.7%)
Yes. I have seen this as I stream. And I am telling you that that amount of encoder and render lag was not that high when I was still using the old NVENC.
 
Top