No hardware accelerated video playback on Intel Iris 6100 (Macbook Pro 2015)

I have a Macbook Pro 2015 with an i5 5257u CPU with integrated Intel Iris 6100 graphics.

I recently put Manjaro Cinnamon edition on it and everything is running fine, except hardware accelerated video playback. I get insane CPU loads both on youtube playback (both firefox and chrome) and also on local file playback with mplayer. With intel-gpu-top I always see 0.00% on Video usage.
The graphics driver I’m running is video-linux, I also tried video-modesetting, it makes no difference. With video-vesa the desktop doesn’t even come up.

Here are the outputs of vainfo and vdpauinfo:

$ vainfo
vainfo: VA-API version: 1.13 (libva 2.13.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.4.3 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointStats
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointFEI
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointFEI
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointFEI
      VAProfileVP8Version0_3          :	VAEntrypointVLD
$ sudo vdpauinfo 
display: :0   screen: 0
API version: 1
Information string: OpenGL/VAAPI backend for VDPAU

Video surface:

name   width height types
-------------------------------------------
420     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
422     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
444     4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
420_16  4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
422_16  4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 
444_16  4096  4096  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 NV24 YV24 P010 P016 Y_U_V_444_16 

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
MPEG2_SIMPLE                   --- not supported ---
MPEG2_MAIN                     --- not supported ---
H264_BASELINE                  51 16384  2048  2048
H264_MAIN                      51 16384  2048  2048
H264_HIGH                      51 16384  2048  2048
VC1_SIMPLE                     --- not supported ---
VC1_MAIN                       --- not supported ---
VC1_ADVANCED                   --- not supported ---
MPEG4_PART2_SP                 --- not supported ---
MPEG4_PART2_ASP                --- not supported ---
DIVX4_QMOBILE                  --- not supported ---
DIVX4_MOBILE                   --- not supported ---
DIVX4_HOME_THEATER             --- not supported ---
DIVX4_HD_1080P                 --- not supported ---
DIVX5_QMOBILE                  --- not supported ---
DIVX5_MOBILE                   --- not supported ---
DIVX5_HOME_THEATER             --- not supported ---
DIVX5_HD_1080P                 --- not supported ---
H264_CONSTRAINED_BASELINE      51 16384  2048  2048
H264_EXTENDED                  --- not supported ---
H264_PROGRESSIVE_HIGH          --- not supported ---
H264_CONSTRAINED_HIGH          --- not supported ---
H264_HIGH_444_PREDICTIVE       --- not supported ---
VP9_PROFILE_0                  --- not supported ---
VP9_PROFILE_1                  --- not supported ---
VP9_PROFILE_2                  --- not supported ---
VP9_PROFILE_3                  --- not supported ---
HEVC_MAIN                      --- not supported ---
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---
HEVC_MAIN_444_10               --- not supported ---
HEVC_MAIN_444_12               --- not supported ---

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         16384 16384    y  
R8G8B8A8         16384 16384    y  
R10G10B10A2      16384 16384    y  
B10G10R10A2      16384 16384    y  
A8               16384 16384    y  

Bitmap surface:

name              width height
------------------------------
B8G8R8A8         16384 16384
R8G8B8A8         16384 16384
R10G10B10A2      16384 16384
B10G10R10A2      16384 16384
A8               16384 16384

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             -
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  -
SHARPNESS                        -
LUMA_KEY                         -
HIGH QUALITY SCALING - L1        -
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              -  
VIDEO_SURFACE_HEIGHT             -  
CHROMA_TYPE                      -  
LAYERS                           -  

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 -  
CSC_MATRIX                       -  
NOISE_REDUCTION_LEVEL            -  
SHARPNESS_LEVEL                  -  
LUMA_KEY_MIN_LUMA                -  
LUMA_KEY_MAX_LUMA                -  

System info:

$ inxi --admin --verbosity=7 --filter --width
System:
  Kernel: 5.15.12-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-5.15-x86_64
    root=UUID=2fc1cb0f-490c-4bd1-9840-abd0d31fb4ee rw quiet
    udev.log_priority=3
  Desktop: Cinnamon 5.0.7 tk: GTK 3.24.31 vt: 7 dm: LightDM 1.30.0
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: Apple product: MacBookPro12,1 v: 1.0
    serial: <superuser required> Chassis: type: 9 v: Mac-E43C1C25D4880AD6
    serial: <superuser required>
  Mobo: Apple model: Mac-E43C1C25D4880AD6 v: MacBookPro12,1
    serial: <superuser required> UEFI: Apple v: 428.60.3.0.0 date: 10/27/2021
Battery:
  ID-1: BAT0 charge: 61.4 Wh (101.8%) condition: 60.3/74.8 Wh (80.7%)
    volts: 12.5 min: 11.4 model: DP bq20z451 type: Li-ion serial: N/A
    status: Discharging cycles: 789
Memory:
  RAM: total: 15.53 GiB used: 1.41 GiB (9.1%)
  RAM Report:
    permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: Intel Core i5-5257U bits: 64 type: MT MCP arch: Broadwell
    family: 6 model-id: 0x3D (61) stepping: 4 microcode: 0x2F
  Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache:
    L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB desc: 2x256 KiB
    L3: 3 MiB desc: 1x3 MiB
  Speed (MHz): avg: 1781 high: 2701 min/max: 500/3100 scaling:
    driver: intel_cpufreq governor: schedutil cores: 1: 1131 2: 1519 3: 1776
    4: 2701 bogomips: 21608
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat arch_perfmon
    avx avx2 bmi1 bmi2 bts clflush cmov constant_tsc cpuid cpuid_fault cx16 cx8
    de ds_cpl dtes64 dtherm dts epb ept ept_ad erms est f16c flexpriority
    flush_l1d fma fpu fsgsbase fxsr ht ibpb ibrs ida intel_pt invpcid
    invpcid_single lahf_lm lm mca mce md_clear mmx monitor movbe msr mtrr
    nonstop_tsc nopl nx pae pat pbe pcid pclmulqdq pdcm pdpe1gb pebs pge pln
    pni popcnt pse pse36 pti pts rdrand rdseed rdtscp rep_good sdbg sep smap
    smep ss ssbd sse sse2 sse4_1 sse4_2 ssse3 stibp syscall tm tm2 tpr_shadow
    tsc tsc_adjust tsc_deadline_timer vme vmx vnmi vpid x2apic xsave xsaveopt
    xtopology xtpr
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf
    mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl and seccomp
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional,
    IBRS_FW, STIBP: conditional, RSB filling
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel Iris Graphics 6100 vendor: Apple driver: i915 v: kernel
    bus-ID: 00:02.0 chip-ID: 8086:162b class-ID: 0300
  Display: x11 server: X.Org 1.21.1.2 driver: loaded: modesetting
    alternate: fbdev,vesa display-ID: :0 screens: 1
  Screen-1: 0 s-res: 3408x2130 s-dpi: 64 s-size: 1355x847mm (53.3x33.3")
    s-diag: 1598mm (62.9")
  Monitor-1: eDP-1 res: 3408x2130 hz: 60 dpi: 303
    size: 286x179mm (11.3x7.0") diag: 337mm (13.3")
  Message: Unable to show advanced data. Required tool glxinfo missing.
Audio:
  Device-1: Intel Broadwell-U Audio vendor: Apple driver: snd_hda_intel
    v: kernel bus-ID: 00:03.0 chip-ID: 8086:160c class-ID: 0403
  Device-2: Intel Wildcat Point-LP High Definition Audio
    driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:9ca0
    class-ID: 0403
  Device-3: Broadcom 720p FaceTime HD Camera driver: N/A bus-ID: 02:00.0
    chip-ID: 14e4:1570 class-ID: 0480
  Sound Server-1: ALSA v: k5.15.12-1-MANJARO running: yes
  Sound Server-2: JACK v: 1.9.19 running: no
  Sound Server-3: PulseAudio v: 15.0 running: yes
  Sound Server-4: PipeWire v: 0.3.42 running: no
Network:
  Device-1: Broadcom BCM43602 802.11ac Wireless LAN SoC vendor: Apple
    driver: brcmfmac v: kernel bus-ID: 03:00.0 chip-ID: 14e4:43ba class-ID: 0280
  IF: wlp3s0 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Device-1: Apple Bluetooth Host Controller type: USB
    driver: btusb,hid-generic,usbhid bus-ID: 1-3:2 chip-ID: 05ac:8290
    class-ID: fe01
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 233.76 GiB used: 10.89 GiB (4.7%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/sda maj-min: 8:0 vendor: Apple model: SSD SM0256G
    size: 233.76 GiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    type: SSD serial: <filter> rev: SA0Q scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 112.49 GiB size: 110.17 GiB (97.93%)
    used: 10.88 GiB (9.9%) fs: ext4 dev: /dev/sda3 maj-min: 8:3 label: manjaro
    uuid: 2fc1cb0f-490c-4bd1-9840-abd0d31fb4ee
  ID-2: /boot/efi raw-size: 200 MiB size: 196.9 MiB (98.45%)
    used: 8.3 MiB (4.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1 label: EFI
    uuid: 67E3-17ED
Swap:
  Alert: No swap data was found.
Unmounted:
  ID-1: /dev/sda2 maj-min: 8:2 size: 121.07 GiB fs: apfs label: N/A
    uuid: f55ab583-c178-42e4-97a4-46ab395a666b
USB:
  Hub-1: 1-0:1 info: Hi-speed hub with single TT ports: 11 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Device-1: 1-3:2 info: Apple Bluetooth Host Controller
    type: Keyboard,Mouse,Bluetooth driver: btusb,hid-generic,usbhid
    interfaces: 6 rev: 2.0 speed: 12 Mb/s chip-ID: 05ac:8290 class-ID: fe01
  Device-2: 1-5:3 info: Apple Internal Keyboard/Trackpad (ISO)
    type: HID,Keyboard,Mouse driver: apple,bcm5974,usbhid interfaces: 5 rev: 2.0
    speed: 12 Mb/s power: 500mA chip-ID: 05ac:0273 class-ID: 0300
    serial: <filter>
  Hub-2: 2-0:1 info: Super-speed hub ports: 4 rev: 3.0 speed: 5 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
Sensors:
  System Temperatures: cpu: 25.4 C pch: 42.5 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 261 Uptime: 25m wakeups: 3 Init: systemd v: 250 tool: systemctl
  Compilers: gcc: 11.1.0 clang: 13.0.0 Packages: pacman: 871 lib: 248
  flatpak: 0 Shell: Bash v: 5.1.12 running-in: gnome-terminal inxi: 3.3.11

And idea what I could try or what could be missing?

See the following tutorial. Since Google Chrome is a Chromium-based browser, some things should apply:

Hi @AndiK,

Please see [HowTo] Provide System Information, if applicable [HowTo] post screenshots and links and [HowTo] Increase your chances of solving your issue.

Thanks, I added system info to my post!

Together with what @ishaanbhimwal said, this:

https://wiki.archlinux.org/title/intel_graphics

Might also help.

Edit:

And since you mentioned it’s a Macbook, work thorough this also:

https://wiki.archlinux.org/title/Mac

I have run through every single thing suggested for firefox and still get no hardware acceleration. This and the fact that it isn’t working in mplayer on a local file as well leads me to think it’s a driver issue.

The firefox article suggests changing the driver from intel-media-driver to the Intel i965 driver libva-intel-driver. Is this a good idea? If so, how do I do this?

For my specific model, this tells me to install the xf86-video-intel package. However, no change, still no accelerated video playback.

Then I’m sorry. That’s all help I can give you.

:sob:

No worries, I really appreciate it!

1 Like

Try to install all packages need for fully working GPU and your Linux can use full potential of your Intel GPU.

sudo pacman -S --needed intel-ucode vulkan-intel intel-compute-runtime intel-gmmlib intel-gpu-tools intel-graphics-compiler intel-media-driver intel-media-sdk libmfx libva-utils lib32-vulkan-intel glu libva-mesa-driver mesa mesa-demos mesa-utils mesa-vdpau vulkan-mesa-layers lib32-glu lib32-libva-mesa-driver lib32-mesa lib32-mesa-demos lib32-mesa-utils lib32-mesa-vdpau lib32-vulkan-mesa-layers vulkan-icd-loader vulkan-extra-layers vulkan-extra-tools vulkan-headers

If you have Firefox 96, enable this and you will have HW accleration.
about:config

media.ffvpx.enabled=true
media.rdd-process.enabled=true
media.rdd-vpx.enabled=true
media.rdd-ffmpeg.enabled=true
media.ffmpeg.vaapi.enabled=true
media.navigator.mediadatadecoder_vpx_enabled=true

Thanks for your response!

There were quite a few of these packages not yet installed, but even after installing them all, setting all the flags correctly in firefox and rebooting it still only does software rendering for video…

https://wiki.archlinux.org/title/Firefox/Tweaks#Force-enable_hardware_video_decoding

media.hardware-video-decoding.enabled=true
media.hardware-video-decoding.force-enabled=true

Still nothing. It is not working for a local video file either, so I think the issue is with the driver… all the settings in Firefox are now set as you (and the article) suggested.