Abysmal HD video performance on Firefox (Intel HD Graphics 4000)

I’m running tumbleweed with Plasma 6 Wayland on a laptop with Intel HD Graphics 4000. It’s not a very powerful integrated video chip, but video performance works OK on Windows as far as I can remember.

On tumbleweed, online video seems to hang a lot. YouTube is particularly horrible, anything over 480p is unplayable (and even 480p itself isn’t great sometimes). I tried out peertube (sample video, 720p: PDP-7 type 340 display characters - toobnix) and it’s a little better, but it still hangs and stutters a lot.

I went to Firefox’s about:support and hardware acceleration is enabled for webgl. Regarding video, this is what I saw:

image

h264 video has hardware support, so I don’t understand why HD video lags so much. I just tried playing videos on ungoogled chromium and the performance was fine, so I’m assuming this is a Firefox-specific problem. Any ideas?

Hi, have you tried Plasma 6 on X11? I also experience poor performance with Wayland on old hardware.

I have. I think it’s a little better, but it’s still unusable. And Chromium doesn’t have the performance issue on Wayland anyway, so I think this is specific to Firefox. Maybe some package is missing?

Search on page about:config for ‘hardware’.

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

Provide more info. You need some Mesa packages from Packman to get H.264 (avc1) acceleration.
Post

vainfo

For some low-power mobile CPUs there is limited video decoding support, while none of the desktop CPUs have this limitation.

1 Like

enable is set to true, but force-enabled is set to false.

~> vainfo
Trying display: wayland
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib64/dri/iHD_drv_video.so
libva info: va_openDriver() returns -1
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_22
error: failed to resolve wl_drm_interface(): /lib64/libEGL_mesa.so.0: undefined symbol: wl_drm_interface
failed to open /usr/lib64/dri/hybrid_drv_video.so
Not using hybrid_drv_video.so
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.1
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

Post

inxi -aFz

-this is the start point for troubleshooting.

Post

zypper se -s intel

why not set it to true/enabled?

Check
media.ffmpeg.vaapi.enabled

I’d prefer to understand why it is set to false in the first place.


System:
  Kernel: 6.10.11-1-default arch: x86_64 bits: 64 compiler: gcc v: 14.2.0
    clocksource: tsc avail: hpet,acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.10.11-1-default
    root=UUID=1d427a03-de2e-4617-acbc-b58cc1f3ae5a splash=silent
    mitigations=auto quiet security=apparmor
  Desktop: KDE Plasma v: 6.1.5 tk: Qt v: N/A info: frameworks v: 6.6.0
    wm: kwin_wayland tools: avail: xscreensaver vt: 2 dm: 1: GDM v: 46.2 2: SDDM
    note: stopped Distro: openSUSE Tumbleweed 20240922
Machine:
  Type: Laptop System: ASUSTeK product: UX31A v: 1.0
    serial: <superuser required>
  Mobo: ASUSTeK model: UX31A v: 1.0 serial: <superuser required>
    part-nu: ASUS-NotebookSKU UEFI: American Megatrends v: UX31A.219
    date: 06/14/2013
Battery:
  ID-1: BAT0 charge: 40.0 Wh (99.0%) condition: 40.4/50.6 Wh (79.8%)
    volts: 7.4 min: 7.4 model: ASUSTeK UX31-35 type: Li-ion serial: N/A
    status: not charging cycles: 503
