PMS 1.32.6+ HW transcoding issues and corrections

I have multiple VMs that others are using that need a bare minimum gpu. It works fine for them in the same configuration, they just aren’t using Plex. And the thing is it is working for transcoding, just not with HDR content. Normally I would chalk it up to setup issues but multiple people in this thread have the same device not found error.

Ultimately if you guys don’t support the config then all good, just wanted to post my results here

OK… you have VMs which need GPUs. Now I understand. Thanks.

I think you’ll still be better served here with PMS native on the host. Let the VMs do their thing with the minimal GPU while PMS has full GPU on the real host.

This isn’t that we don’t want to support it, we can’t support it at least right now.
There have been a lot of internal changes and to add full support for the entire layer plus modify the intel media driver is a big task we have to plan out.

We can see that QSV is working where OpenCL needs the work .

If you have SDR or 1080p, and that’s sufficient, maybe?
Have you tried turning off HDR tone mapping ?

Supplemental:

Have you seen this?

https://open-iov.org/index.php/GPU_Support

Yeah turning off HDR tone mapping works perfectly, which is the most frustrating part haha. The issue is a large portion of my library is 4k HDR. I was inclined to think it was a Plex issue because of this, but now I’m not so sure its just Plex. And I have not seen that supplemental, that’s good to know. So you think I should just get some kind of baremetal setup going?

It would be a PITA but worth it for the Plex support.

Before abandoning the VM completely, I’d setup one library section and test on the bare host. (turn off all the fancy options). Plex is well behaved on the bare host (I wrote the packaging)

I do think, having found that page and current status on where SR-IOV is, and the issues which will occur with TigerLake (-10xxx) CPUs, there is a chunk of work to do both before we can start and then when we start. true?

Definitely seems that way. And will do on both fronts, it’ll take me a little while but once I’m finished with other stuff I can get on that. Will report back here if so, good datapoint for other people in a similar scenario (no matter how few they are lol)

Luckily it does seem that OMV 6 baremetal supports KVMs so I may be able to make do w/out proxmox

Thank you for being patient with me and working with me.

I now have a better understanding where this all stands and what we face (size of task)

1 Like

have you been running this all on proxmox ???

Yes; proxmox is the hypervisor. Plex is then running on a virtualized OMV installation as a docker container

I realize now that the proxmox layer may have been unnecessary, as it caused me to use sr-iov for the omv container

All stop. We do not support ProxMox. Yes, we try to help but it is not an officially supported platform.

When we state Ubuntu/Debian, Redhat/Fedora - these are the BARE METAL installations.

Now it’s abundantly clear why things don’t work.

Good to know. In that case I’ll just use a docker container on plain debian (omv)

I will test the baremetal later this evening before I wipe everything however

FYI… OMV isn’t officially supported either but I think you’ll find it less restrictive :slight_smile:

Please do give bare metal a try.

-OR-- (which I do here for EVERYTHING)

  1. Ubuntu server bare metal host os
  2. LXD / LXC
  3. Guest LXC containers
  4. Full PMS hardware transcoding & tonemapping in EVERY container simultaneously – No extra drivers required.
2 Likes

I’ll share my scripts with you if you need the magic to make Plex work in LXCs on bare metal.

That would be great if you don’t mind

Add-GPU

Feel free to add another argument for the GPU name :slight_smile:

[chuck@lizum plexqa.2001]$ cat Add-GPU 

#
# Argument #1 is LXC container to add

[ -z "$1" ] && "Error: missing container name" && exit 1

if [ "$(lxc list | grep "$1")" == "" ]; then
  echo "Error: Unknown container name '$1'"
  exit 2
fi

# Make certain /dev/dri/renderD128 exists
if [ ! -e /dev/dri/renderD128 ]; then
  echo Error:  This host does not have hardware transcoding ability /dev/dri/renderD128
  exit 3
fi

Gid="$(stat -c %g /dev/dri/renderD128)"

# Add it
 lxc config device add "$1" gpu gpu gid=$Gid
[chuck@lizum plexqa.2002]$
1 Like