Frame drops/stuttering when playing 60fps YouTube videos in Firefox and Chromium

I have hardware acceleration in Firefox enabled but frames are continuously dropped and the video stutters significantly. CPU load is around 60%. When I download the video as VP9 and play it with mpv the CPU load is 15% and the stuttering is gone.
Same goes for Chromium where hardware acceleration is not enabled. CPU load is then 80%.
The issue got even worse with my new 1440p monitor. There are no issues when playing videos with a lower frame rate. I’ve got a i7-7500U with an HD Graphics 620. Is my laptop already too old to play YouTube videos or may there be an other issue?

inxi --admin --verbosity=7 --filter --no-host --width
System:
  Kernel: 5.13.19-2-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.13-x86_64 
  root=UUID=2054e9c8-af3d-4dfc-9790-239bad706a1e rw 
  cryptdevice=UUID=f52949b9-30e6-4a9e-a565-429388691fbe:cryptroot acpi_osi=! 
  "acpi_osi=Windows 2019" udev.log_priority=3 
  Desktop: GNOME 40.4 tk: GTK 3.24.30 wm: gnome-shell dm: GDM 40.1 
  Distro: Manjaro Linux base: Arch Linux 
Machine:
  Type: Laptop System: LENOVO product: 20HQS03P00 v: ThinkPad X1 Carbon 5th 
  serial: <filter> Chassis: type: 10 serial: <filter> 
  Mobo: LENOVO model: 20HQS03P00 serial: <filter> UEFI: LENOVO 
  v: N1MET64W (1.49 ) date: 10/14/2020 
Battery:
  ID-1: BAT0 charge: 48.1 Wh (89.4%) condition: 53.8/57.0 Wh (94.3%) 
  volts: 12.4 min: 11.6 model: LGC 01AV429 type: Li-poly serial: <filter> 
  status: Unknown cycles: 365 
  Device-1: hidpp_battery_0 model: Logitech MX Keys Wireless Keyboard 
  serial: <filter> charge: 50% (should be ignored) rechargeable: yes 
  status: Discharging 
  Device-2: hidpp_battery_1 model: Logitech M720 Triathlon Multi-Device Mouse 
  serial: <filter> charge: 100% (should be ignored) rechargeable: yes 
  status: Discharging 
Memory:
  RAM: total: 15.4 GiB used: 3.66 GiB (23.7%) 
  RAM Report: permissions: Unable to run dmidecode. Root privileges required. 
