No hardware transcoding in Ubuntu server

IMHO, you should stay on the 20.04 LTS.
I tried 20.10 “groovy” but there are less kernels available compared to the 20.04 LTS, and you can’t install Intel’s media runtime packages.

I don’t know if your issues are related to mine (you have 10th gen CPU, I have 11th gen), but you can try to install the OEM “edge” kernel (5.10 based) and Intel’s runtime packages

Folks?

Please don’t start making assumptions about which version to (re) install.

Please allow me to complete diagnosis.

When done, I will add whatever is needed to the .deb installer.

My current understanding, which needs confirming, is (given what I’ve just learned from Engineering):

  1. Intel -7xxx → -9xxx CPUs get one set of packages.
  2. Intel -10xxx gets a different package

The Linux kernel is fine. No need to go jumping around without first conducting the research

I tested the build ( plexmediaserver_1.21.1.3830-6c22540d5_amd64.deb ). I did not notice anything different. This one shows “(hw)” on the 1080p blu-ray remux when transcoding to 720p. And, just like the latest built, it does not show “(hw)” on the 4k blu-ray remux with the Tone Mapping setting on. However, when I disable Tone Mapping, then the “(hw)” text appears. (I am not sure if this is different than the latest build, because I never tested the 4k remux transcode to 1080p with the Tone Mapping setting off — I had always left it on.)

In my previous comment, I mentioned the “latest” build. When I stated that, I was referring to the original installation I mentioned in the original post. I was unaware that since there was a release today, it was no longer the “latest” build. :smiley:

So I’ve installed the latest build (PlexMediaServer-1.22.0.4136-3ca7898f3) and seeing the same behavior: all transcodes are showing “(hw)”, except 4k remuxed HDR content when Tone Mapping is on – that continues to not show “(hw)”.

@edified

I am writing a packaging update now.

There is a lot of work involved.

I need to differentiate betwen Intel Core processors 4xxx → 9xxx and 10xxx +
There are different dependencies which I need test for.

I’ve written about 1/2 of the new logic. I hope tomorrow to finish first pass of it.
If you and other CometLake owners are interested, I’m willing to create a Developer’s Preview thread so we can finalize it works as it should.

This is a significant effort because I’m now being selective about which CPU is installed and if it’s HW transcoding capable.

There are a lot of details (whether packages are installed or not) to keep track of.
It isn’t complex but, as we call it, “detail rich” and I need make certain not to miss any.

The preview thread will allow us to test , debug & refine if needed, then finalize the update.

1 Like

@ChuckPA, I’ve got hardware on order to build a new server, based on an I9-10900F CPU. I’ll probably be running it on OpenSuSE (due to utter dislike for what’s happened w/ CentOS.) Are you interested in a guinea pig for that environment, this is a perfect opportunity to tinker.

1 Like

It sounds like you’ve definitely isolated the problem. I’m quite happy that you’ve ironed that out. Thank you very much.

I am interested in trying out a dev build. I’d like to know when you’ve posted the thread. Thanks.

@JKalchik

Sounds great! Yes, we can tinker. – soon as I figure out this D%$^* package LOL

I thought I had a proper solution until I realized there are Xeon CPUs with this capability which also must be supported.

What I’m trying to achieve is meaningful tests in preinstall and accurate output for you to know the status / what needs to be done (e.g. add packages/drivers).

Intel’s lack of a clear numbering scheme on Xeon CPUs scuttled all the nice work I have for Intel Core cpus

@ChuckPa isnt there another thread which says that installing the intel drivers is a workaround ? Is this a different issue?
Thanks for looking into this.

@DFYDCK

What is your issue with Hardware Transcoding? Do you have a -10xxx CPU (CometLake) ?

Yes. I do. And the same issue as above. Quicksync doesnt work with 4k HDR with tone mapping on. (CPU hovering at 60%).
10th Gen Intel® Core™ i5-10400 processor(6-Core 12M Cache 2.9GHz to 4.3GHz)

1 Like

@DFYDCK

Here’s where we’re at with the Intel Compute Runtime.

At the bottom of this page are the Intel packages in their current state (production)

you want to download and install:

intel-gmmlib_20.2.4_amd64.deb109 KB

intel-igc-core_1.0.4879_amd64.deb18.1 MB

intel-igc-opencl_1.0.4879_amd64.deb27.2 MB

intel-opencl_20.36.17813_amd64.deb1010 KB

