Got HW Transcoding to work with libva/vaapi on Ryzen APU (Ryzen 7 4700U)

using your updated image I can also confirm that the color flashes are gone and hw transcoding works normal on Ryzen 5900HX with integrated Vega 8 graphics.

@hexeth you think you can build a mod for the lsio image? would love to verify that it works and use an image thats maintained

Isnt the Vega8 integrated graphics on the 5900HX a Zen 3 APU?`
mauimauers new image works fine for me without artifacts and with hw transcoding working correctly (dashboard shows hw transcoding and cpu usage is below 10% which comes from other apps running on the box)

Hi @mauimauer, this update broke hardware transcoding for me on Unraid 6.9.2. Currently have a 5700G and it worked fine earlier. I’m thinking it might have to do with the older version of unraid but can anyone else confirm? Thanks!

I only tested it a little bit but I think it works on Unraid 6.11.1 and a 5600G.

Working for me too on Unraid 6.11.1 with 5700G

Yeah I might have to delete the container and also update my Unraid. Thanks for the info @Exomer & @V1P_J0K3R

unraid 6.11, amd 4650G works fine. thank you

Working on Ryzen 5600G without issue!

Amazing thanks

Hello guys,

Would be nice to get a fix for Ubuntu 22.04.1 as well, got the drivers and iGPU is ready but my Ubuntu is not using it for Plex.

coming back to this… can you create an lsio mod for this?

Since making the docker container, I switched to a proxmox cluster, and no longer run Plex in a docker environment.

It seems to me though that you could just use the custom-cont-init.d bind with a bash script that copies the files over. All the required files are listed in the docker file

I tried building and running that Dockerfile locally and prevented plex from updating but I still get artifacts after enabling hw transcoding.

@mauimauer
I would love to take these modifications and create an image layer that can be used as “mod” ( GitHub - linuxserver/docker-mods: Documentation and Examples of base container modifications )for the plex image linuxserver.io so me and others can enjoy a maintained and updated version of plex.
Unfortunately I am not sure what could be “missing” as your Dockerfile is building it from scratch while I just need the modifications needed for an existing plex deployment to serve an image layer.

If anyone else knows, please chime in and I will try to get this in as a mod for the plex lsio image…

The issue is that the linuxserver container still has Mesa 22.0.5 I’m guessing. I don’t think they have backported the fix from 22.2. That’s because 22.0.5 is what Ubuntu 22.04 provides. I’m not really sure how to get them on the latest version of Mesa or if you could even do that through a plugin.

its not really a plugin…
it should work as long as I know how to “upgrade” the mesa

root@plex:/# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can’t connect to X server!
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 22.4.0-devel for AMD Radeon Graphics (renoir, LLVM 14.0.6, DRM 3.42, 5.15.0-46-generic)
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

seems Mesa 22.4 even but older driver version?

This shows how to use the oibaf mesa updates.

1 Like

those are already installed, its part of what hexeth posted
mesa is 22.4 as you can see above but the “vainfo: VA-API version: 1.14 (libva 2.12.0)”
is one version behind

Oh, interesting. I didn’t look in hexeth’s container, I was looking in the linuxserver.io container.

he forked it from a project that uses lsio as base and then adds the necessary drivers but it has artifacts
now judging from vainfo i could try updating the VA-API version from 2.12 to 2.15 but I dont know how yet :stuck_out_tongue:

the oibaf PPA has libva but it doesn’t have a backport to 22.04. For testing purposes, you could try updating the Ubuntu in the container to 22.10 Kinetic which has 2.16 in the oibaf PPA.