CPU:
  Info: Dual Core model: Intel Core i7-7500U bits: 64 type: MT MCP 
  arch: Amber/Kaby Lake note: check family: 6 model-id: 8E (142) stepping: 9 
  microcode: EA cache: L2: 4 MiB bogomips: 23209 
  Speed: 1742 MHz min/max: 400/3500 MHz Core speeds (MHz): 1: 1742 2: 500 
  3: 500 4: 500 
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat arch_perfmon art 
  avx avx2 bmi1 bmi2 bts clflush clflushopt 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 hwp hwp_act_window 
  hwp_epp hwp_notify ibpb ibrs ida intel_pt invpcid invpcid_single lahf_lm lm 
  mca mce md_clear mmx monitor movbe mpx 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 sgx 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 xgetbv1 xsave xsavec xsaveopt 
  xsaves 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 HD Graphics 620 vendor: Lenovo ThinkPad X1 Carbon 5th Gen 
  driver: i915 v: kernel bus-ID: 00:02.0 chip-ID: 8086:5916 class-ID: 0300 
  Device-2: Chicony Integrated Camera type: USB driver: uvcvideo bus-ID: 1-8:3 
  chip-ID: 04f2:b5ce class-ID: 0e02 
  Display: wayland server: X.Org 1.21.1.2 compositor: gnome-shell driver: 
  loaded: modesetting unloaded: fbdev alternate: intel,vesa display-ID: :0 
  screens: 1 
  Screen-1: 0 s-res: 3440x1440 s-dpi: 96 s-size: 910x381mm (35.8x15.0") 
  s-diag: 987mm (38.8") 
  Monitor-1: XWAYLAND1 res: 3440x1440 hz: 50 dpi: 107 
  size: 820x340mm (32.3x13.4") diag: 888mm (34.9") 
  OpenGL: renderer: Mesa Intel HD Graphics 620 (KBL GT2) v: 4.6 Mesa 21.2.2 
  direct render: Yes 
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio 
  vendor: Lenovo ThinkPad X1 Carbon 5th Gen driver: snd_hda_intel v: kernel 
  alternate: snd_soc_skl bus-ID: 00:1f.3 chip-ID: 8086:9d71 class-ID: 0403 
  Device-2: GYROCOM C&C Fiio E10 type: USB 
  driver: hid-generic,snd-usb-audio,usbhid bus-ID: 3-1.2:4 chip-ID: 1852:7022 
  class-ID: 0102 
  Sound Server-1: ALSA v: k5.13.19-2-MANJARO running: yes 
  Sound Server-2: sndio v: N/A running: no 
  Sound Server-3: JACK v: 1.9.19 running: no 
  Sound Server-4: PulseAudio v: 15.0 running: yes 
  Sound Server-5: PipeWire v: 0.3.37 running: yes 
Network:
  Device-1: Intel Ethernet I219-V vendor: Lenovo ThinkPad X1 Carbon 5th Gen 
  driver: e1000e v: kernel port: efa0 bus-ID: 00:1f.6 chip-ID: 8086:15d8 
  class-ID: 0200 
  IF: enp0s31f6 state: down mac: <filter> 
  Device-2: Intel Wireless 8265 / 8275 driver: iwlwifi v: kernel port: efa0 
  bus-ID: 04:00.0 chip-ID: 8086:24fd class-ID: 0280 
  IF: wlp4s0 state: up mac: <filter> 
  IP v4: <filter> type: noprefixroute scope: global broadcast: <filter> 
  IP v6: <filter> type: dynamic noprefixroute scope: global 
  IP v6: <filter> type: noprefixroute scope: link 
  WAN IP: <filter> 
Bluetooth:
  Device-1: Intel Bluetooth wireless interface type: USB driver: btusb v: 0.8 
  bus-ID: 1-7:2 chip-ID: 8087:0a2b class-ID: e001 
  Report: rfkill ID: hci0 rfk-id: 3 state: up address: see --recommends 
Logical:
  Message: No logical block device data found. 
  Device-1: cryptroot maj-min: 254:0 type: LUKS dm: dm-0 size: 476.44 GiB 
  Components: 
  p-1: nvme0n1p2 maj-min: 259:2 size: 476.44 GiB 
RAID:
  Message: No RAID data found. 
Drives:
  Local Storage: total: 596.02 GiB used: 304.44 GiB (51.1%) 
  SMART Message: Required tool smartctl not installed. Check --recommends 
  ID-1: /dev/mmcblk0 maj-min: 179:0 model: SC128 size: 119.08 GiB block-size: 
  physical: 512 B logical: 512 B type: SSD serial: <filter> scheme: MBR 
  ID-2: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: MZVLW512HMJP-000L7 
  size: 476.94 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s 
  lanes: 4 type: SSD serial: <filter> rev: 7L7QCXY7 temp: 42.9 C scheme: GPT 
  Message: No optical or floppy data found. 
Partition:
  ID-1: / raw-size: 476.44 GiB size: 467.96 GiB (98.22%) 
  used: 243.2 GiB (52.0%) fs: ext4 dev: /dev/dm-0 maj-min: 254:0 
  mapped: cryptroot label: N/A uuid: N/A 
  ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%) 
  used: 2.6 MiB (0.5%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 label: N/A 
  uuid: 769C-1F20 
  ID-3: /run/media/jens/SDcard raw-size: 119.08 GiB size: 116.71 GiB (98.01%) 
  used: 61.24 GiB (52.5%) fs: ext4 dev: /dev/mmcblk0p1 maj-min: 179:1 
  label: SDcard uuid: 98b70059-f3e2-4947-b984-3af1f327b68d 
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) 
  ID-1: swap-1 type: file size: 15.43 GiB used: 512 KiB (0.0%) priority: -2 
  file: /swapfile 
Unmounted:
  Message: No unmounted partitions found. 
USB:
  Hub-1: 1-0:1 info: Full speed (or root) Hub ports: 12 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Device-1: 1-7:2 info: Intel Bluetooth wireless interface type: Bluetooth 
  driver: btusb interfaces: 2 rev: 2.0 speed: 12 Mb/s power: 100mA 
  chip-ID: 8087:0a2b class-ID: e001 
  Device-2: 1-8:3 info: Chicony Integrated Camera type: Video driver: uvcvideo 
  interfaces: 2 rev: 2.0 speed: 480 Mb/s power: 500mA chip-ID: 04f2:b5ce 
  class-ID: 0e02 
  Device-3: 1-9:4 info: Validity Sensors type: <vendor specific> driver: N/A 
  interfaces: 1 rev: 2.0 speed: 12 Mb/s power: 100mA chip-ID: 138a:0097 
  class-ID: ff00 serial: <filter> 
  Hub-2: 2-0:1 info: Full speed (or root) Hub ports: 6 rev: 3.0 speed: 5 Gb/s 
  chip-ID: 1d6b:0003 class-ID: 0900 
  Hub-3: 3-0:1 info: Full speed (or root) Hub ports: 2 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Hub-4: 3-1:2 info: Realtek RTS5411 Hub ports: 4 rev: 2.1 speed: 480 Mb/s 
  chip-ID: 0bda:5411 class-ID: 0900 
  Device-1: 3-1.1:3 info: Logitech Unifying Receiver type: Keyboard,Mouse,HID 
  driver: logitech-djreceiver,usbhid interfaces: 3 rev: 2.0 speed: 12 Mb/s 
  power: 98mA chip-ID: 046d:c52b class-ID: 0300 
  Device-2: 3-1.2:4 info: GYROCOM C&C Fiio E10 type: HID,Audio 
  driver: hid-generic,snd-usb-audio,usbhid interfaces: 4 rev: 1.1 
  speed: 12 Mb/s power: 500mA chip-ID: 1852:7022 class-ID: 0102 
  Device-3: 3-1.3:5 info: LG USA USB Controls type: HID 
  driver: hid-generic,usbhid interfaces: 1 rev: 2.0 speed: 12 Mb/s 
  chip-ID: 043e:9a39 class-ID: 0300 serial: <filter> 
  Hub-5: 4-0:1 info: Full speed (or root) Hub ports: 2 rev: 3.1 speed: 10 Gb/s 
  chip-ID: 1d6b:0003 class-ID: 0900 
Sensors:
  System Temperatures: cpu: 53.0 C mobo: N/A 
  Fan Speeds (RPM): fan-1: 0 
Info:
  Processes: 244 Uptime: 21h 21m wakeups: 38 Init: systemd v: 249 
  tool: systemctl Compilers: gcc: 11.1.0 clang: 12.0.1 Packages: pacman: 1870 
  lib: 457 flatpak: 0 Shell: Zsh v: 5.8 running-in: tilix inxi: 3.3.06

A workaround could be to have a ‘play in mpv’ extension in your browser. Not so sure it will play netflix etc. and I can’t test it but it beats having to see your browser go nuts on the cpu when mpv can play it with a third of the load.

1 Like

Been watching DistroTube recently? :stuck_out_tongue:

4 Likes

I use Intel UHD Graphics 630 and have found it’s critical to ensure you have all the Firefox settings exactly as shown at Firefox - ArchWiki

You can check Video acceleration by running intel_gpu_top.

Good luck!

Actually I’ve never watched a video from this channel.

I tried this extension but it just did nothing and opening a link with mpv directly also didn’t work.

Thanks, I configured Firefox with the configs suggested in the Arch Wiki a while ago. I had some lines containing something with “VA-API” in the terminal output from Firefox and assumed that it worked. But now intel_top_gpu doesn’t show any video activity. There is only some load at “Render/3D”. Does that means that hardware acceleration isn’t actually working? When using mpv there is some load at “Video.”

Yes, the Video bar should definitely show activity. Playing an intensive 60fps YouTube video on my system shows approx. 20% load. Double-check all settings and make sure you also have set gfx.x11-egl.force-enabled to true and gfx.x11-egl.force-disabled to false.

1 Like

It sounds like hardware acceleration is just not working for you in chromium and firefox, if it was enabled, it wouldn’t be driving up your cpu usage that heavily.

Also, you’re really pushing that igpu with such a high resolution display, I mean that’s 3440x1440 resolution, it’s almost 3x as difficult to render as a 1920x1080 display would be. If you’re using resolutions like this, you either need an exceptionally good iGPU or a dedicated GPU and you have neither, so it is truly a wonder it even runs fine on mpv in the first place.

I also notice you have the refresh rate set to 50hz, is this not a misconfiguration?

Lastly, I can see you’re using wayland and xwayland, is your browser running in xwayland? could it be an issue with xwayland? mpv supports wayland…

https://wiki.archlinux.org/title/Chromium#Hardware_video_acceleration

Chromium does not support hardware acceleration on wayland, if you ran it through xwayland you could have hardware acceleration probably.

https://wiki.archlinux.org/title/firefox#Hardware_video_acceleration

Firefox does support it, did you try configuring it like this?

That’s it, thanks. I thought Firefox would automatically run in Wayland mode. When i start it with MOZ_ENABLE_WAYLAND=1 firefox I see some load with the intel_gpu_tool. The CPU load is now at 40% and there are much fewer frame drops but I still see some micro stutters every few seconds. With fewer CPU load the fan doesn’t make as much noise as before. With only YouTube it doesn’t even run.
Is it better to use Wayland instead of XWayland? This is the standard config since I installed Manjaro Gnome edition some time ago.
I was experimenting with the refresh rate. That’s why I had still 50Hz enabled. My Laptop model also comes with a WQHD Display option. So I thought 3440x1440 would be fine.

These are the options for Xorg, not for Wayland, right?

Interestingly, I got a Firefox update yesterday before I started Firefox in Wayland mode. The CPU load was the same but the picture was much smoother after the update.

Thank you all for the help.

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