I’m running Plex Server on Ubuntu 23.10 and using the Intel Arc Drivers. Plex sees the device and in settings I tell it to use it for hardware transcoding. All my AV1 files are in MKV format. When I look at my GPU status during testing playing an AV1 file on my iPhone 15, it transcodes using my CPU instead of the Arc card. Any ideas why? When I do this same test on a x264 file and tell it to force transcode… it says it’s using HW transcoding. Any ideas why it wouldn’t be using the Arc card for transcoding AV1 files when needed? Thanks!
I literally just upgraded it to 23.10 this morning because it stopped working for me in 22.04 and I was thinking 23.10 would fix it Can you let me know what driver you are using? Did you just use the one from Ubuntu or did you follow the driver install here? 3.1. Overview — Intel® software for general purpose GPU capabilities documentation
If you installed with the Intel directions, did you also install the optional stuff or just up to 3.1.3? Thank you for responding!
AFAIK you need Intel’s drivers as you linked.
The 3.1.2 repository and the first snippet out of 3.1.3 is my understanding all that is necessary. But I also do 3.1.4 for ■■■■■ and giggles.
:~$ sudo apt update
...snip...
Hit:11 https://repositories.intel.com/gpu/ubuntu jammy InRelease
...snip...
:~$ sudo apt install -y \
intel-opencl-icd intel-level-zero-gpu level-zero \
intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 \
libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers \
mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo hwinfo clinfo
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
clinfo is already the newest version (3.0.21.02.21-1).
hwinfo is already the newest version (21.72-1).
intel-level-zero-gpu is already the newest version (1.3.28202.51-821~22.04).
intel-media-va-driver-non-free is already the newest version (23.4.3-804~22.04).
intel-opencl-icd is already the newest version (23.52.28202.51-821~22.04).
level-zero is already the newest version (1.16.14-821~22.04).
libegl-mesa0 is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
libegl1-mesa is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
libegl1-mesa-dev is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
libgbm1 is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
libgl1-mesa-dev is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
libgl1-mesa-dri is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
libglapi-mesa is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
libgles2-mesa-dev is already the newest version (24.0.0.20231114.1-2088~22.04).
libglx-mesa0 is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
libigdgmm12 is already the newest version (22.3.16-804~22.04).
libmfx1 is already the newest version (23.2.2-799~22.04).
libmfxgen1 is already the newest version (23.4.3-799~22.04).
libvpl2 is already the newest version (2023.4.0.0-799~22.04).
libxatracker2 is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
mesa-va-drivers is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
mesa-vdpau-drivers is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
mesa-vulkan-drivers is already the newest version (24.1.0-devel.dg2-20240118-2102~22.04).
va-driver-all is already the newest version (2.20.0.2-76~u22.04).
vainfo is already the newest version (2.20.1.2-1~u22.04).
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
I did the sample file and it still transcoded it with my CPU. I also saw that there was a new Server update so I went ahead and installed it. Check this out, it’s not even seeing my card! Ugh! So frustrating
PlexMediaServer install: PlexMediaServer-1.40.2.8395-c67dce28e - Installation starting.
PlexMediaServer install:
PlexMediaServer install: Now installing based on:
PlexMediaServer install: Installation Type: Update
PlexMediaServer install: Process Control: systemd
PlexMediaServer install: Plex User: plex
PlexMediaServer install: Plex Group: plex
PlexMediaServer install: Video Group: render
PlexMediaServer install: Metadata Dir: /var/lib/plexmediaserver/Library/Application Support
PlexMediaServer install: Temp Directory: /mnt/4tb/transcode (set in Preferences.xml)
PlexMediaServer install: Lang Encoding: en_US.UTF-8
PlexMediaServer install: Processor: AMD Ryzen 7 5800X 8-Core Processor
PlexMediaServer install: Intel i915 Hardware: Not found
PlexMediaServer install: Nvidia GPU card: Not Found
But running this command shows the driver is being used?
lspci -k | grep -EA3 ‘VGA|3D|Display’
0b:00.0 VGA compatible controller: Intel Corporation DG2 [Arc A380] (rev 05)
Subsystem: ASRock Incorporation DG2 [Arc A380]
Kernel driver in use: i915
Kernel modules: i915, xe
It’s probably time to look at some server logs; before reproducing the problem and collecting the logs, please ensure Debug logging is enabled and Verbose logging is disabled in the server’s general settings: Settings → [Server Name} → General → Show Advanced.
Also, it would be interesting to see the output of this command; it will display all kernel messages from the i915 and xe modules. sudo dmesg | egrep -i "(\s+i915\s+|\s+xe\s+)"
In particular, I’m curious if the GuC and HuC firmware is being loaded properly, which is required for proper operation of low power encoding bitrate control (see Known Issues and Limitations on the Intel Media Driver GitHub page).
You can also try this command to find what the transcoder finds for RC modes supported by the driver (assumes the Plex data folder is in the default location): egrep "(CBR|VBR)" /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Logs/Plex\ Media\ Server*
It should output something similar to the following:
Aside from the warning about the GuC firmware version everything looks as I’d expect in a working system. You can grab the dg2_guc_70.bin file from the link in the log if you want to try the latest version. It should live in /lib/firmware/i915 (back up the existing file first). Distributions are sometimes behind on firmware versions, so it wouldn’t hurt to try it.
The RC modes listed from your server log look fine as well. You might need to post the full set of logs to see if they show why it’s falling back to software transcoding.
Thanks for replying. I updated the guc file from the website it told me but it’s still saying it’s the older version, oh well. I’m also attaching the server logs hoping you can spot something Plex Media Server Logs_2024-04-20_22-12-09.zip (4.8 MB)
It looks like it might be failing due to an OpenCL problem (used for hardware accelerated HDR tone mapping):
Apr 20, 2024 22:01:01.709 [124543653915448] ERROR - [Req#b01/Transcode/A9AEDEFC-1A9D-426A-BD40-161F93FD3312/8383a71b-a648-4409-a3b3-a63bf0226106] [AVHWDeviceContext @ 0x774bf78d1b00] Failed to get number of OpenCL platforms: -1001.
Do you have HDR tone mapping enabled in your server’s transcoder settings? If so, try disabling that and see if HW acceleration of AV1 works then.
[Edit]
If it ends up working with HDR tone mapping off, here’s another thread to follow which discusses that particular problem (HW accelerated transcoding failing when HDR tone mapping is enabled):