FreeBSD 12 Hardware transcoding

Server Version#: 1.14.0.5470
Player Version#: 3.79.0

  • So I’ve upgraded to FreeBSD 12
  • built the graphics/drm-fbsd12.0-kmod port, (as the drm-next-kmod package tells the user that it’s moved to the above)
  • added kld_list="/boot/modules/i915kms.ko" to rc.conf (as i have an intel cpu)
  • added plex user to the video group
  • enabled hw transcoding in plex.

Yet it’s not using hardware transcoding…

I’m verifying this by looking at the cpu usage, and also Tauttulli, and Plex itself…

What am I doing wrong?

Not sure if you need that step, I think its default if found but not 100% sure…

In any case if you did this and enabled Hardware Transcoding in plex it should work can you upload a PMS log or DM it to me? The log should say why it preferred Software Trascoding

Also that port is available as a package (you can install with pkg install… ) Or a least that was the case last time I tried.

so running pkg info -D drm-fbsd12.0-kmod it tells me to add to /etc/rc.conf

For Intel: kld_list="/boot/modules/i915kms.ko"

i installed drm-fbsd12.0-kmod from ports graphics/drm-fbsd12.0-kmod

$ sudo portmaster graphics/drm-fbsd12.0-kmod

if i do drm-next-kmod tells me that it’s been moved to the above.

Also yes I enabled hardware transcoding in the options, and i’ll DM you my logs

silly questions, but did you actually load the module or reboot, and is your gpu(or apu) on the supported list?

Not a silly question.

But I loaded it by adding it to rc.local. Is there more I need to do?

Also it’s an i7-8700 so yes I think it’s on the supported list. Or am I wrong here?

Yeah that chip is supported, but when you install the port. That’s all you do is install the port, it doesn’t get used until you load the kernel module with kldload or reboot after adding config lines.

I’ve rebooted a few time.

does kldstat show the module loaded, and do you see the relevant info in /var/run/dmesg.boot , dmesg, and /var/log/messages?

linker_load_file: /boot/modules/i915kms.ko - unsupported file type
KLD i915kms.ko: depends on kernel - not available or version mismatch
linker_load_file: /boot/modules/i915kms.ko - unsupported file type

obviously kldstat doesn’t show it loaded,

your kernel and ports/pkg are out of sync. if you compile your own kernel you really should compile any kernel modules you use from ports, or stick with the default kernel provided by bsdupdate or whatever it’s called and pkgs. if you build kernels, always rebuild kernel ports at the same time. there are flags to force kernel modules to build if so needed, but they’re not set by default.

i updated from 11 to 12 using freebsd-update upgrade -r 12.0-RELEASE

what have i missed

if you’re running the default kernel and don’t plan on building a new one, uninstall that port, and pkg install it. if for some reason you need to build a kernel, update source and ports - install new kernel, then install from ports.

you might be fine with just running pkg install as it should delete the conflicting one, then kldload it and check kldstat.

ahh!! that worked, ok so i always use ports, but when i used the pkg version of drm-next-kmod it loaded.

it’s rebooting now lets see if that fixed it

in that case you build the module which uses newer kernel source that what is running so there will be times when it won’t be able to load, also times when it could cause you to crash.

looks good on a reload, but still not using hardware transcoding

yeah but now you’ll actually have the /dev/dri bits and can find out why :wink:

Dec 18, 2018 06:53:19.237 [0x80dc4b000] DEBUG - Codecs: hardware transcoding: testing API vaapi
Dec 18, 2018 06:53:19.237 [0x80dc4b000] ERROR - [FFMPEG] - No VA display found for device: /dev/dri/renderD128.

looks like a different problem now