Hardware Transcoding with Intel Iris Graphics 540

Server Version#: 1.23.3.4707
Player Version#:7.19 (iOS) + AppleTV + GoogleTV(android)

Problem:- Hardware Transcoding works for around 5 seconds then the video freezes, but the player and server both seem to think the video is playing. (ie the progress bar is moving and no errors shown in player). This ONLY happens on Intel Iris 540, the exact same setup / video works perfectly fine with Intel HD Graphics 6000.
I have 3 NUC’s that I have been playing with, and have tried few versions of Ubuntu deployed directly, Ubuntu 20 VM deployed with ESXi and even Hackintosh setups on all 3 NUC’s. Under all options the HD Graphics 6000 works, but 2 NUC’s with the Iris Graphics 540 card gives me the freezing problem.
I have tried with both intel-media-va-driver and intel-media-va-driver-non-free drivers but always with “Intel iHD driver”, I have not tried to force it to be recognised as something else (ie i9xx)

The two NUC’s with Iris 540 (and problem) are both NUC6i5SYH
The NUC with HD Graphics 6000 (works as expected) is NUC5i5RYH

Some other useful info.


– Intel Corporation Iris Graphics 540 –

->$ sudo vainfo --display drm --device /dev/dri/renderD129
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.6.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.1.1 ()
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD


(With non-free drivers)

sudo vainfo --display drm --device /dev/dri/renderD129
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.6.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.1.1 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointFEI

Plex Media Server Logs_2021-07-02_13-33-49.zip (242.4 KB)

Searching other threads, I noticed a preinst.sh script that had been created. Below is the output. Any help would be greatly appreciated.

Plex Media Server installation configuration info: Mon Jul 12 22:31:15 UTC 2021

Init=0
Systemd=1
Custom=0
LinuxContainer=0
NewInstall=0
HaveOverride=0
OverrideFile=“”
PlexUser=“plex”
PlexGroup=“plex”
VideoGroup=“render”
AppSuppDir=“/var/lib/plexmediaserver/Library/Application Support”
PlexTempDir=“/tmp”
LangEncoding=“en_US.UTF-8”
ExistingVersion=12303
HaveHardware=1
HaveTranscoderPref=0
NeedUser=0
NeedGroup=0
NeedVideo=0
Verbose=1
Running=1
Errors=0
Warnings=0
HaveIntel=1
HaveIntelCore=1
HaveIntelXeon=0
Havei915=1
HaveNvidia=0
Processor=Intel(R) Core™ i5-6260U CPU @ 1.80GHz
CPUSKU=6260
NeedOpenCL=1
NeedBeignet=1
NeedIntelCompute=0
HaveIntelGmmlib=0
HaveIntelIGCCore=0
HaveIntelIGCOpenCL=0
HaveIntelOpenCL=1
HaveIntelOCLoc=0
HaveIntelZeroGPU=0
HaveIntelCompute=0
HaveBeignet=1
HaveOpenCL=1
Platform=“VMware Virtual Platform”
Processor=“Intel(R) Core™ i5-6260U CPU @ 1.80GHz”
Distro=“Ubuntu 20.04.2 LTS”
Kernel=“Linux daytona2 5.4.0-77-generic #86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux”
Memory=“3934 413 2822”

Known Kernel / i915 issue. Nothing can be done until upstream (kernel / i915) fixed.

Please refer to and continue here.

Closing in favor of the above thread.

Try adding VaapiDriver=“i965” in Plex’s Preferences.xml. The NUC6i5SYH is a Swift Canyon with a Sky Lake CPU. It contains a 5th generation QSV, so its better to use i965 instead of iHD.

@Achilles Thanks so much for that. VaapiDriver=“i965” fixed the problem. HW Transcoding works as expected now.