@ChuckPA, I’ve got a basic server set up, I9-10900 and a GTX 1650 running on OpenSuSE. Let me know if I can be of assistance. I’m still running on the other server (probably will be for at least a couple of weeks yet,) so we have at least a little time.

I’ve created a new thread for us to work in.

You guys are amazing. Was just poking through my own, I also noticed (for the very first time) that my results suggest Intel QSV Hardware: Not found after updating to latest (beta channel) version, via lifetime PlexPass.

Here’s results of my plexinstaller.log file:

# Plex Media Server installation configuration info:  Wed 31 Mar 2021 02:36:05 PM EDT
Init=0
Systemd=1
Custom=0
LinuxContainer=0
NewInstall=0
HaveOverride=0
OverrideFile=""
PlexUser="plex"
PlexGroup="plex"
VideoGroup="video"
AppSuppDir="/var/lib/plexmediaserver/Library/Application Support"
PlexTempDir="/tmp"
LangEncoding="en_US.UTF-8"
ExistingVersion=12201
HaveHardware=0
HaveTranscoderPref=0
NeedUser=0
NeedGroup=0
NeedVideo=0
Verbose=1
Running=1
Errors=0
Warnings=0
Havei915=0
HaveNvidia=0
HaveBeignet=1
HaveOpenCL=1
Platform="Virtual Machine"
Processor="Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz"
Distro="Ubuntu 20.04.2 LTS"
Kernel="Linux pnix 5.4.0-70-generic #78-Ubuntu SMP Fri Mar 19 13:29:52 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux"
Memory="3935 2141 568"

I will follow your new thread, but didn’t want to clutter things up just yet with my own mess.

@peatrick

May I see the logs which capture it not engaging ? (ZIP file)

I develop on an i7-7700 and i7-8809g

Take a look here. You can do this on your system

  # Is there an Intel i915 present (possible QSV capability)
  [ "$(echo /sys/module/i915/drivers/pci:i915/*:*:*.*)" != "/sys/module/i915/drivers/pci:i915/*:*:*.*" ] && Havei915=1

I think you’ll find the GPU / i915 isn’t passed into the VM

1 Like

This sounds EXACTLY correct. I’m running a little type2 Ubuntu Server VM under Win10 Pro, do not have any GPU passed through. Unsure exactly what the i915 is, perhaps mobile chipset? The 1080 Ti needs to stay with my Winblows machine for gaming purposes, but perhaps I could consider passing through the intel onboard UHD630, hrmm. I won’t waste any more of your precious time poking through my logs (unless they are genuinely helpful to you, i’m happy to spin up whatever tests that may help), you immediately were able to identify the problem. Thank you for sharing your big brain with me, sir.

Apparently I have misunderstood the capabilities of my hardware here. Mostly work around this by encouraging end-user devices to Direct Play / Direct Stream media – guess that’ll have to suffice for now. I have a bunch of really old nVidia Quadro (2000, i think) but unsure if this ancient hardware is even supported, or worthwhile to set up if i were to migrate my Plex VM to an ESXi host. Thanks again, Chuck. Stay safe, sir.

Now I understand more.

  1. Windows isn’t going to let you pass through the i915, which is needed to access the UHD630, AND keep the display output running.
  2. The i915 (which is a chip inside the CPU), is primary interface to the chip’s GPU and QSV ASIC.
  3. This same issue occurs in all VMs. I run ESXi and , in order to use QSV, I must disable the HDMI output because the i915 & GPU for display get assigned as a pair by the display driver which precludes pairing the i915 & UHD630 ASIC.

If you had an Nvidia card, you could pass it and be done.

1 Like

I have a 1080 Ti in this Windows 10 box, but i use it for gaming, so can’t really devote it to Plex. The other options are to migrate (or rebuild) my Plex VM on the ESXi host, which has 3 Quadro 2000 GPUs. Despite their age, would this still be suitable for basic transcoding purposes?

Thank you immensely for holding my hand and taking the time to describe exactly what the i915 chip is, as well as its primary function. Guess i need to make sure the old Xeons (single E5-1620 & dual E5-2665, both v1) actually support QSV before i get too far ahead of myself. Cannot begin to thank you enough for the supremely helpful information and prompt response(s).

EDIT: it’s a fairly old card → https://www.nvidia.com/content/dam/en-zz/Solutions/design-visualization/quadro-product-literature/NV_DS_QUADRO_2000_US_LR.pdf

Plex uses this list:

You would need make certain the appropriate Nvidia drivers are installed.

1 Like