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.
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.
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 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
@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 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
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
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!