CPU:
  Info: model: Intel Core i5-3317U bits: 64 type: MT MCP arch: Ivy Bridge
    gen: core 3 level: v2 built: 2012-15 process: Intel 22nm family: 6
    model-id: 0x3A (58) stepping: 9 microcode: 0x21
  Topology: cpus: 1x dies: 1 clusters: 2 cores: 2 threads: 4 tpc: 2
    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: 800 min/max: 800/2600 scaling: driver: intel_cpufreq
    governor: schedutil cores: 1: 800 2: 800 3: 800 4: 800 bogomips: 13574
  Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  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: mmio_stale_data status: Unknown: No mitigations
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed status: Not affected
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; IBRS_FW;
    STIBP: conditional; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not
    affected
  Type: srbds status: Vulnerable: No microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel 3rd Gen Core processor Graphics vendor: ASUSTeK Zenbook
    Prime UX31A driver: i915 v: kernel arch: Gen-7 process: Intel 22nm
    built: 2012-13 ports: active: HDMI-A-1 empty: DP-1,VGA-1 bus-ID: 00:02.0
    chip-ID: 8086:0166 class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.12 with: Xwayland v: 24.1.2
    compositor: kwin_wayland driver: X: loaded: modesetting unloaded: fbdev,vesa
    alternate: intel dri: crocus gpu: i915 display-ID: 0
  Monitor-1: HDMI-A-1 res: 1920x1080 size: N/A modes: N/A
  API: EGL v: 1.5 hw: drv: intel crocus platforms: device: 0 drv: crocus
    device: 1 drv: swrast gbm: drv: crocus surfaceless: drv: crocus wayland:
    drv: crocus x11: drv: crocus
  API: OpenGL v: 4.5 compat-v: 4.2 vendor: intel mesa v: 24.1.7 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel HD Graphics 4000 (IVB GT2)
    device-ID: 8086:0166 memory: 1.46 GiB unified: yes display-ID: :0.0
  API: Vulkan v: 1.3.290 layers: 1 device: 0 type: integrated-gpu name: Intel
    HD Graphics 4000 (IVB GT2) driver: N/A device-ID: 8086:0166
    surfaces: xcb,xlib,wayland
Audio:
  Device-1: Intel 7 Series/C216 Family High Definition Audio vendor: ASUSTeK
    driver: snd_hda_intel v: kernel bus-ID: 00:1b.0 chip-ID: 8086:1e20
    class-ID: 0403
  API: ALSA v: k6.10.11-1-default status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: PipeWire v: 1.2.3 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Centrino Advanced-N 6235 driver: iwlwifi v: kernel pcie:
    gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 02:00.0 chip-ID: 8086:088e
    class-ID: 0280
  IF: wlp2s0 state: up mac: <filter>
  Info: services: NetworkManager,wpa_supplicant
Bluetooth:
  Device-1: Intel Centrino Bluetooth Wireless Transceiver driver: N/A
    type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 2-1.6:3
    chip-ID: 8087:07da class-ID: e000
  Device-2: Cambridge Silicon Radio Bluetooth Dongle (HCI mode)
    driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1
    bus-ID: 3-1.3:3 chip-ID: 0a12:0001 class-ID: e001
  Report: ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.3 lmp-v: 12
    status: discoverable: no pairing: no class-ID: 7c010c
