Use hardware acceleration when available not working?

Server Version#: 1.13.8.5395
Player Version#: web-client 3.67.1

So I enabled the option on my server “Use hardware acceleration when available”, and restarted the server.

I went to the activity view and tried playing back a whole number of different combination of codec and resolutions from 720p to 4k, with h.264 and HVEC, but no matter what I played back, I never get the (hw) in the activity window. I did make sure I was transcoding, and I did indeed see Transcoding from/to in the activity window, but (hw) was not to bee seen. With out the hardware acceleration working, I struggle with 4k encoding (enabling subtitles i.e.), and have to relay on direct play for any 4k content to work.

My server has a quick sync compatible CPU:
Intel® Xeon® CPU E3-1275 v5


Intel® Quick Sync Video Yes

And running on Ubuntu 18.04

As far as I can understand, it should just be clicking the box (hw) and go, but it doesn’t seem to be the case.

Anyone got a clue as to what the issue could be?

Make sure your iGPU is visible in your OS, e.g. ls /dev/dri/. Also install vainfo and perform sudo vainfo. If it’s not visible check the GPU settings in the UEFI of your motherboard.

1 Like

Make sure your motherboard is using a C236 chipset, the C232 chipset does not support Quicksync.

1 Like

Thank you for the quick replies.

@BobSnot
Regarding the motherboard, it does indeed have C236 chipset:

Output from lshw:
description: Motherboard
product: P10S-E Series
vendor: ASUSTeK COMPUTER INC.
physical id: 0
version: Rev 1.xx

@drmagoo This is a server with no X, so I can’t run vainfo.

Not sure what “iGPU” is, The closest to a GPU on this system is the intel graphics embedded in the Xeon CPU, there is no dedicated graphics card.

Sure you can. sudo vainfo will tell you about the availability of the vaapi endpoints on your system. This IS Plex hardware transcoding on Intel. If sudo vainfo is unable to find support, Plex won’t either. Where did you find the information that vainfo is dependent on X :smile: It uses the DRI (direct rendering interface) to talk to the Linux kernel intel module. Just like the X driver does.

The P10S-E comes with Aspeed AST2400 with 32MB VRAM graphics. It does not support the integrated GPU (iGPU) of your CPU. So no Quick Sync, Linux vaapi, with this system. Sorry.

The P10S-M boards for example support Quick Sync. It’s written in the fact sheets:

yeah, not necessarily true. The AST2400 is just the IPMI iKVM, it can be bypassed the same as any other linux machine bypasses any other onboard/offboard graphics to allow QuickSync. (aka, it can be set to be a secondary adapter) Maybe Asus is doing something weird and specific with this board, but an AST2400 alone wont cause any issue.

All he needs to do is

If headless, ensure he has a HDMI dongle installed, or else the iGPU will shut itself down.
In the bios, make sure the iGPU is set to the primary adapter
sudo vainfo to verify
eat cake

Thanks for the replies again.

@drmagoo
When I installed the server from usb, I used the integrated AST with a VGA monitor, it is actually a VGA connector on the board. But the server does not have X installed, so running vainfo results in errors… )ran as root)
:~# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can’t connect to X server!
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
vaInitialize failed with error code -1 (unknown libva error),exit

@BobSnot
Does that mean that I have to put some gfx card with a hdmi output, with a hdmi dongle on to the system for linux-plex to be able to use the quick sync feature of the CPU?

One last time. You do not need X for vaapi :roll_eyes: Example output of my headless server:

error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.3)
vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Server - 1.7.3
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD

Just one more thing. You also need the package i965-va-driver to make vainfo work. It’s not required by Plex. It’s just to diagnose your system with vainfo.

My last info with this board is that it does not support the intel GPU at all and does not make it available to the OS. E.g. it does not provide any external ports for the iGPU. So, I am very sure that you cannot use Plex hardware transcoding using the Intel GPU in your Xeon. So I am out of this discussion. Please ping me when you have found a solution so I can learn :slight_smile:

I had to contact my vendor to get them to add the option to enable the iGPU inthe BIOS. Do a lspci and see if the intel gpu is enabled!

My board is an ASRock E3C236D2I

1 Like

Thank you for that input @n0ahg

I suppose I can try giving asus support a try, could you reply with your output from lspci that shows iGPU?

Here is the output from my lspci:
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 07)
00:13.0 Non-VGA unclassified device: Intel Corporation Sunrise Point-H Integrated Sensor Hub (rev 31)
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)
00:16.1 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #2 (rev 31)
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] (rev 31)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #5 (rev f1)
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #6 (rev f1)
00:1c.6 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #7 (rev f1)
00:1c.7 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #8 (rev f1)
00:1d.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #9 (rev f1)
00:1d.1 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #10 (rev f1)
00:1d.2 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #11 (rev f1)
00:1d.3 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #12 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
01:00.0 PCI bridge: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge (rev 03)
02:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30)
03:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 04)
05:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM951/PM951 (rev 01)
06:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM951/PM951 (rev 01)
07:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
08:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
09:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
0a:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)

PS. I noticed I have an old BIOS, so I will try an BIOS update to see if that helps even though Quick Sync is not mentioned in any of the change logs:

My output from lspci
00:00.0 Host bridge: Intel Corporation Sky Lake Host Bridge/DRAM Registers (rev 07)
00:02.0 Display controller: Intel Corporation Sky Lake Integrated Graphics (rev 06)
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)
00:16.1 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #2 (rev 31)
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] (rev 31)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #6 (rev f1)
00:1c.7 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #8 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
02:00.0 PCI bridge: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge (rev 03)
03:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30)
04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)

The line you need above is
00:02.0 Display controller: Intel Corporation Sky Lake Integrated Graphics (rev 06)

My board has no way of connecting a output to the onboard video but the iGPU option is now in the BIOS which enables the above PCI device and I’m running Plex in docker with hardware acceleration enabled. Be aware though that the iGPU is now the primary display and used by the BIOS and bootscreen and therefore you have to get used to using IPMI over serial :wink:

after the BIOS update to the most current BIOS, two new lines appeared in lspci

00:13.0 Non-VGA unclassified device: Intel Corporation Sunrise Point-H Integrated Sensor Hub (rev 31)
00:16.1 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #2 (rev 31)

vainfo still returns fatal error, and no iGPU in /dev/dri

so no luck yet it seems, I’ll see what asus will respond to the support ticket, in the meantime I have ordered a P10S WS which should work for sure ™.

Yeah, still no iGPU though. Good luck with Asus, ASRock were pretty good and provided me with a Labs BIOS until they released an official update including the option to enable the iGPU!

Well, after a lot of back and forth, ASUS finally gave an honest answer:

"I am sorry, but it is worthless to discuss about this point.

On this MB iGPU is not supported.

Even in case the limitation would be BIOS only, it would make it necessary to create a new one with support included.

But this will not happen"

So ASRock 1 - ASUS 0 when it comes to support. I supposed a preferred vendor change is in order…

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.