simply upgrading to 22.10 and using the newest versions it runs but hw transcoding no longer works (meaning its simply cpu decoded only)
I assume thats because some files got overwritten ^^
would love to get this working on lsio image but actually on any image that is maintained where I can have recent versions of plex always, preferably plexpass versions
Same, I have simply avoided hw transcoding on my 5700G system for the time being because I don’t want to have to micromanage it. Someone was transcoding something the other day using 35% of my CPU by themselves.
I have a similar CPU performance and APU wise
5900HX it works fine with mauimauers image but it rarely gets updated and I dont want to switch back and forth between images, need something that build automatically and there is a big team behind lsio so once a mod would be created…
Agreed, but I wonder if a mod is possible? Can you have a mod that changes the underlying OS in the lsio images? I know you can add libraries and stuff, but if you needed it to move to 22.10 for example I’m not sure that’s possible.
Another approach could be to ask the LSIO folks to support the latest VA API by using newer images…
one thing is possible, another thing would be if it makes sense…
but first of all it needs to be working before I could ask them to upgrade the underlying OS
I would mess with it I’m just not sure of an easy way to test it out. I think looking at hexeth’s Dockerfile what I would do is add the upgrade to 22.10 to the Dockerfile before he copies in all the libs from the amd container.
can you do that in the dockerfile?
Apparently it’s much harder than I was thinking to do that
This is going to be really tricky to test because even lsio doesn’t start from official images which is a bummer IMO. You’d have to start from GitHub - linuxserver/docker-baseimage-ubuntu and build a kinetic version of this image (by pulling the kinetic base image in the build step of the Dockerfile). Then you’d have to take the lsio plex image from GitHub - linuxserver/docker-plex and base it on your customized base image from above and add the amd pieces from hexeth’s image to it and copy them into the image it’s producing. Then you could test if that actually works.
So far LSIO has only used LTS versions of Ubuntu, though, so I don’t see them realistically messing with upgrading for this. It also makes it a not very good base for an image that supports AMD hardware transcoding, probably not until 2024 (unless someone cherry picks the code revert in Mesa back to the Ubuntu version, but you’re suggesting that there may be fixes in other libraries that are required to eliminate the artifacting).
well, thats the only higher version i see in the vainfo output…
could be something else but thats what I figured to try next but seems to be more complex ^^
You could instead try to build your own plex image off the official 22.10 base image, and add the amd stuff from hexeth’s container and copy it in. It might at least allow you to test out if it would work.
easier said than done…
seems to need different packages as some dont exist, etc.
and even if it would work I dont think lsio would consider changing their base image from lts for a “mod” as the image itself works fine and even works with hw acceleration, just not with amd
ok, did that but the after building the container just keeps restarting… not worth the effort with my knowledge level about this ![]()
Thanks for trying, it seems like if it works like that, Plex should try to support it as AMD is a way better value proposition than Intel anyways and it would make sense to support the worlds fastest iGpus which AMD handily takes the crown for.
no problem…
now it seems lsio images wont work until they switch to the next lts version which is likely going to take a long while…
@mauimauer any chance you could automate to keep this image “maintained” with updates to Plex?
@hexeth
Do you, by any chance, run Plex with HW transcoding in a LXC container?
If so, I’d be interested on some details. ![]()
I never got it working with the recent versions of Plex…
Yes, I do have it running. I used the Proxmox helper script as my base, changed the container to privileged. I then added this to the to the lxc config on the host:
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
lxc.hook.pre-start: sh -c "chown 0:107 /dev/dri/renderD128"
Following that my memory gets a little murky. This was my first go at proxmox, so there was a lot of learning involved here and I am a bad documenter.
I do remember that I installed the amdgpu drivers, and can see that I have:
deb https://repo.radeon.com/amdgpu/latest/ubuntu focal main
in my sources. Vainfo reads the following:
libva info: VA-API version 1.8.0
libva info: Trying to open /opt/amdgpu/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.8 (libva 2.6.0)
vainfo: Driver version: Mesa Gallium driver 22.3.0-devel for RAVEN (raven, LLVM 15.0.0, DRM 3.42, 5.15.60-2-pve)
vainfo: Supported profile and entrypoints
I may have taken a copy of the files used in my docker build and copied them over to the plexmediaserver folder. I don’t remember if that was part of a successful attempt or failed one. My best guess would be:
Installed all the amdgpu drivers, overwrote files based on work from previous docker builds.
Sorry I can’t be more help.
Edit:
I reviewed my command log, and I definitely am copying a bunch of files that I extracted from a docker container.
cp dri/*.so* /usr/lib/plexmediaserver/lib/dri && cp ld-musl-x86_64.so* /usr/lib/plexmediaserver/lib && cp libdrm*.so* /usr/lib/plexmediaserver/lib && cp libelf*.so* /usr/lib/plexmediaserver/lib && cp libffi*.so* /usr/lib/plexmediaserver/lib && cp libgcc_s*.so* /usr/lib/plexmediaserver/lib && cp libkms*.so* /usr/lib/plexmediaserver/lib && cp libLLVM*.so* /usr/lib/plexmediaserver/lib && cp libstdc++*.so* /usr/lib/plexmediaserver/lib && cp libva*.so* /usr/lib/plexmediaserver/lib && cp libxml2*.so* /usr/lib/plexmediaserver/lib && cp libz*.so.* /usr/lib/plexmediaserver/lib && cp libzstd*.so* /usr/lib/plexmediaserver/lib
I am a bit confused which files are necessary to copy over from which to where, I may have already messed up.
It is hard to pick the needed stuff out of this long haystack thread.
It would be great if you could add the needed steps somewhere in a collected way, maybe steps are different for your both version @mauimauer and @hexeth ?
I enabled debug logging to trace for errors, vaapi is picked and looks good so far, the only error that‘s repeating on transcode is:
[FFMPEG] - Direct mapping disabled: deriving image does not work: 1 (operation failed).
but I can‘t find any info online on this, anyone seen that?
Edit: ok, hw transcoding 1080 to 720 works, but 4k to anything does not, any idea on that?
Edit again: alright, had to disable HDR tine mapping, now hw transcode works.
Any news on getting „full“ HDR support?
Thanks a lot.
Love you, @hexeth ! ![]()
Got it working…
echo 'deb https://repo.radeon.com/amdgpu/latest/ubuntu focal main' >> /etc/apt/sources.list
apt update
apt install mesa-amdgpu-va-drivers
VAInfo says:
error: can't connect to X server!
libva info: VA-API version 1.8.0
libva info: Trying to open /opt/amdgpu/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.8 (libva 2.6.0)
vainfo: Driver version: Mesa Gallium driver 22.3.0-devel for RENOIR (renoir, LLVM 15.0.0, DRM 3.42, 5.15.64-1-pve)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
Then I created a container named plex based on ghcr.io/hexeth/docker-plex-amd:master and copied the files from it.
On docker host I ran:
mkdir plex-files
docker cp plex:/usr/lib/plexmediaserver/lib plex-files/
and then copied the plex-files folder from docker host to the plex lxc container.
Inside the plex lxc container I copied the files you mentioned:
cd plex-files
cp dri/*.so* /usr/lib/plexmediaserver/lib/dri && cp ld-musl-x86_64.so* /usr/lib/plexmediaserver/lib && cp libdrm*.so* /usr/lib/plexmediaserver/lib && cp libelf*.so* /usr/lib/plexmediaserver/lib && cp libffi*.so* /usr/lib/plexmediaserver/lib && cp libgcc_s*.so* /usr/lib/plexmediaserver/lib && cp libkms*.so* /usr/lib/plexmediaserver/lib && cp libLLVM*.so* /usr/lib/plexmediaserver/lib && cp libstdc++*.so* /usr/lib/plexmediaserver/lib && cp libva*.so* /usr/lib/plexmediaserver/lib && cp libxml2*.so* /usr/lib/plexmediaserver/lib && cp libz*.so.* /usr/lib/plexmediaserver/lib && cp libzstd*.so* /usr/lib/plexmediaserver/lib
and after, I restarted the plex service and ran a transcoding test with hw transcoder enabled:

I just updated to the newest version of Unraid (6.11.3) and I updated the docker image & I believe that HDR tone mapping is broken again ![]()
I tried with 1 specific file on an Xbox Series X with it on and off. With HDR tone mapping off it will trigger HW transcoding but not with it on. I believe there was a note back in October 2021 where a similar thing happened. Any advice or questions please let me know.
Yes, i would also say so, and so do others: