WebRender compatibility issues with legacy NVIDIA optimus on Arch Linux
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | wontfix |
firefox-esr91 | --- | fix-optional |
firefox93 | --- | wontfix |
firefox94 | --- | wontfix |
firefox95 | --- | fix-optional |
People
(Reporter: hute37, Unassigned)
References
(Blocks 1 open bug)
Details
Attachments
(10 files)
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0
Steps to reproduce:
runnin firefox with optimux nvidia GPU on Arch Linux
Actual results:
-
using 'primus' bridge:
GL Context init failure => Fallback WR to SW-WR -
using "virtualgl" bridge
huge performance degradation, artifactcs cause by slow rendering
Expected results:
- WebRender enabled with HW acceleration
Reporter | ||
Comment 1•3 years ago
|
||
started with primus bridge
➜ ~ optirun -b primus -vvv firefox
[ 410.897274] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[ 410.897886] [DEBUG]optirun version 3.2.1 starting...
[ 410.897901] [DEBUG]Active configuration:
[ 410.897906] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[ 410.897910] [DEBUG] X display: :8
[ 410.897915] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia:/usr/lib32/nvidia:/usr/lib:/usr/lib32
[ 410.897919] [DEBUG] Socket path: /var/run/bumblebee.socket
[ 410.897923] [DEBUG] Accel/display bridge: primus
[ 410.897927] [DEBUG] VGL Compression: proxy
[ 410.897932] [DEBUG] VGLrun extra options:
[ 410.897942] [DEBUG] Primus LD Path: /usr/lib/primus:/usr/lib32/primus
[ 410.898620] [INFO]Response: Yes. X is active.
[ 410.898640] [INFO]Running application using primus.
[ 410.898924] [DEBUG]Process firefox started, PID 4148.
[GFX1-]: Failed GL context creation for WebRender: 0
[GFX1-]: FEATURE_FAILURE_WEBRENDER_INITIALIZE_UNSPECIFIED
[GFX1-]: Failed to connect WebRenderBridgeChild.
[GFX1-]: Fallback WR to SW-WR
Reporter | ||
Comment 2•3 years ago
|
||
Reporter | ||
Comment 3•3 years ago
|
||
started with virtualgl bridge
➜ ~ optirun -b virtualgl -vvv firefox
[ 3061.780977] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[ 3061.781277] [DEBUG]optirun version 3.2.1 starting...
[ 3061.781292] [DEBUG]Active configuration:
[ 3061.781296] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[ 3061.781300] [DEBUG] X display: :8
[ 3061.781303] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia:/usr/lib32/nvidia:/usr/lib:/usr/lib32
[ 3061.781307] [DEBUG] Socket path: /var/run/bumblebee.socket
[ 3061.781310] [DEBUG] Accel/display bridge: virtualgl
[ 3061.781314] [DEBUG] VGL Compression: proxy
[ 3061.781317] [DEBUG] VGLrun extra options:
[ 3061.781321] [DEBUG] Primus LD Path: /usr/lib/primus:/usr/lib32/primus
[ 3061.813543] [INFO]Response: Yes. X is active.
[ 3061.813566] [INFO]Running application using virtualgl.
[ 3061.813790] [DEBUG]Process vglrun started, PID 6395.
Reporter | ||
Comment 4•3 years ago
|
||
nvidia-smi (primus bridge)
➜ ~ optirun -vvv nvidia-smi
[ 309.397328] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[ 309.397804] [DEBUG]optirun version 3.2.1 starting...
[ 309.397822] [DEBUG]Active configuration:
[ 309.397827] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[ 309.397832] [DEBUG] X display: :8
[ 309.397836] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia:/usr/lib32/nvidia:/usr/lib:/usr/lib32
[ 309.397841] [DEBUG] Socket path: /var/run/bumblebee.socket
[ 309.397846] [DEBUG] Accel/display bridge: primus
[ 309.397850] [DEBUG] VGL Compression: proxy
[ 309.397858] [DEBUG] VGLrun extra options:
[ 309.397862] [DEBUG] Primus LD Path: /usr/lib/primus:/usr/lib32/primus
[ 313.226687] [INFO]Response: Yes. X is active.
[ 313.226706] [INFO]Running application using primus.
[ 313.226877] [DEBUG]Process nvidia-smi started, PID 3292.
Tue Oct 12 11:27:06 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.144 Driver Version: 390.144 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 540M Off | 00000000:01:00.0 N/A | N/A |
| N/A 49C P0 N/A / N/A | 5MiB / 964MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
[ 313.347380] [DEBUG]SIGCHILD received, but wait failed with No child processes
[ 313.347433] [DEBUG]Socket closed.
[ 313.347486] [DEBUG]Killing all remaining processes.
Comment 5•3 years ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::Graphics: WebRender' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.
Reporter | ||
Comment 6•3 years ago
|
||
Reporter | ||
Comment 7•3 years ago
|
||
Comment 8•3 years ago
|
||
Thanks for the report!
Comment 9•3 years ago
|
||
Hm, wierd case here. Our glxtest
hardware detection for some reason find the Intel card. I wonder if it has something to do with
[DEBUG] X display: :8
I increasingly wonder if we should move all the hardware detection out of glxtest
and into widget/gtk/GfxInfo.cpp
. Then we could much easier make sure that our results do not diverge for odd reasons. The time when creating gl contexts crashed drivers should be long over.
Comment 10•3 years ago
•
|
||
Problem already existed in 2019: https://github.com/Bumblebee-Project/Bumblebee/issues/1035
Bumblebee seems to run a separate X server for the Nvidia card while the regular X server uses the Intel GPU the display is connected to.
The Archlinux wiki discourages legacy Bumblebee and recommends regular Nvidia Optimus: https://wiki.archlinux.org/title/bumblebee
Are you able to use Nvidia Optimus with PRIME instead?
Reporter | ||
Comment 11•3 years ago
|
||
I think my GPU does not support the switch ...
nvidia driver >= 435.17 required, but i have to stick with 390 drivers for GPU compatibility
One "strange" fact ...
If i run 'alacritty' and nomachine client (nxplayer) with virtualgl bridge they crash sometimes,
but when i run them with "primus" bridge they seems to work
With firefox, if I select 'primus', HW rendering is not initialized (Fallback to SW)
while with virtualgl, hw rendering work but i see flickering on refresh (mainly on top bar)
(see: https://drive.google.com/file/d/1xz93TxRziSUImhXT-jx5mvzqehwrsh22/view?usp=sharing)
I know, nvidia optimus support is far from optimus ... (for my GPU)
just some other diagnostic references
~ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 540M] (rev a1)
# inxi -SMG
System: Host: *** Kernel: 5.14.11-arch1-1 x86_64 bits: 64 Desktop: GNOME 40.5 Distro: Arch Linux
Machine: Type: Laptop System: ASUSTeK product: K73SV v: 1.0 serial: ***
Mobo: ASUSTeK model: K73SV v: 1.0 serial: *** BIOS: American Megatrends v: K73SV.209
date: 08/16/2011
Graphics: Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics driver: i915 v: kernel
Device-2: NVIDIA GF108M [GeForce GT 540M] driver: nvidia v: 390.144
Device-3: Alcor Micro Asus Integrated Webcam type: USB driver: uvcvideo
Display: server: X.Org 1.20.13 driver: loaded: intel unloaded: fbdev,modesetting,vesa resolution: 1: 1600x900~60Hz
2: 1680x1050~60Hz
OpenGL: renderer: Mesa DRI Intel HD Graphics 3000 (SNB GT2) v: 3.3 Mesa 21.2.3
# lsmod | grep -e nv -e bb | sort
bbswitch 20480 0
ipmi_msghandler 73728 2 ipmi_devintf,nvidia
nvidia 15888384 772 nvidia_modeset
nvidia_modeset 1060864 18
Reporter | ||
Comment 12•3 years ago
|
||
flickerin effect on top bar (only with ff)
Reporter | ||
Comment 13•3 years ago
|
||
Comment 14•3 years ago
|
||
How does Firefox Nightly behave with primus and virtualgl after setting gfx.webrender.all=true and gfx.x11-egl.force-enabled=true and restarting Nightly?
Reporter | ||
Comment 15•3 years ago
|
||
nightly: 95.0a1 (2021-10-12) (64-bit) - primus bridge
gfx.webrender.all=true
gfx.x11-egl.force-enabled=true
WebRender HW - Intel GPU (no NVIDIA)
~ optirun -b primus -vvv /opt/firefox/firefox -P nightly
[37986.647116] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[37986.647668] [DEBUG]optirun version 3.2.1 starting...
[37986.647681] [DEBUG]Active configuration:
[37986.647686] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[37986.647690] [DEBUG] X display: :8
[37986.647694] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia:/usr/lib32/nvidia:/usr/lib:/usr/lib32
[37986.647698] [DEBUG] Socket path: /var/run/bumblebee.socket
[37986.647702] [DEBUG] Accel/display bridge: primus
[37986.647706] [DEBUG] VGL Compression: proxy
[37986.647710] [DEBUG] VGLrun extra options:
[37986.647717] [DEBUG] Primus LD Path: /usr/lib/primus:/usr/lib32/primus
[37986.649048] [INFO]Response: Yes. X is active.
[37986.649095] [INFO]Running application using primus.
[37986.649290] [DEBUG]Process /opt/firefox/firefox started, PID 24961.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
see attachment: nightly-about-support-primus.txt
Reporter | ||
Comment 16•3 years ago
|
||
ff nightly - primus bridge
Reporter | ||
Comment 17•3 years ago
|
||
nightly: 95.0a1 (2021-10-12) (64-bit) - virtualgl bridge
gfx.webrender.all=true
gfx.x11-egl.force-enabled=true
WebRender HW - Intel GPU (no NVIDIA)
~ optirun -b virtualgl -vvv /opt/firefox/firefox -P nightly
[38498.996533] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[38498.997053] [DEBUG]optirun version 3.2.1 starting...
[38498.997067] [DEBUG]Active configuration:
[38498.997077] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[38498.997086] [DEBUG] X display: :8
[38498.997096] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia:/usr/lib32/nvidia:/usr/lib:/usr/lib32
[38498.997104] [DEBUG] Socket path: /var/run/bumblebee.socket
[38498.997112] [DEBUG] Accel/display bridge: virtualgl
[38498.997122] [DEBUG] VGL Compression: proxy
[38498.997131] [DEBUG] VGLrun extra options:
[38498.997141] [DEBUG] Primus LD Path: /usr/lib/primus:/usr/lib32/primus
[38498.998376] [INFO]Response: Yes. X is active.
[38498.998448] [INFO]Running application using virtualgl.
[38498.998586] [DEBUG]Process vglrun started, PID 26272.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
see attachment: nightly-about-support-virtualgl.txt
Reporter | ||
Comment 18•3 years ago
|
||
nightly - virtualgl bridge
Reporter | ||
Comment 19•3 years ago
|
||
in ff nightly, NVIDIA support (bumblee) isn't activated
Reporter | ||
Comment 20•3 years ago
|
||
nightly: 95.0a1 (2021-10-12) (64-bit) - no optirun
gfx.webrender.all=true
gfx.x11-egl.force-enabled=true
WebRender HW - Intel GPU (no NVIDIA)
~ /opt/firefox/firefox -P nightly
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
see attachment: nightly-about-support-no-optirun.txt
Reporter | ||
Comment 21•3 years ago
|
||
nightly without optirun
Reporter | ||
Comment 22•3 years ago
|
||
in dual-boot on the same machine
using Ubuntu 21.04
with
gfx.webrender.all=true
gfx.x11-egl.force-enabled=true
nightly looks good: WebRender HW, NVIDIA GPU
/opt/firefox/firefox -P nightly
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
see attachment: nightly-about-support-ubuntu-hirsute.txt
system info:
# inxi -SMG
System: Host: heka Kernel: 5.11.0-37-generic x86_64 bits: 64 Desktop: GNOME 3.38.4 Distro: Ubuntu 21.04 (Hirsute Hippo)
Machine: Type: Laptop System: ASUSTeK product: K73SV v: 1.0 serial: ***
Mobo: ASUSTeK model: K73SV v: 1.0 serial: *** BIOS: American Megatrends v: K73SV.209
date: 08/16/2011
Graphics: Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics driver: i915 v: kernel
Device-2: NVIDIA GF108M [GeForce GT 540M] driver: nvidia v: 390.144
Device-3: Alcor Micro Asus Integrated Webcam type: USB driver: uvcvideo
Display: server: X.Org 1.20.11 driver: loaded: modesetting,nvidia resolution: 1: 1600x900~60Hz 2: 1680x1050~60Hz
OpenGL: renderer: GeForce GT 540M/PCIe/SSE2 v: 4.6.0 NVIDIA 390.144
# lsmod | grep -e nv -e bb | sort
drm 552960 8 drm_kms_helper,nvidia_drm,i915
drm_kms_helper 245760 2 nvidia_drm,i915
ipmi_msghandler 114688 2 ipmi_devintf,nvidia
nvidia 15851520 428 nvidia_modeset
nvidia_drm 45056 7
nvidia_modeset 1056768 6 nvidia_drm
# nvidia-smi
Tue Oct 12 22:44:50 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.144 Driver Version: 390.144 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GT 540M Off | 00000000:01:00.0 N/A | N/A |
| N/A 65C P0 N/A / N/A | 318MiB / 964MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
# dmesg | grep -i -e nvidia -evga -evesa
[ 0.458289] pci 0000:00:02.0: vgaarb: setting as boot VGA device
[ 0.458289] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[ 0.458289] pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[ 0.458289] pci 0000:00:02.0: vgaarb: no bridge control possible
[ 0.458289] pci 0000:01:00.0: vgaarb: bridge control possible
[ 0.458289] vgaarb: loaded
[ 1.159451] vesafb: mode is 1024x768x32, linelength=4096, pages=0
[ 1.159456] vesafb: scrolling: redraw
[ 1.159459] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[ 1.159480] vesafb: framebuffer at 0xb0000000, mapped to 0x(____ptrval____), using 3072k, total 3072k
[ 1.221295] fb0: VESA VGA frame buffer device
[ 7.889353] nvidia: loading out-of-tree module taints kernel.
[ 7.937351] nvidia: module license 'NVIDIA' taints kernel.
[ 8.080281] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[ 8.126085] nvidia-nvlink: Nvlink Core is being initialized, major device number 236
[ 8.153177] fb0: switching to inteldrmfb from VESA VGA
[ 8.153447] nvidia 0000:01:00.0: enabling device (0000 -> 0003)
[ 8.204616] nvidia 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[ 8.204623] i915 0000:00:02.0: vgaarb: deactivate vga console
[ 8.204739] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 390.144 Wed Jun 2 23:02:41 UTC 2021 (using threaded interrupts)
[ 8.207619] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 390.144 Wed Jun 2 22:58:46 UTC 2021
[ 8.208005] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=io+mem
[ 8.208523] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[ 8.228804] caller os_map_kernel_space.part.0+0x100/0x140 [nvidia] mapping multiple BARs
[ 9.460235] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 1
[ 17.029869] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client
no bumblebee on ubuntu, same nvidia driver version (390.144)
differences in loaded modules
Reporter | ||
Comment 23•3 years ago
|
||
ubuntu 21.04 ff nightly about:support
Reporter | ||
Comment 24•3 years ago
|
||
alactitty initialize GL context with "primus" bridge
("virtualgl" crashes sometimes)
optirun -b primus -vvv alacritty
in term
➜ ~ glxinfo | grep -P 'server glx .* string'
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
I don't know implementation details, but it seems based on:
- glutin rust crate
References:
Reporter | ||
Comment 25•3 years ago
|
||
I can run ff with 'primus' bridge thru vulkan
optirun -b primus -vvv vglrun -d :8 firefox
[ 5416.382487] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[ 5416.382981] [DEBUG]optirun version 3.2.1 starting...
[ 5416.383015] [DEBUG]Active configuration:
[ 5416.383020] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[ 5416.383024] [DEBUG] X display: :8
[ 5416.383028] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia:/usr/lib32/nvidia:/usr/lib:/usr/lib32
[ 5416.383033] [DEBUG] Socket path: /var/run/bumblebee.socket
[ 5416.383037] [DEBUG] Accel/display bridge: primus
[ 5416.383041] [DEBUG] VGL Compression: proxy
[ 5416.383047] [DEBUG] VGLrun extra options:
[ 5416.383053] [DEBUG] Primus LD Path: /usr/lib/primus:/usr/lib32/primus
[ 5416.384385] [INFO]Response: Yes. X is active.
[ 5416.384436] [INFO]Running application using primus.
[ 5416.384609] [DEBUG]Process vglrun started, PID 19105.
Reporter | ||
Comment 26•3 years ago
|
||
not vulkan (pvkrun), just virtualgl (vglrun)
Comment 27•3 years ago
|
||
The severity field is not set for this bug.
:jimm, could you have a look please?
For more information, please visit auto_nag documentation.
Updated•3 years ago
|
Comment 28•2 years ago
|
||
The bug has a release status flag that shows some version of Firefox is affected, thus it will be considered confirmed.
Comment 29•6 months ago
|
||
Hi! Can you still reproduce this issue or was it fixed somewhere in the meantime? Thanks!
Comment 30•5 months ago
|
||
Redirect a needinfo that is pending on an inactive user to the triage owner.
:gw, since the bug has recent activity, could you have a look please?
For more information, please visit BugBot documentation.
Updated•5 months ago
|
Description
•