How to choose NVENC over Quicksync when both are available? [Hardware Transcoding]

Linux Ubuntu 20.04
azus z270e mobo
Intel i7 7700k
Nvidia GTX 1070
Plex Pass Activated

So right now my system is using quicksync and i can confirm by looking into the Sessions XML file.
Is there a way to choose NVENC over?

Over weekends when i travel and overnight i like to put my processor to use 20% of its maximum potencial (and save on energy bill) but this is bad when people try to watch stuff and quicksync kicks in. Would like to use my gtx 1070 when needed. Thank you very much.

BTW: my motherboard does not have a option to DISABLE the onboard vga. It only gives me a option to prefeer PCI over.

Stop Plex.

In your Preferences.xml,
add HardwareDevicePath="/dev/xxxxxxxxx" before the closing />

Start Plex.

thank you.

in /dev/dri i have card0 and renderD128
neither HardwareDevicePath="/dev/dri/renderD128" and /card0 seems to work.
Disabled plex, edited the Preferences.xml, started plex, same behavior

If you have multiple rendering devices (the CPU’s ASIC and a Nvidia card), you’ll need to confirm which is which.

In most cases, the CPU ASIC is created first @ /dev/dri/renderD128 which
puts the Nvidia at /dev/dri/renderD129 after its drivers are loaded.

Your Nvidia control software should be able to tell you which inode it is at.

Looked everywhere on the Nvidia X Server Settings, unable to found anything related to renderD128, inode, card0…

also, inside /dv/dri i have:

 in /dev/dri  
❯ ls -al
total 0
drwxr-xr-x   3 root root        100 set 19 13:21 .
drwxr-xr-x  21 root root       4940 set 19 13:43 ..
drwxr-xr-x   2 root root         80 set 19 13:21 by-path
crw-rw----+  1 root video  226,   0 set 19 13:21 card0
crw-rw----+  1 root render 226, 128 set 19 13:21 renderD128

no renderD129

and by stopping plex, edditing the Preference.xml and adding the HardwareDevicePath="/dev/renderD128" neither /dev/dri/card0 worked

read a lot of topics and usually is always you who help people, nice and thanks for that.
found that someone could only do this by deleting some folder and stuff, but i would very much like to do the right way.

can you point out what am i doping wrong?

If you do not see renderD129 then the card isn’t working / incorrect drivers / disabled by BIOS/firmware setting.

The ASIC in the i7-7700 is, by default, renderD128 because the kernel finds it first during initialization.

Through the sequence:

  1. Nvidia drivers, version higher than 418.30 , installed?
  2. Not disabled by the motherboard?
  3. sudo lspci should find the card. If not there then the kernel isn’t seeing it.

It is unlikely that NVENC transcoding uses less power than Quick Sync. The general consensus is that Quick Sync is lower power.

Except possibly at LARGE scale, I would expect NVENC transcoding to require more power. When using NVENC the CPU is still involved in many ways. Using an add-in card will require more data to be pumped to more places, maintained in memory in more places, all using power.

Usually allowing a CPU to operate at full speed when needed, and to throttle down to lowest speeds & states when not needed, is the best way to reduce total power consumption. If you only limit the maximum speed, you may not be reducing overall power consumption at all. A lot of modern processor power management is designed around “race to done” or “race to sleep”. There’s a certain amount of waste whenever a CPU/GPU processor core is active at all, so it’s better to get the job done fast and then turn the core back off.

One older example -

A look at hardware video transcoding on the PC - The Tech Report

@mastercoy

Supplemental

Addendum - The path specified was incorrect.

/dev/renderD128

The default , and correct, path is:

/dev/dri/renderD128

PMS will always look for /dev/dri/renderD128 unless instructed to otherwise in Preferences.xml which, in this case, was incorrect.