Bug 176852 - [GTK] WebKitGtk does not work with NVIDIA Optimus hybrid systems with Bumblebee and Accelerated Compositing
Summary: [GTK] WebKitGtk does not work with NVIDIA Optimus hybrid systems with Bumbleb...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-13 10:17 PDT by Sergio Villar Senin
Modified: 2022-09-07 08:28 PDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergio Villar Senin 2017-09-13 10:17:55 PDT
NVIDIA Optimus is a technology that allows an Intel integrated GPU and discrete NVIDIA GPU to be built into and accessed by a laptop. See https://wiki.archlinux.org/index.php/NVIDIA_Optimus

This is a typical setup in laptops. The discrete card, the NVIDIA, is not connected to any video output (LCD screen or external monitor). It's only used to render and then it passes the result to the integrated card (the Intel) which is the one that sends the result to the screen.

There are some projects to make NVIDIA Optimus work in Linux, one of them is Bumblebee (see https://wiki.archlinux.org/index.php/Bumblebee). Whenever I want an application to use the NVIDIA card I prepend "primusrun" to the actual command, for example "primusrun glxinfo". So I decided to give it a try with WebKitGtk:

$ WEB_PREFIX_CMD_PREFIX="/usr/bin/primusrun" Tools/Scripts/run-minibrowser --gtk

It apparently works, it renders the webkitgtk web page fine. Then I go to google.com and search something. Instead of getting the results page I get a gray background. My first thought was that the WebProcess was killed. I was wrong it was still there. Then I started to move the mouse pointer over the gray area and voilà the cursor was changing as if I were hovering a link, and in the bottom I could see the URL of the links I was hovering. So the WebProcess worked fine. 

The problem is likely that the UIProcess is using something not compatible with Bumblebee (X redirected windows maybe?). I also tried disabling AC by also prepending WEBKIT_DISABLE_COMPOSITING_MODE=1 and then it worked fine (I know that it was using the NVIDIA card because I was getting far more FPS in various WebGL demos).
Comment 1 Elis Hirwing 2017-12-12 11:46:30 PST
Hello,

I'm able to reproduce this or a very similar issue on NixOS on two different computers, both with NVIDIA GPU's (different generations though). Note that none of my setups are hybrid setups what so ever in two desktop systems.

I'm not sure what this minibrowser or primusrun things are, but I'm testing this in epiphany and as well in gnome3 settings panel for online accounts which happens to use webkitgtk as well.

For me the workaround by setting the environment variable WEBKIT_DISABLE_COMPOSITING_MODE=1 to launch epiphany fixes some of the broken websites.

Some broken ones I've seen so far:
https://duckduckgo.com/
https://google.se/
https://accounts.google.com/
https://elis.nu/ (my personal site)

Some sites that I see works:
https://git.elis.nu/ (my personal git hosting)

On all these broken ones I can even drag around the mouse to select text and then paste the selected text in a text editor, so the page is just blank. But it is rendered somehow.

So, I don't believe that this issue is directly related to the hybrid graphics, it seems to be nvidia in general.

This is one of the cards I've got with this bug:
01:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1)
	Subsystem: ASUSTeK Computer Inc. Device 85f1
	Kernel driver in use: nvidia
	Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia

The version of the nvidia driver is:
$  nvidia-settings --version
nvidia-settings:  version 387.22  (nixbld12@)  Mon Dec 11 21:29:29 UTC 2017
  The NVIDIA X Server Settings tool.

  This program is used to configure the NVIDIA Linux graphics driver.
  For more detail, please see the nvidia-settings(1) man page.
Comment 2 Michael Catanzaro 2017-12-12 15:50:03 PST
Hi, you should file a new bug because your problem is not related to the original bug report.