I have some questions surrounding hardware acceleration on Firefox on an Ivy Bridge processor. I tried to research for this case on MX Linux forums and over the web, but haven't had much luck with finding an answer. I'm a bit new to the Linux space, and to MX Linux, so I would love to see if anyone has any insight on this matter.
My end goal is to get Firefox to offload video rendering to the GPU to reduce load on the CPU, and perhaps optimize utilization and hopefully optimize power draw/thermals on my aging battery.
System
The system is a Thinkpad X230 with a Intel Core i5-3320M. I am currently running MX Linux 23.4 64-bit (Xfce) and have observed that Firefox is not using any of the
Intel iGPU for video processing. I don't know if this is a known limitation, but I wanted to see if anyone had any ideas to figure this out.
Changes Made
- I am running enhanced-h264ify as I understand that this processor can't handle VP8/VP9 decoding.
- I have set "Use Intel driver instead of "modesetting" driver (requires restart)"
- I have modified the /etc/X11/xorg.conf.d/20-intel.conf to set the following
Code: Select all
Option "AccelMethod" "uxa" #could also use the default "sna"
Code: Select all
$ vainfo
libva info: VA-API version 1.17.0
libva info: User environment variable requested driver 'i965'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.17 (libva 2.12.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
Code: Select all
GPU #1
Active Yes
Description Mesa Intel(R) HD Graphics 4000 (IVB GT2)
Vendor ID 0x8086
Device ID 0x0166
Driver Vendor mesa/crocus
Driver Version 22.3.6.0
RAM 0
Code: Select all
WEBRENDER
default available
env blocklisted Blocklisted by gfxInfo Blocklisted; failure code FEATURE_FAILURE_DDX_INTEL
WEBRENDER_COMPOSITOR
default disabled Disabled by default Blocklisted; failure code FEATURE_FAILURE_DISABLED
env blocklisted Blocklisted by gfxInfo Blocklisted; failure code FEATURE_FAILURE_WEBRENDER_COMPOSITOR_DISABLED
runtime blocked Cannot be enabled in release or beta Blocklisted; failure code FEATURE_FAILURE_DISABLE_RELEASE_OR_BETA
The result is that the "Compositing" field shows that it's running on Software Rendering:
Code: Select all
Compositing WebRender (Software)
https://imgur.com/K5UTpIh.png
Comparison with similar environment
When trying Fedora 41 Workstation (GNOME + Wayland) on a similar machine from the same era (X230T i7-3520M), Firefox's about:support panel shows similar results, but with the difference that Firefox is showing Compositing field showing WebRender.
Here is my QSI on my X230 running MX Linux 23.4_64 Libretto:
Code: Select all
Snapshot created on: 20241215_1116
System:
Kernel: 6.1.0-28-amd64 [6.1.119-1] arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
parameters: BOOT_IMAGE=/boot/vmlinuz-6.1.0-28-amd64 root=UUID=<filter> ro quiet splash
resume=UUID=<filter> resume_offset=109027328
Desktop: Xfce v: 4.18.1 tk: Gtk v: 3.24.36 info: xfce4-panel, plank wm: xfwm v: 4.18.0 vt: 7
dm: LightDM v: 1.26.0 Distro: MX-23.4_x64 Libretto September 15 2024 base: Debian GNU/Linux 12
(bookworm)
Machine:while on
Type: Laptop System: LENOVO product: 2306CTO v: ThinkPad X230 serial: <superuser required>
Chassis: type: 10 serial: <superuser required>
Mobo: LENOVO model: 2306CTO serial: <superuser required> UEFI: LENOVO v: G2ETB7WW (2.77 )
date: 09/24/2019
Battery:
ID-1: BAT0 charge: 45.2 Wh (77.1%) condition: 58.6/93.2 Wh (62.9%) volts: 12.0 min: 11.1
model: LGC 45N1029 type: Li-ion serial: <filter> status: not charging
CPU:
Info: model: Intel Core i5-3320M 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 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: 1307 high: 1418 min/max: 1200/3300 scaling: driver: intel_cpufreq
governor: ondemand cores: 1: 1418 2: 1259 3: 1308 4: 1245 bogomips: 20751
Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
Vulnerabilities:
Type: gather_data_sampling status: Not affected
Type: itlb_multihit status: KVM: VMX unsupported
Type: l1tf mitigation: PTE Inversion
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: Lenovo driver: i915 v: kernel arch: Gen-7
process: Intel 22nm built: 2012-13 ports: active: LVDS-1 empty: DP-1, DP-2, DP-3, HDMI-A-1,
HDMI-A-2, HDMI-A-3, VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0166 class-ID: 0300
Device-2: Chicony Integrated Camera type: USB driver: uvcvideo bus-ID: 3-1.6:5
chip-ID: 04f2:b2eb class-ID: 0e02
Display: x11 server: X.Org v: 1.21.1.7 compositor: xfwm v: 4.18.0 driver: X: loaded: intel
dri: crocus gpu: i915 display-ID: :0.0 screens: 1
Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99") s-diag: 414mm (16.31")
Monitor-1: LVDS-1 mapped: LVDS1 model: LG Display 0x037a built: 2012 res: 1366x768 hz: 60
dpi: 124 gamma: 1.2 size: 280x160mm (11.02x6.3") diag: 318mm (12.5") ratio: 16:9 modes: 1366x768
API: OpenGL v: 4.2 Mesa 22.3.6 renderer: Mesa Intel HD Graphics 4000 (IVB GT2)
direct-render: Yes
Audio:
Device-1: Intel 7 Series/C216 Family High Definition Audio vendor: Lenovo 7 driver: snd_hda_intel
v: kernel bus-ID: 00:1b.0 chip-ID: 8086:1e20 class-ID: 0403
API: ALSA v: k6.1.0-28-amd64 status: kernel-api tools: alsamixer,amixer
Server-1: PipeWire v: 1.2.6 status: active with: 1: pipewire-pulse status: active
2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin
tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel 82579LM Gigabit Network vendor: Lenovo driver: e1000e v: kernel port: 6080
bus-ID: 00:19.0 chip-ID: 8086:1502 class-ID: 0200
IF: eth0 state: down mac: <filter>
Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel modules: wl pcie: gen: 2 speed: 5 GT/s
lanes: 1 bus-ID: 03:00.0 chip-ID: 8086:2723 class-ID: 0280
IF: wlan0 state: up mac: <filter>
Bluetooth:
Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 3-1.5:4 chip-ID: 8087:0029
class-ID: e001
Report: hciconfig ID: hci0 rfk-id: 3 state: up address: <filter> bt-v: 3.0 lmp-v: 5.2
sub-v: 200f hci-v: 5.2 rev: 200f
Info: acl-mtu: 1021:4 sco-mtu: 96:6 link-policy: rswitch sniff link-mode: peripheral accept
service-classes: rendering, capturing, object transfer, audio, telephony
Drives:
Local Storage: total: 1.38 TiB used: 41.9 GiB (3.0%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Crucial model: CT1000MX500SSD1 size: 931.51 GiB block-size:
physical: 4096 B logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter> rev: 046 scheme: GPT
ID-2: /dev/sdb maj-min: 8:16 vendor: Samsung model: MZMTD512HAGL-000MV size: 476.94 GiB
block-size: physical: 512 B logical: 512 B speed: 3.0 Gb/s type: SSD serial: <filter> rev: 3M0Q
scheme: GPT
Partition:
ID-1: / raw-size: 931.41 GiB size: 915.72 GiB (98.32%) used: 41.87 GiB (4.6%) fs: ext4
dev: /dev/sda5 maj-min: 8:5
ID-2: /boot/efi raw-size: 100 MiB size: 96 MiB (96.00%) used: 31.4 MiB (32.7%) fs: vfat
dev: /dev/sda1 maj-min: 8:1
Swap:
Kernel: swappiness: 15 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: file size: 20 GiB used: 0 KiB (0.0%) priority: -2 file: /swap/swap
Sensors:
System Temperatures: cpu: 56.0 C mobo: N/A
Fan Speeds (RPM): fan-1: 3841
Repos:
Packages: pm: dpkg pkgs: 2615 libs: 1109 tools: apt,apt-get,aptitude,nala,synaptic pm: rpm
pkgs: 0 pm: flatpak pkgs: 0
No active apt repos in: /etc/apt/sources.list
Active apt repos in: /etc/apt/sources.list.d/1password.list
1: deb [arch=amd64 signed-by=/usr/share/keyrings/1password-archive-keyring.gpg] https://downloads.1password.com/linux/debian/amd64 stable main
Active apt repos in: /etc/apt/sources.list.d/debian-stable-updates.list
1: deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
Active apt repos in: /etc/apt/sources.list.d/debian.list
1: deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
2: deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
3: deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
No active apt repos in: /etc/apt/sources.list.d/librewolf.list
Active apt repos in: /etc/apt/sources.list.d/mx.list
1: deb http://ftp.riken.jp/Linux/mxlinux/mx/repo/ bookworm main non-free
Active apt repos in: /etc/apt/sources.list.d/nordvpn.list
1: deb https://repo.nordvpn.com/deb/nordvpn/debian stable main
Active apt repos in: /etc/apt/sources.list.d/signal-xenial-added-by-mxpi.list
1: deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main
Active apt repos in: /etc/apt/sources.list.d/sublime-text.list
1: deb https://download.sublimetext.com/ apt/stable/
Info:
Processes: 260 Uptime: 10h 21m wakeups: 2 Memory: 15.44 GiB used: 4.35 GiB (28.2%) Init: SysVinit
v: 3.06 runlevel: 5 default: graphical tool: systemctl Compilers: gcc: 12.2.0 alt: 12
Client: shell wrapper v: 5.2.15-release inxi: 3.3.26
Boot Mode: UEFI
Code: Select all
$ glxinfo -B
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Intel (0x8086)
Device: Mesa Intel(R) HD Graphics 4000 (IVB GT2) (0x166)
Version: 22.3.6
Accelerated: yes
Video memory: 1536MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 4.2
Max compat profile version: 4.2
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.0
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) HD Graphics 4000 (IVB GT2)
OpenGL core profile version string: 4.2 (Core Profile) Mesa 22.3.6
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.2 (Compatibility Profile) Mesa 22.3.6
OpenGL shading language version string: 4.20
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 22.3.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
Thanks a bunch!
Moderator: image changed to link, please read the forum rules.