Jump to content

Intel i9-9900K Hardware Transcoding


Recommended Posts

Posted

Greetings,

 I was wondering if there were any Intel i9 users out there whom have hardware transcoding working in Linux. And if so how did you get it to work? I have upgraded to the latest 5.0.5 kernel and am using i915 alpha boot parameters. However Emby does not see any Hardware Transcoders available and vainfo fails.

 

Thank you!

Q-Droid
Posted

What distro and have you had this working before on Linux with different (older) CPU or GPU?

 

Yours is a Coffee Lake CPU with UHD 630 so what works for 8th gen should work for 9th.

 

Mine is an i3 8100 on CentOS with the 5.0.1 kernel and HW accel works in Emby using VAAPI. You shouldn't need i915 alpha after kernel 4.15. The libva, libva-utils and libva-intel-driver are the older base and epel versions but vainfo doesn't work for me either. Keep in mind that Emby compiles it's own version of ffmpeg with newer libs/drivers and it should work as long as you have access to the render device in /dev/dri.

Posted

I have tried Ubuntu 18.04 and 18.10 with the shipped kernel as well as 5.05.

 

I have this working on a i7-4790K currently.

Q-Droid
Posted (edited)

Short list of what I would check.

 

- Is the onboard video the preferred device in the uefi/bios?

- Is the onboard video forced enabled in uefi/bios if also using discreet gpu?

- Is dmesg showing that it's loading i915 support and detects the graphics?

 

dmesg|egrep -i 'vga|drm|i915|intel'

 

- Is the render device created?

 

ls -l /dev/dri

 

- Can the Emby runtime user access the render device? This should show up in the emby hardware detection log.

 

You can also check lsmod and lspci to see what is detected and loaded.

 

lsmod|grep i915

lspci

 

 

For me the kernel update is what did it. I swapped the mobo and CPU but kernel was 4.12 and previous config was AMD. No drivers or boot options made a difference then updated the kernel and BOOM, HW accel came alive. I can't completely eliminate a difference between 8th and 9th gen being the issue.

Edited by Q-Droid
Posted

Short list of what I would check.

 

- Is the onboard video the preferred device in the uefi/bios?

- Is the onboard video forced enabled in uefi/bios if also using discreet gpu?

 

This is a Hetzner so I will have to get a remote console to it.

 

- Is dmesg showing that it's loading i915 support and detects the graphics?

 

dmesg|egrep -i 'vga|drm|i915|intel'

[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-5.0.5-050005-generic root=UUID=6b856c5a-f333-4097-857e-c2874531df82 ro i915.alpha_support=1
[    0.000000]   Intel GenuineIntel
[    0.201000] Reserving Intel graphics memory at [mem 0x3d800000-0x3f7fffff]
[    0.201514] Kernel command line: BOOT_IMAGE=/vmlinuz-5.0.5-050005-generic root=UUID=6b856c5a-f333-4097-857e-c2874531df82 ro i915.alpha_support=1
[    0.315913] Console: colour VGA+ 80x25
[    0.373836] smpboot: CPU0: Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz (family: 0x6, model: 0x9e, stepping: 0xc)
[    0.374008] Performance Events: PEBS fmt3+, Skylake events, 32-deep LBR, full-width counters, Intel PMU driver.
[    1.025829] pci 0000:00:02.0: vgaarb: setting as boot VGA device
[    1.025829] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[    1.025829] pci 0000:00:02.0: vgaarb: bridge control possible
[    1.025934] vgaarb: loaded
[    1.440489] intel_idle: MWAIT substates: 0x11142120
[    1.440489] intel_idle: v0.4.1 model 0x9E
[    1.440921] intel_idle: lapic_timer_reliable_states 0xffffffff
[    4.627970] intel_pstate: Intel P-state driver initializing
[    4.629188] intel_pstate: HWP enabled
[    4.629854] intel_pmc_core:  initialized
[    4.800692] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    4.800797] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    5.224817] e1000e 0000:00:1f.6 eth0: Intel(R) PRO/1000 Network Connection
[    6.198528] Btrfs loaded, crc32c=crc32c-intel
[    6.516098] [drm] Replacing VGA console driver
[    6.519000] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    6.519001] [drm] Driver supports precise vblank timestamp query.
[    6.519491] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[    6.520852] [drm] Finished loading DMC firmware i915/kbl_dmc_ver1_04.bin (v1.4)
[    6.681199] intel_rapl: Found RAPL domain package
[    6.681200] intel_rapl: Found RAPL domain core
[    6.681200] intel_rapl: Found RAPL domain uncore
[    6.796142] [drm] failed to retrieve link info, disabling eDP
[    6.798645] [drm] Initialized i915 1.6.0 20181204 for 0000:00:02.0 on minor 0
[    6.822151] [drm] Cannot find any crtc or sizes
[    6.842315] [drm] Cannot find any crtc or sizes
[    6.863471] [drm] Cannot find any crtc or sizes

