Closed Bug 1748819 Opened 2 years ago Closed 2 years ago

Webrender hardware acceleration does not work on old Intel GPU (Wayland/GNOME/Fedora): Intel gen5 ironlake 0x0042 is blocklisted

Categories

(Core :: Graphics: WebRender, defect)

Firefox 95
x86_64
Linux
defect

Tracking

()

RESOLVED INVALID

People

(Reporter: moz, Unassigned)

Details

Attachments

(3 files)

User Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0

Steps to reproduce:

  1. Create a new Firefox profile
  2. Start this firefox profile on a GNOME/Wayland session
  3. Open about:support

Actual results:

Hardware acceleration is disabled.
about:support says: Compositing WebRender (Software)

Expected results:

Firefox should use WebRender in hardware.

Additional information on hardware:
The GPU is an iGPU from Intel Core i5 650 built around 2010 (1st generation Intel Core CPUs). Is this GPU too old to be supported?

Additional information on installed software:
firefox-95.0.2-2.fc35.x86_64
kernel-5.15.12-200.fc35.x86_64
libva-2.13.0-3.fc35.x86_64
libva-intel-driver-2.4.1-6.fc35.x86_64
mesa-libEGL-21.3.3-1.fc35.x86_64
intel-media-driver-21.4.3-1.fc35.x86_64

Additional notes:
On Fedora's devel mailing list, @mstransky wrote a message [1] with a link to a wiki page in Fedora's wiki [2] which describes hardware acceleration with Firefox.

[1] https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/G6ZAWT3BAND6UCIUVG7O24JACXZX664F/
[2] https://fedoraproject.org/wiki/Firefox_Hardware_acceleration

Device ID: 0x0042

That device is on the blocklist:
https://searchfox.org/mozilla-central/rev/6b4e19ad33650fdf9cd8529cd68eeb98bff1b935/widget/GfxDriverInfo.cpp#527

To force-enable hardware rendering, open about:config, set gfx.webrender.all to true and restart Firefox. Do you encounter any problems?

OS: Unspecified → Linux
Hardware: Unspecified → x86_64
See Also: → 1717700
Summary: Webrender hardware acceleration does not work on old Intel GPU (Wayland/GNOME/Fedora) → Webrender hardware acceleration does not work on old Intel GPU (Wayland/GNOME/Fedora): Intel gen5 ironlake 0x0042 is blocklisted
Attached file output of `vainfo`

This is the stderr output from vainfo:

$ vainfo > /tmp/vainfo.txt
libva info: VA-API version 1.13.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_12
failed to open /usr/lib64/dri/hybrid_drv_video.so
libva info: va_openDriver() returns 0

Additional info:

  • It does not matter whether intel-media-driver is installed or not, hardware acceleration is not available.
  • Setting layers.acceleration.force-enabled to true changes nothing.
  • On a different computer with newer CPU (Core i5 2450M) hardware acceleration works fine.

(In reply to Darkspirit from comment #1)

[…]
To force-enable hardware rendering, open about:config, set gfx.webrender.all to true and restart Firefox. Do you encounter any problems?

After doing that (incl. restarting firefox), about:support still says Webrender (Software). I do not encounter any problems but I guess it is still not using hardware acceleration.

WebGL 1 Driver Version: 2.1

WebGL 2 Driver Renderer: WebGL creation failed: * tryNativeGL (FEATURE_FAILURE_EGL_NO_CONFIG) * Exhausted GL driver options. (FEATURE_FAILURE_WEBGL_EXHAUSTED_DRIVERS)

Your graphics card supports only OpenGL 2.1, but Firefox requires OpenGL 3.2 for hardware rendering.
Hardware rendering is required for hardware video decoding in Firefox.

No longer blocks: wr-linux-wayland
Status: UNCONFIRMED → RESOLVED
Closed: 2 years ago
Resolution: --- → INVALID
See Also: 1717700

Ok, thanks for clarification!

Gen 5 does not support GL 3.2 or GLES 3.0, which are required for HW Webrender. It's blocklisted on all platforms (i.e. also Windows) so we don't try to create a GL context (and log errors) but use SW-WR directly.

There are two experimental features which may or may not improve performance on this kind of hardware: gfx.webrender.compositor.force-enabled (SW-WR for tiles but letting the Wayland compositor do compositing which usually uses GL) and gfx.webrender.software.opengl (SW-WR for tiles but using a inbuild GL compositor, only requiring GL(ES) 2, used on old Android devices).

On my old Thinkpad T400 I use gfx.webrender.compositor.force-enabled and it seems to help quite a bit.

(In reply to Robert Mader [:rmader] from comment #6)

[…]

There are two experimental features which may or may not improve performance on this kind of hardware: gfx.webrender.compositor.force-enabled (SW-WR for tiles but letting the Wayland compositor do compositing which usually uses GL) and gfx.webrender.software.opengl (SW-WR for tiles but using a inbuild GL compositor, only requiring GL(ES) 2, used on old Android devices).
[…]

Setting gfx.webrender.compositor.force-enabled to true does not seem to change anything either. about:support (see attachment) now says:

WEBRENDER_COMPOSITOR:
disabled by default: Disabled by default
force_enabled by user: Force enabled by pref
blocklisted by env: Blocklisted by gfxInfo

Setting gfx.webrender.software.opengl to true changes stuff in about:support but I don't think it will do a lot. I will try the latter for a while and test whether it breaks stuff ;-)

Thank you!

Hm, considering that eglinfo | grep version shows that my GPU only supports GLES 1.5, I think gfx.webrender.software.opengl should not change anything either.

(In reply to Christian Stadelmann from comment #8)

Hm, considering that eglinfo | grep version shows that my GPU only supports GLES 1.5, I think gfx.webrender.software.opengl should not change anything either.

The about:support shows that it supports GS 2.1 which is enough. Also, you wouldn't want to use Gnome without GL(ES) 2.x as it would fall back to llvmpipe and be horrible slow on such a CPU :)

The part about gfx.webrender.compositor.force-enabled is correct as it is - the order is a bit strange but force_enabled by user takes preference.

Either way, AFAIK both don't allow to use dmabuf fast paths to enable hardware video decoding, so that won't change (and we're unlikely to do something about that as the percentage of users using such old hardware is decreasing fast).

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: