Webrender hardware acceleration does not work on old Intel GPU (Wayland/GNOME/Fedora): Intel gen5 ironlake 0x0042 is blocklisted
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
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:
- Create a new Firefox profile
- Start this firefox profile on a GNOME/Wayland session
- 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
Comment 1•2 years ago
|
||
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?
Updated•2 years ago
|
Reporter | ||
Comment 2•2 years ago
|
||
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.
Reporter | ||
Comment 3•2 years ago
|
||
(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.
Comment 4•2 years ago
•
|
||
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.
Reporter | ||
Comment 5•2 years ago
|
||
Ok, thanks for clarification!
Comment 6•2 years ago
|
||
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.
Reporter | ||
Comment 7•2 years ago
|
||
(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) andgfx.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!
Reporter | ||
Comment 8•2 years ago
|
||
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.
Comment 9•2 years ago
|
||
(In reply to Christian Stadelmann from comment #8)
Hm, considering that
eglinfo | grep version
shows that my GPU only supports GLES 1.5, I thinkgfx.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).
Description
•