Drives:
  Local Storage: total: 238.47 GiB used: 23.21 GiB (9.7%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: SanDisk model: SD5SE2256G1002E
    size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
    tech: SSD serial: <filter> fw-rev: 4.02 scheme: GPT
Partition:
  ID-1: / raw-size: 86.36 GiB size: 86.36 GiB (100.00%)
    used: 23.18 GiB (26.8%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
  ID-2: /boot/efi raw-size: 100 MiB size: 96 MiB (96.00%)
    used: 36.7 MiB (38.2%) fs: vfat dev: /dev/sda1 maj-min: 8:1
  ID-3: /home raw-size: 86.36 GiB size: 86.36 GiB (100.00%)
    used: 23.18 GiB (26.8%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
  ID-4: /opt raw-size: 86.36 GiB size: 86.36 GiB (100.00%)
    used: 23.18 GiB (26.8%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
  ID-5: /var raw-size: 86.36 GiB size: 86.36 GiB (100.00%)
    used: 23.18 GiB (26.8%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: partition size: 2 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/sda5 maj-min: 8:5
Sensors:
  System Temperatures: cpu: 85.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 8 GiB note: est. available: 7.46 GiB used: 3.53 GiB (47.3%)
  Processes: 258 Power: uptime: 0h 17m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 2.97 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 256 default: graphical
    tool: systemctl
  Packages: pm: rpm pkgs: N/A note: see --rpm
    tools: gnome-software,yast,zypper pm: flatpak pkgs: 9 Compilers: gcc: 14
    Shell: Bash v: 5.2.32 running-in: konsole inxi: 3.3.36
S  | Name                            | Type   | Version                            | Arch   | Repository
---+---------------------------------+--------+------------------------------------+--------+------------------------
   | fence-agents-intelmodular       | pacote | 4.15.0+git.1724675137.ca9ae93a-1.1 | noarch | openSUSE-Tumbleweed-Oss
   | intel-cmt-cat                   | pacote | 5.0.0.10.git+b26b31b-1.2           | x86_64 | openSUSE-Tumbleweed-Oss
   | intel-gpu-tools                 | pacote | 1.28-3.4                           | x86_64 | openSUSE-Tumbleweed-Oss
   | intel-gpu-tools-devel           | pacote | 1.28-3.4                           | x86_64 | openSUSE-Tumbleweed-Oss
   | intel-hybrid-driver             | pacote | 1.0.2-5.17                         | x86_64 | openSUSE-Tumbleweed-Oss
   | intel-ipsec-mb-devel            | pacote | 1.5.0-1.3                          | x86_64 | openSUSE-Tumbleweed-Oss
   | intel-media-driver              | pacote | 24.3.4-1.1                         | x86_64 | openSUSE-Tumbleweed-Oss
   | intel-one-mono-fonts            | pacote | 1.4.0-1.1                          | noarch | openSUSE-Tumbleweed-Oss
   | intel-opencl                    | pacote | 24.26.30049.6-1.1                  | x86_64 | openSUSE-Tumbleweed-Oss
   | intel-opencl-devel              | pacote | 24.26.30049.6-1.1                  | x86_64 | openSUSE-Tumbleweed-Oss
i  | intel-vaapi-driver              | pacote | 2.4.1-6.1                          | x86_64 | openSUSE-Tumbleweed-Oss
   | intelhex                        | pacote | 2.3.0-1.6                          | noarch | openSUSE-Tumbleweed-Oss
i  | kernel-firmware-intel           | pacote | 20240913-1.1                       | noarch | openSUSE-Tumbleweed-Oss
i  | libdrm_intel1                   | pacote | 2.4.123-1.1                        | x86_64 | openSUSE-Tumbleweed-Oss
   | libdrm_intel1-32bit             | pacote | 2.4.123-1.1                        | x86_64 | openSUSE-Tumbleweed-Oss
i+ | libvulkan_intel                 | pacote | 24.1.7-1699.394.pm.3               | x86_64 | packman-essentials
v  | libvulkan_intel                 | pacote | 24.1.7-1699.394.pm.3               | i586   | packman-essentials
v  | libvulkan_intel                 | pacote | 24.1.7-391.1                       | x86_64 | openSUSE-Tumbleweed-Oss
   | libvulkan_intel-32bit           | pacote | 24.1.7-1699.394.pm.3               | x86_64 | packman-essentials
   | libvulkan_intel-32bit           | pacote | 24.1.7-391.1                       | x86_64 | openSUSE-Tumbleweed-Oss
   | libvulkan_intel-32bit-debuginfo | pacote | 24.1.7-1699.394.pm.3               | x86_64 | packman-essentials
   | libvulkan_intel-debuginfo       | pacote | 24.1.7-1699.394.pm.3               | x86_64 | packman-essentials
   | libvulkan_intel-debuginfo       | pacote | 24.1.7-1699.394.pm.3               | i586   | packman-essentials
   | libze_intel_gpu1                | pacote | 24.26.30049.6-1.1                  | x86_64 | openSUSE-Tumbleweed-Oss
   | openvino-intel-cpu-plugin       | pacote | 2024.3.0-1.1                       | x86_64 | openSUSE-Tumbleweed-Oss
   | openvino-intel-npu-plugin       | pacote | 2024.3.0-1.1                       | x86_64 | openSUSE-Tumbleweed-Oss
   | python310-intelhex              | pacote | 2.3.0-1.1                          | noarch | openSUSE-Tumbleweed-Oss
   | python311-intelhex              | pacote | 2.3.0-1.1                          | noarch | openSUSE-Tumbleweed-Oss
   | python312-intelhex              | pacote | 2.3.0-1.1                          | noarch | openSUSE-Tumbleweed-Oss
i+ | ucode-intel                     | pacote | 20240910-1.1                       | x86_64 | openSUSE-Tumbleweed-Oss
   | xf86-video-intel                | pacote | 2.99.917.916_g31486f40-6.2         | x86_64 | openSUSE-Tumbleweed-Oss
   | xf86-video-intel-32bit          | pacote | 2.99.917.916_g31486f40-6.2         | x86_64 | openSUSE-Tumbleweed-Oss

It’s set to false.

Yoy can install up to Core i7-3687U. But this is Ivy Bridge - no hw VP9 decode, no AVX2.

Try to install xf86-video-intel and intel-opencl.
Libvulkan_intel came from Packman - for what?

You can download videos from Youtube & others in AVC (H.264) format to watch them offline. Youtube at 480p often uses AV1 format, which is much heavier than VP9.

You can install addon into browsers to get H.264 video instead of other formats.

Full hw upgrade is recommended.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.