HW transcode not working with NVENC

Hello

I am fighting with HW transcode on my bare metal (HP microserver) headless debian 10 box with AMD CPU and NVIDIA quadro 400 GPU
My plex box has no more the guts to transcode HEVC with CPU, I need the help of GPU

I am aware that missing quicksync feature of my CPU is not an issue, as plex will skip to NVENC if available.

As I have a valid plex pass, I for sure enabled hardware transcoding in plex config UI, double check.

here is my kernel, might be the cuplrit?

# uname -a
Linux microserver 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux

Installed required drivers version from backports :

nvidia-driver 450.80

here is the output of nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: N/A      |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro P400         On   | 00000000:01:00.0 Off |                  N/A |
| 34%   25C    P8    N/A /  N/A |      1MiB /  1999MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

plex membership looks OK :

# groups plex
plex : plex video wonder render
# ls -ls /dev/nvidia*
0 crw-rw-rw- 1 root root 195,   0 déc.  30 06:12 /dev/nvidia0
0 crw-rw-rw- 1 root root 195, 255 déc.  30 06:12 /dev/nvidiactl
0 crw-rw-rw- 1 root root 195, 254 déc.  30 06:12 /dev/nvidia-modeset

/dev/nvidia-caps:
total 0
0 cr-------- 1 root root 246, 1 déc.  29 23:48 nvidia-cap1
0 cr--r--r-- 1 root root 246, 2 déc.  29 23:48 nvidia-cap2

# ls -la /dev/dri
total 0
drwxr-xr-x  3 root root        100 déc.  30 06:12 .
drwxr-xr-x 19 root root       3680 déc.  29 23:48 ..
drwxr-xr-x  2 root root         80 déc.  30 06:12 by-path
crw-rw----  1 root render 226,   0 déc.  30 06:12 card0
crw-rw----  1 root render 226, 128 déc.  30 06:12 renderD128

I still can’t get HW transcode, from the logs :

