TrueNAS SCALE Fangtooth 25.04.1 [release]
CPU: i5-6500
GPU: Intel HD Graphics 530
Mobo: Lenovo Z170H4-LA
Try as I might, I cannot seem to get hardware transcoding working for Plex. The server owner has a lifetime Plex Pass. The GPU appears in the transcoding options for Plex. But an error appears when attempting anything other than Direct Play and the Dashboard never lists the transcoding as hardware.
I’m aware that 6th gen won’t play nice with most HEVC 10-Bit files, but it’s not working for a variety of AVC encodes as well.
[Req#76e4b/Transcode] Codecs: hardware transcoding: testing API vaapi for device '/dev/dri/renderD128' (Intel HD Graphics 530)
[Req#76e4b/Transcode] [FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).
I found this topic regarding Jasper Lake (Jasper Lake N5105 lack of acceleration) which has maybe helped me narrow it down a bit. I assume it has something to do with GuC not being enabled correctly?
The system seems to be showing the correct iGPU when I run this command:
root@truenas[/home/truenas_admin]# lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
DeviceName: Onboard IGD
Subsystem: Lenovo HD Graphics 530
Kernel driver in use: i915
Running this seems to show GuC running but Submissions Disabled:
root@truenas[/home/truenas_admin]# dmesg | grep i915
[ 0.000000] Command line: BOOT_IMAGE=/ROOT/25.04.1@/boot/vmlinuz-6.12.15-production+truenas root=ZFS=boot-pool/ROOT/25.04.1 ro libata.allow_tpm=1 amd_iommu=on iommu=pt kvm_amd.npt=1 kvm_amd.avic=1 intel_iommu=on zfsforce=1 nvme_core.multipath=N i915.enable_guc=2
[ 0.017864] Kernel command line: BOOT_IMAGE=/ROOT/25.04.1@/boot/vmlinuz-6.12.15-production+truenas root=ZFS=boot-pool/ROOT/25.04.1 ro libata.allow_tpm=1 amd_iommu=on iommu=pt kvm_amd.npt=1 kvm_amd.avic=1 intel_iommu=on zfsforce=1 nvme_core.multipath=N i915.enable_guc=2
[ 17.876376] i915 0000:00:02.0: [drm] Found SKYLAKE (device ID 1912) display version 9.00 stepping G0
[ 17.882868] i915 0000:00:02.0: vgaarb: deactivate vga console
[ 17.885640] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 17.893604] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/skl_dmc_ver1_27.bin (v1.27)
[ 18.684457] i915 0000:00:02.0: [drm] [ENCODER:98:DDI A/PHY A] failed to retrieve link info, disabling eDP
[ 18.701980] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/skl_guc_70.1.1.bin version 70.1.1
[ 18.701985] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/skl_huc_2.0.0.bin version 2.0.0
[ 18.727191] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
[ 18.727203] i915 0000:00:02.0: [drm] GT0: GUC: submission disabled
[ 18.727209] i915 0000:00:02.0: [drm] GT0: GUC: SLPC disabled
[ 18.752936] [drm] Initialized i915 1.6.0 for 0000:00:02.0 on minor 0
[ 18.804540] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 18.805850] fbcon: i915drmfb (fb0) is primary device
[ 18.839325] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
root@truenas[/home/truenas_admin]# cat /sys/kernel/debug/dri/0/gt0/uc/guc_info
GuC firmware: i915/skl_guc_70.1.1.bin
status: RUNNING
version: found 70.1.1
uCode: 205824 bytes
RSA: 256 bytes
GuC status 0x8003f0ed:
Bootrom status = 0x76
uKernel status = 0xf0
MIA Core status = 0x3
Scratch registers:
0: 0xf0000000
1: 0x1
2: 0x1000
3: 0x0
4: 0x40
5: 0x5d4
6: 0x19120006
7: 0x0
8: 0x0
9: 0x0
10: 0x0
11: 0x0
12: 0x0
13: 0x0
14: 0x0
15: 0x0
GuC logging stats:
Relay full count: 0
DEBUG: flush count 0, overflow count 0
CRASH: flush count 0, overflow count 0
CAPTURE: flush count 0, overflow count 0
As the other posts suggests, I’ve tried setting the “i915.enable_guc” parameter to 0, 1, 2, or 3. Option 0 and 1 report an incompatible error. Option 2 and 3 both seem to behave the same.
Does anyone know what could be going wrong? Am I even looking in the right direction on this?