±----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
±----------------------------------------------------------------------------+
Any ideas as to what could be causing this issues?
Hello @tim.wooldridge and welcome to the NVIDIA developer forums!
Error code 8 corresponds to NV_ENC_ERR_INVALID_PARAM which would indicate that one of your parameters in NvEncoder::CreateEncoder() is incorrect. Please check with the sample code and see if there might be some mismatch.
Hi Markus, thanks for your feedback. What confusing is this code works fine on the RTX 2080. However, when I run the code on a T4, I encounter the error 8.
Would it be possible for you to upgrade the NVIDIA driver version?
And could you share the part of your code where you encounter the error? And ideally a stacktrace in case you have debugging capabilities? To analyse further we would need some idea of what the passed values are in the function that fails.
I will provide a reduced set of NVEnc parameters because I do not have all of them immediately available:
Codec : H.264
codec : h264
rc : cbr_hq
fps : 60/1
gop : INF
bf : 0
Encoding size : 1920x1080
Display size : 1920x1080
Reconfigure parameters:
NV_ENC_CODEC_H264_GUID;
NV_ENC_PRESET_P4_GUID;
NV_ENC_TUNING_INFO_ULTRA_LOW_LATENCY
NVENC_INFINITE_GOPLENGTH;
frameIntervalP = 1;
rateControlMode = NV_ENC_PARAMS_RC_CBR;
averageBitRate = 16556000; // variable bitrate last value before crash, it is fairly low
vbvBufferSize = averageBitRate * 5;
I’m also hitting this fairly regularly (but seemingly at random) on an NVIDIA RTX 2080 with driver version 516.59 on Windows 10.
Our application creates/deletes encoders as clients connect and/or change parameters such as frame rate and resolution. It works for a while, and then we encounter this error.
It would be nice if nvEncGetLastErrorString returned more information. In this instance it just gives an empty string which isn’t very useful. (Obviously something in the driver knows what’s wrong. Why can’t it tell us?)