- Is the render device created?

 

ls -l /dev/dri

 

Yes.

 

- Can the Emby runtime user access the render device? This should show up in the emby hardware detection log.

 

It can.

 

You can also check lsmod and lspci to see what is detected and loaded.

 

lsmod|grep i915

i915                 1814528  0
drm_kms_helper        180224  1 i915
drm                   475136  3 drm_kms_helper,i915
i2c_algo_bit           16384  1 i915
video                  45056  1 i915

lspci

00:00.0 Host bridge: Intel Corporation Device 3e30 (rev 0a)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 0a)
00:02.0 VGA compatible controller: Intel Corporation Device 3e98
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port 21 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port 9 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device a308 (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM (rev 10)
01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981

For me the kernel update is what did it. I swapped the mobo and CPU but kernel was 4.12 and previous config was AMD. No drivers or boot options made a difference then updated the kernel and BOOM, HW accel came alive. I can't completely eliminate a difference between 8th and 9th gen being the issue.

 

Thank you for all of your help.

Q-Droid
Posted

Your output looks a lot like what I get from my server. The drm module loads, i915 and graphics are detected. So if the emby server process can detect and access the render device are you still not getting any HW accel options? Is the hardware detection failing?

Posted (edited)

Your output looks a lot like what I get from my server. The drm module loads, i915 and graphics are detected. So if the emby server process can detect and access the render device are you still not getting any HW accel options? Is the hardware detection failing?

 

Here is the hardware detection log. I have been going through it as well but would not turn down another set of eyes.

hardware-detection.txt

Edited by orbitron
Q-Droid
Posted

I see the error trying to initialize the render device. Is the runtime user (emby?) member of the video group?

Posted

It is. I also went nuclear and just chmod -R 777 /dev/dri

Q-Droid
Posted

I'm stumped. Maybe the emby devs can interpret the init error in the log.

 

Had you also tried without alpha boot option?

Posted

I really appreciate you taking a look at it. I have also tried it without the alpha.

Q-Droid
Posted

This is a bit of a WAG but it looks like the detection can't figure out what your device is?

 

i3-8100 DeviceId:
0x3E91(/x92)=16017(/16018)
 
i9-9900K DeviceId:
0x3E98=16024
 

 

Mine is below.

 

            "DeviceIndex": 0,
            "DeviceInfo": {
                "VendorName": "Intel Corporation",
                "DeviceName": "8th Gen Core Processor Gaussian Mixture Model",
                "SubsytemVendorName": "ASRock Incorporation",
                "VendorId": 32902,
                "DeviceId": 16017,
                "SubsytemVendorId": 6217,
                "SubsytemDeviceId": 16017,
                "DevPath": "/sys/bus/pci/devices/0000:00:02.0",
                "DrmCard": "/dev/dri/card0",
                "DrmRender": "/dev/dri/renderD128",
                "IsEnabled": 1,
                "IsBootVga": 1,
                "ApiVersionMajor": 1,
                "ApiVersionMinor": 3,
                "Driver": "Intel i965 driver for Intel® Coffee Lake - 2.2.0"
  • 3 weeks later...
Posted

Thanks for all of your time. Bumping this up as it is still present in 4.1.0.26.

Posted

Yep. It looks like Linux doesn't quite support the i9 yet for quicksync. (vainfo errors out) That's unfortunate. Guess I will wait for Linux to catch up.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...