Jan 06, 2021 22:19:17.691 [0x7f172b7fe700] DEBUG - Completed: [127.0.0.1:52328] 200 PUT /video/:/transcode/session/2iv0s3tc9vgnljyfafgkld91/aa09dd0a-f877-4cf9-9181-41da29b0a94d/progress/streamDetail?index=3&id=0&codec=hdmv_pgs_subtitle&type=subtitle&language=eng (19 live) 0ms 195 bytes (pipelined: 11) (range: bytes=0-) 
Jan 06, 2021 22:19:17.692 [0x7f1703fff700] DEBUG - Request: [127.0.0.1:52328 (Loopback)] PUT /video/:/transcode/session/2iv0s3tc9vgnljyfafgkld91/aa09dd0a-f877-4cf9-9181-41da29b0a94d/progress/streamDetail?index=4&id=0&codec=ac3&type=audio&bitrate=640000&language=eng&channels=6&layout=5.1%28side%29&sampleRate=48000&disp_default=1 (19 live) Signed-in Token (qube001) (range: bytes=0-) 
Jan 06, 2021 22:19:17.693 [0x7f172b7fe700] DEBUG - Completed: [127.0.0.1:52328] 200 PUT /video/:/transcode/session/2iv0s3tc9vgnljyfafgkld91/aa09dd0a-f877-4cf9-9181-41da29b0a94d/progress/streamDetail?index=4&id=0&codec=ac3&type=audio&bitrate=640000&language=eng&channels=6&layout=5.1%28side%29&sampleRate=48000&disp_default=1 (19 live) 0ms 195 bytes (pipelined: 12) (range: bytes=0-) 
qube@ipv4:~/Téléchargements/PLEX$ grep -i codec Plex\ Media\ Server.log 
Jan 06, 2021 22:03:51.810 [0x7f17037fe700] DEBUG - Job running: EAE_ROOT='/tmp/pms-db82c3d9-3653-4bb6-945a-068c0508b050/EasyAudioEncoder' FFMPEG_EXTERNAL_LIBS='/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs/367b3d4-3654-linux-x86_64/' X_PLEX_TOKEN='xxxxxxxxxxxxxxxxxxxx' '/usr/lib/plexmediaserver/Plex Media Scanner' '--scan' '--refresh' '--section' '8' '--activity' 'cf4e586d-f53b-4f93-9db4-ce7adb03012f'
Jan 06, 2021 22:19:17.515 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing h264_nvenc (encoder)
Jan 06, 2021 22:19:17.515 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 06, 2021 22:19:17.515 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.515 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice vaapi
Jan 06, 2021 22:19:17.516 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 06, 2021 22:19:17.516 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Jan 06, 2021 22:19:17.516 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice nvdec
Jan 06, 2021 22:19:17.516 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvdec
Jan 06, 2021 22:19:17.516 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.516 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing h264_nvenc (encoder)
Jan 06, 2021 22:19:17.516 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 06, 2021 22:19:17.516 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice vaapi
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice nvdec
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvdec
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] MDE: Cannot direct stream audio stream due to codec ac3 when profile only allows aac
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing h264_nvenc (encoder)
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 06, 2021 22:19:17.517 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice vaapi
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice nvdec
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvdec
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing h264_nvenc (encoder)
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.518 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice vaapi
Jan 06, 2021 22:19:17.519 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 06, 2021 22:19:17.519 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Jan 06, 2021 22:19:17.519 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice nvdec
Jan 06, 2021 22:19:17.519 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvdec
Jan 06, 2021 22:19:17.519 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.519 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing h264_nvenc (encoder)
Jan 06, 2021 22:19:17.519 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 06, 2021 22:19:17.519 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.519 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice vaapi
Jan 06, 2021 22:19:17.520 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 06, 2021 22:19:17.520 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Jan 06, 2021 22:19:17.520 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice nvdec
Jan 06, 2021 22:19:17.520 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvdec
Jan 06, 2021 22:19:17.520 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.520 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing h264_nvenc (encoder)
Jan 06, 2021 22:19:17.520 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 06, 2021 22:19:17.520 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.520 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice vaapi
Jan 06, 2021 22:19:17.521 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 06, 2021 22:19:17.521 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Jan 06, 2021 22:19:17.521 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice nvdec
Jan 06, 2021 22:19:17.521 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvdec
Jan 06, 2021 22:19:17.521 [0x7f1729ffb700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 06, 2021 22:19:17.521 [0x7f1729ffb700] DEBUG - [Transcode] MDE: Cannot direct stream audio stream due to codec ac3 when profile only allows aac
Jan 06, 2021 22:19:17.644 [0x7f16e27ec700] DEBUG - [Transcode] Job running: EAE_ROOT='/tmp/pms-db82c3d9-3653-4bb6-945a-068c0508b050/EasyAudioEncoder' FFMPEG_EXTERNAL_LIBS='/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs/367b3d4-3654-linux-x86_64/' XDG_CACHE_HOME='/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache' XDG_DATA_HOME='/usr/lib/plexmediaserver/Resources' X_PLEX_TOKEN='xxxxxxxxxxxxxxxxxxxx' '/usr/lib/plexmediaserver/Plex Transcoder' '-codec:0' 'hevc' '-codec:1' 'ac3' '-analyzeduration' '20000000' '-probesize' '20000000' '-i' '/mnt/storage/VIDEO/films/Le nom de la rose (1986).mkv' '-filter_complex' '[0:0]scale=w=1274:h=720[0];[0]format=pix_fmts=yuv420p|nv12[1]' '-filter_complex' '[0:1] aresample=async=1:ocl='\''stereo'\'':rematrix_maxval=0.000000dB:osr=48000[2]' '-map' '[1]' '-codec:0' 'libx264' '-crf:0' '23' '-maxrate:0' '3659k' '-bufsize:0' '7318k' '-r:0' '23.975999999999999' '-preset:0' 'veryfast' '-x264opts:0' 'subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none' '-force_key_frames:0' 'expr:gte(t,0+n_forced*3)' '-map' '[2]' '-metadata:s:1' 'language=fre' '-codec:1' 'aac' '-b:1' '119k' '-f' 'dash' '-seg_duration' '3' '-init_seg_name' 'init-stream$RepresentationID$.m4s' '-media_seg_name' 'chunk-stream$RepresentationID$-$Number%05d$.m4s' '-window_size' '5' '-delete_removed' 'false' '-skip_to_segment' '1' '-time_delta' '0.0625' '-manifest_name' 'http://127.0.0.1:32400/video/:/transcode/session/2iv0s3tc9vgnljyfafgkld91/aa09dd0a-f877-4cf9-9181-41da29b0a94d/manifest?X-Plex-Http-Pipeline=infinite' '-avoid_negative_ts' 'disabled' '-map_metadata' '-1' '-map_chapters' '-1' 'dash' '-start_at_zero' '-copyts' '-vsync' 'cfr' '-y' '-nostats' '-loglevel' 'quiet' '-loglevel_plex' 'error' '-progressurl' 'http://127.0.0.1:32400/video/:/transcode/session/2iv0s3tc9vgnljyfafgkld91/aa09dd0a-f877-4cf9-9181-41da29b0a94d/progress'

It seems plex cannot access to NVIDIA hardware, I d’on’t get what could be wrong

I hope someone in similar setup could give some pointers to help me to troubleshoot
I thank you in advance for the enlightenment :slight_smile:

Server Version#: 1.21.1.3830
Player Version#:

Does the GPU support HEVC?

If so, are the Nvidia drivers installed and current.

Drivers are current at this time (or at least a required & known working version) see OP.
yes H265 and H264 are supported both fore encode and decode with my quadro P400

AFAIK linux plex only support HW encoding, I’m fine with it

I want plex to CPU decode HVEC or any high bitrate media then use NVENC to encode low bitrate H264 for remote peers

Plex supports HEVC decode to H.264 encode on the Nvidia cards which are capable.
If you aren’t getting decode then I suggest revisiting

  1. Settings - Server - Transcoder - Show Advanced
  2. The media info (codecs involved) as well as the Nvidia decode/encode matrix.

My Plex with P1000 stopped transcoding a few days after upgrading to plexmediaserver_1.21.1.3830-6c22540d5_amd64.deb
 Playback and transcodes were working fine. Tried the latest plexmediaserver_1.21.1.3876-3c3adfcb4_amd64.deb, nvidia-smi showing

 nvidia-smi 
Tue Jan 12 10:35:24 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 450.102.04   CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro P1000        Off  | 00000000:1B:00.0 Off |                  N/A |
| 34%   45C    P0    N/A /  N/A |      0MiB /  4040MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Jan 12, 2021 10:28:21.901 [0x7f21737fe700] DEBUG - [Transcode] Audio Stream: 84563, Subtitle Stream: -1
Jan 12, 2021 10:28:21.902 [0x7f21737fe700] DEBUG - [Transcode] Codecs: testing h264_vaapi (encoder)
Jan 12, 2021 10:28:21.902 [0x7f21737fe700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 12, 2021 10:28:21.902 [0x7f21737fe700] ERROR - [Transcode] [FFMPEG] - libva: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
Jan 12, 2021 10:28:21.902 [0x7f21737fe700] ERROR - [Transcode] [FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).
Jan 12, 2021 10:28:21.903 [0x7f21737fe700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error
Jan 12, 2021 10:28:21.903 [0x7f21737fe700] DEBUG - [Transcode] Codecs: testing h264_nvenc (encoder)
Jan 12, 2021 10:28:21.903 [0x7f21737fe700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 12, 2021 10:28:21.914 [0x7f21737fe700] DEBUG - [Transcode] [FFMPEG] - Loaded lib: libcuda.so.1
Jan 12, 2021 10:37:48.133 [0x7f033ddda700] INFO - Plex Media Server v1.21.1.3876-3c3adfcb4 - Ubuntu PC x86_64 - build: linux-x86_64 debian - GMT -08:00
Jan 12, 2021 10:37:48.134 [0x7f033ddda700] INFO - Linux version: 18.04.4 LTS (Bionic Beaver), language: en-US
Jan 12, 2021 10:37:48.134 [0x7f033ddda700] INFO - Processor      Intel(R) Xeon(R) CPU E5-2650L v2 @ 1.70GHz
Jan 12, 2021 10:37:48.134 [0x7f033ddda700] INFO - /usr/lib/plexmediaserver/Plex Media Server

That looks like a driver version mismatch.
Are the Nvidia drivers up to date?

I’m running 440 (which was working), 460 is the latest available in my distro (Ubuntu 18.04.4 LTS)

Please recreate and attach the full DEBUG log files ZIP
I need to see what else is happening.

Jan 12, 2021 10:28:21.902 [0x7f21737fe700] ERROR - [Transcode] [FFMPEG] - libva: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)

is telling me the card is not responding for the type video requested.

Look here:

 # Is there a Nvidia card present (possible HW transcoding capability)
    [ "$(echo /sys/module/nvidia/drivers/pci:nvidia/*:*:*.*)" != "/sys/module/nvidia/drivers/pci:nvidia/*:*:*.*" ] HaveNvidia=1

I upgraded the nvidia-* drivers to 460 and h/w transcoding no longer failing.
It was just weird as working last night than failed, even through no updates and reboots since between the hols.

@burtonmadess
Well,
I suggest you start your own thread, and say hello to people, that would be a clever start.

Double checked all settings as stated in OP
HW trancode is enabled
media is supported in the nvidia matrix
same problem new version of nvidia drivers 460.32.03-1~bpo10+1 from backports

I can get HW transcode to work

To all here with this issue:

Please allow me to reiterate 


  1. DEBUG logging ON
  2. VERBOSE logging OFF
  3. Start Playback
  4. Let play for 20 seconds then stop
  5. Wait 20 seconds for all processes to terminate
  6. Download Logs
  7. Attach the ZIP it presents you.

Sorry but I cannot diagnose what I can’t see. :man_shrugging:

Thank you for taking time to help me

here is the log, started playing “Le Nom de la rose (1986)” wich is HEVC 4:2:0 supported by the quadro P400 according to the matrix

according to the log, there are libcuda.so.1 errors, are those the culprits?

regards

PMStruncated.log (274.3 KB)

Turns out this was the culprit, documentation tells about installing current nvidia drivers but installing cuda is also needed (debian package required is libnvidia-encode1)

apt install -t buster-backports nvidia-driver firmware-misc-nonfree libnvidia-encode1 nvidia-smi

did the job for my debian system, I now get HW encoding,
thank you for the kind support

happy :slight_smile:

1 Like

@qube001

Sorry. just waking up here.
Glad you figured it out

I have been having this problem for a few months now.Plex Media Server Logs_2021-01-31_02-28-23.zip (1.7 MB)

[root@nas Logs]# nvidia-smi 
Sun Jan 31 02:30:42 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.39       Driver Version: 460.39       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro P4000        Off  | 00000000:02:00.0 Off |                  N/A |
| 46%   39C    P8     5W / 105W |      2MiB /  8119MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
[root@nas Logs]# lspci|grep -i nvidia
02:00.0 VGA compatible controller: NVIDIA Corporation GP104GL [Quadro P4000] (rev a1)
02:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
[root@nas Logs]# uname -a
Linux nas 5.10.7-100.fc32.x86_64 #1 SMP Tue Jan 12 20:25:28 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@nas Logs]# modinfo nvidia
filename:       /lib/modules/5.10.7-100.fc32.x86_64/kernel/drivers/video/nvidia.ko
alias:          char-major-195-*
version:        460.39
supported:      external
license:        NVIDIA
srcversion:     88778FD9C7BD9CA16708044
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
depends:        
retpoline:      Y
name:           nvidia
vermagic:       5.10.7-100.fc32.x86_64 SMP mod_unload 
parm:           NvSwitchRegDwords:NvSwitch regkey (charp)
parm:           NvSwitchBlacklist:NvSwitchBlacklist=uuid[,uuid...] (charp)
parm:           nv_cap_enable_devfs:Enable (1) or disable (0) nv-caps devfs support. Default: 1 (int)
parm:           NVreg_ResmanDebugLevel:int
parm:           NVreg_RmLogonRC:int
parm:           NVreg_ModifyDeviceFiles:int
parm:           NVreg_DeviceFileUID:int
parm:           NVreg_DeviceFileGID:int
parm:           NVreg_DeviceFileMode:int
parm:           NVreg_InitializeSystemMemoryAllocations:int
parm:           NVreg_UsePageAttributeTable:int
parm:           NVreg_RegisterForACPIEvents:int
parm:           NVreg_EnablePCIeGen3:int
parm:           NVreg_EnableMSI:int
parm:           NVreg_TCEBypassMode:int
parm:           NVreg_EnableStreamMemOPs:int
parm:           NVreg_EnableBacklightHandler:int
parm:           NVreg_RestrictProfilingToAdminUsers:int
parm:           NVreg_PreserveVideoMemoryAllocations:int
parm:           NVreg_EnableS0ixPowerManagement:int
parm:           NVreg_S0ixPowerManagementVideoMemoryThreshold:int
parm:           NVreg_DynamicPowerManagement:int
parm:           NVreg_DynamicPowerManagementVideoMemoryThreshold:int
parm:           NVreg_EnableUserNUMAManagement:int
parm:           NVreg_MemoryPoolSize:int
parm:           NVreg_KMallocHeapMaxSize:int
parm:           NVreg_VMallocHeapMaxSize:int
parm:           NVreg_IgnoreMMIOCheck:int
parm:           NVreg_NvLinkDisable:int
parm:           NVreg_EnablePCIERelaxedOrderingMode:int
parm:           NVreg_RegisterPCIDriver:int
parm:           NVreg_RegistryDwords:charp
parm:           NVreg_RegistryDwordsPerDevice:charp
parm:           NVreg_RmMsg:charp
parm:           NVreg_GpuBlacklist:charp
parm:           NVreg_TemporaryFilePath:charp
[root@nas Logs]# rpm -qa|grep -i plexmedia
plexmediaserver-1.21.2.3943-a91458577.x86_64

I think I may have a hunch.

Do any of you guys happen to have server level motherboards? Meaning, do they have an IPMI device? Specifically Supermicro? If you do an lspci|grep -i aspeed does anything show up?

I have a hunch that for remote video for IPMI (iDrac/iLO/XCC/Supermicro) the kernel loads a small driver through a passthrough VGA controller to provide video to an IPMI device.

Thus, we have a video card showing up that isn’t really a video card, and Plex may be trying to use it instead of nVidia.

1 Like

@adambahe

there is an easy way to check & resolve that if true.

  1. ls -la /dev/dri
  2. If there are multiple entries then the kernel is seeing multiple devices
  3. If there is one on the motherboard, it is most likely to be renderD128 since the i915 is initialized first in QSV-capable CPUs
  4. Nvidia cards will be next to add; e.g. renderD129 , etc.

If this is what you see, add the preference to select the card you wish to use in Preferences.xml at the end of the preferences string before the final closing />

HardwareDevicePath="/dev/dri/renderD129"

Also make certain the Nvidia drivers are installed and current plus that the card is listed in the Nvidia Decode and Encode matrix for the particular codec you wish it to process.

2 Likes

I’d like to point the device path to the PCIE address like so:

[root@nas by-path]# ls -ltrha
total 0
lrwxrwxrwx 1 root root 13 Jan 31 02:08 pci-0000:02:00.0-render → 
/renderD128
lrwxrwxrwx 1 root root 8 Jan 31 02:08 pci-0000:02:00.0-card → 
/card1

Can I point it to /dev/dri/by-path/pci-0000:02:00.0-render ?

Or should I point it to -card?

Point to it in /dev/dri/renderD128.

It’s not looking for the ‘card’. It’s looking for the rendering device and how it presents itself.