Chromium based browsers not launching in Wayland

Hi everyone!

I am going to start this off by saying that I am a complete newbie. I have used WSL before during some university classes, but I decided to totally transition to Linux yesterday. I managed t oget EndeavourOS up and running and everything is working nicely, except for this one thing.

My daily driver browser used to be Brave, so I wanted to keep it on Linux as well. I installed it using yay -S brave-bin, but I realized that touchpad gestures do not work out of the box (pulling to refresh, navigating backwards and forwards in history etc.).

As such, I discovered that I need to add the following flag to the .desktop’s exec: --enable-features=TouchpadOverscrollHistoryNavigation. Furthermore, Brave needs to be running in Wayland for this flag to properly work, so I first set the flag for Ozone platform to Wayland manually from brave://flags. However, this causes Brave to never launch.

I also tried running it from the terminal, using brave --ozone-platform=wayland but this leads to the following output:

[4993:4993:1123/163137.504419:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.NotSupported: This method is not part of the idle inhibition specification: https://specifications.freedesktop.org/idle-inhibit-spec/latest/

This leads to the terminal hanging like this for quite some minutes, after which this follows:

[4993:4993:1123/163207.434864:ERROR:gpu_process_host.cc(982)] GPU process exited unexpectedly: exit_code=512

After a few minutes and tries it does launch, but with a lot of artifacting and black squares popping around (I cannot even take a screenshot of it because it ends up being black).

I thought this was due to my Nvidia drivers having a problem, so I made use of nvidia-inst and then rebooted my system, but it seems to be the same now.

I will use Firefox in the meantime, but I really want to find out what is going wrong with this.

Thanks in advance! :smiling_face:

EDIT: Formatting

this in brave-flags.conf in ~/.config ?

I do not have anything similar to that in ~/.config. I did a search in the .config and nothing including “flags” is present there

You could try this, but the article states that you should make sure that Chrome is starting on Wayland without these settings first.

Not that I recommend any Chromium-based browser outside of Brave and Ungoogled Chromium, but have you actually tried another one? Your post only mentions Brave.

The idea is to see if it really is Chromium-based, or just an issue with Brave.

ah yeah … like electron chromium you set that – configs in xxx-flags.conf like brave-flags.conf

but isnt there standard… dont know with brave, chromium-flags.conf chrome-flags.conf etc… or yes maybe set now at chrome://flags i dont know :slight_smile:

I have tried Chromium (through Pacman) and Google Chrome (latest stable AUR) as well, but it seems it has the exact same behaviour. This is what is shown under chrome://gpu for all three of them:

XDG_CURRENT_DESKTOP             : GNOME
XDG_SESSION_TYPE                : wayland
GDMSESSION                      : gnome
Ozone platform                  : x11
Direct rendering version        : unknown

It seems that all three are using x11 instead of Wayland when running by default without any flags added. And for all three, whenever I add the flag --ozone-platform=wayland and/or -enable-features=UseOzonePlatform I am greeted by the following in the console:

[22653:22653:1123/190546.451573:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.ScreenSaver.GetActive: object_path= /org/freedesktop/ScreenSaver: org.freedesktop.DBus.Error.NotSupported: This method is not part of the idle inhibition specification: https://specifications.freedesktop.org/idle-inhibit-spec/latest/
[22716:1:1123/190616.384047:ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.

Thanks! I was following an identical guide from another source, but the browser seems to not be launching in Wayland by default for some reason, as I mentioned in the comment above just now.

From my notes:

--enable-features=UseOzonePlatform --ozone-platform=wayland 

I don’t know if that helps, I use Vivaldi and set in vivaldi:flags:

Try <browser-name:flags as Vivaldi is chrome based, this feature should be in all clones.

Hey xircon, thanks for the tips!

I tried it right now by enabling he flags from vivaldi:flags but when I press “Relaunch” Vivaldi simply exits and then, after around a minute, relaunches. It seems that I have an icon in the dock showing it instantly, but it takes around a minute for it to actually start. Then, if I do vivaldi:gpu to check if it is using Wayland I get some black squares and other artifacts, so this is the exact same behavior I had with Brave, Chromium and Google Chrome as well.

Launching it with the flags from the terminal seems to also have the same behavior.

post an inxi of your hardware.

Sure thing! Here is the output:

$ inxi -Fxxzc0
System:
  Kernel: 6.11.9-arch1-1 arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
  Desktop: GNOME v: 47.1 tk: GTK v: 3.24.43 wm: gnome-shell dm: GDM
    Distro: EndeavourOS base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 20TJS4P700 v: ThinkPad P1 Gen 3
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: LENOVO model: 20TJS4P700 v: SDK0R32862 WIN
    serial: <superuser required> part-nu: LENOVO_MT_20TJ_BU_Think_FM_ThinkPad
    P1 Gen 3 UEFI: LENOVO v: N2VET45W (1.30 ) date: 08/29/2023
Battery:
  ID-1: BAT0 charge: 44.9 Wh (61.7%) condition: 72.8/80.4 Wh (90.5%)
    volts: 15.5 min: 15.4 model: SMP 5B10X19049 serial: <filter>
    status: discharging
CPU:
  Info: 6-core model: Intel Core i7-10750H bits: 64 type: MT MCP
    arch: Comet Lake rev: 2 cache: L1: 384 KiB L2: 1.5 MiB L3: 12 MiB
  Speed (MHz): avg: 800 min/max: 800/5000 cores: 1: 800 2: 800 3: 800 4: 800
    5: 800 6: 800 7: 800 8: 800 9: 800 10: 800 11: 800 12: 800 bogomips: 62431
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel CometLake-H GT2 [UHD Graphics] vendor: Lenovo driver: i915
    v: kernel arch: Gen-9.5 ports: active: eDP-1 empty: none bus-ID: 00:02.0
    chip-ID: 8086:9bc4
  Device-2: NVIDIA TU117GLM [Quadro T1000 Mobile] vendor: Lenovo
    driver: nvidia v: 565.57.01 arch: Turing pcie: speed: 2.5 GT/s lanes: 16
    ports: active: none empty: DP-1,DP-2,HDMI-A-1 bus-ID: 01:00.0
    chip-ID: 10de:1fb9
  Device-3: Chicony Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 bus-ID: 1-8:4 chip-ID: 04f2:b6cb
  Display: wayland server: X.org v: 1.21.1.14 with: Xwayland v: 24.1.4
    compositor: gnome-shell driver: gpu: i915 display-ID: 0
  Monitor-1: eDP-1 model: BOE Display 0x086e res: 1920x1080 dpi: 142
    diag: 395mm (15.5")
  API: EGL v: 1.5 platforms: device: 0 drv: nvidia device: 2 drv: iris
    device: 3 drv: swrast gbm: drv: nvidia surfaceless: drv: nvidia wayland:
    drv: iris x11: drv: iris inactive: device-1
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: intel mesa v: 24.2.7-arch1.1
    glx-v: 1.4 direct-render: yes renderer: Mesa Intel UHD Graphics (CML GT2)
    device-ID: 8086:9bc4 display-ID: :0.0
Audio:
  Device-1: Intel Comet Lake PCH cAVS vendor: Lenovo
    driver: sof-audio-pci-intel-cnl bus-ID: 00:1f.3 chip-ID: 8086:06c8
  Device-2: NVIDIA vendor: Lenovo driver: snd_hda_intel v: kernel pcie:
    speed: 8 GT/s lanes: 16 bus-ID: 01:00.1 chip-ID: 10de:10fa
  API: ALSA v: k6.11.9-arch1-1 status: kernel-api
  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
Network:
  Device-1: Intel Comet Lake PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:06f0
  IF: wlan0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel AX201 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 bus-ID: 1-14:6 chip-ID: 8087:0026
  Report: btmgmt ID: hci0 rfk-id: 1 state: up address: <filter> bt-v: 5.2
    lmp-v: 11
Drives:
  Local Storage: total: 1.38 TiB used: 13.56 GiB (1.0%)
  ID-1: /dev/nvme0n1 vendor: Western Digital model: WD BLACK SN850X 1000GB
    size: 931.51 GiB speed: 63.2 Gb/s lanes: 4 serial: <filter> temp: 37.9 C
  ID-2: /dev/nvme1n1 vendor: Samsung model: MZVLB512HBJQ-000L7
    size: 476.94 GiB speed: 31.6 Gb/s lanes: 4 serial: <filter> temp: 40.9 C
Partition:
  ID-1: / size: 48.91 GiB used: 9.15 GiB (18.7%) fs: ext4 dev: /dev/nvme1n1p2
  ID-2: /home size: 399.97 GiB used: 3.8 GiB (1.0%) fs: ext4
    dev: /dev/nvme1n1p4
Swap:
  ID-1: swap-1 type: partition size: 18 GiB used: 0 KiB (0.0%) priority: -2
    dev: /dev/nvme1n1p3
Sensors:
  System Temperatures: cpu: 47.0 C mobo: N/A
  Fan Speeds (rpm): fan-1: 2564 fan-2: 2379
Info:
  Memory: total: 16 GiB note: est. available: 15.28 GiB used: 3.6 GiB (23.6%)
  Processes: 320 Power: uptime: 1h 6m wakeups: 0 Init: systemd v: 256
    default: graphical
  Packages: pm: pacman pkgs: 876 Compilers: gcc: 14.2.1 Shell: Bash
    v: 5.2.37 running-in: kgx inxi: 3.3.36

I have already been struggling with this for hours upon hours today and just found a way to keep it from either taking forever to launch or showing the artifacts.

In Chromium, if I go to Settings > System and then disable “Use graphics acceleration when available” it seems to boot with Ozone in Wayland by default and now I can also enable gestures. This works for any of the Chromium based browsers mentioned in this thread.

However, I would like to keep my hardware acceleration on. As of now, this is what I get under <browser's name>://gpu:

Graphics Feature Status
=======================
*   Canvas: Software only, hardware acceleration unavailable
*   Canvas out-of-process rasterization: Disabled
*   Direct Rendering Display Compositor: Disabled
*   Compositing: Software only. Hardware acceleration disabled
*   Multiple Raster Threads: Enabled
*   OpenGL: Disabled
*   Rasterization: Software only. Hardware acceleration disabled
*   Raw Draw: Disabled
*   Skia Graphite: Disabled
*   Video Decode: Software only. Hardware acceleration disabled
*   Video Encode: Software only. Hardware acceleration disabled
*   Vulkan: Disabled
*   WebGL: Software only, hardware acceleration unavailable
*   WebGL2: Software only, hardware acceleration unavailable
*   WebGPU: Disabled
*   WebNN: Software only, hardware acceleration unavailable

I really do not know what to do at this point… This has been pretty discouraging after deciding to fully switch to Linux, but I’ll try to keep my head up as the other things in my setup went great and this is my only problem as of now.

I also tried downgrading to numerous other versions, but to no avail.

What makes you prefer Brave to Firefox? An extension? Compatibility? The company?

Based on your hardware info, as you’ve got a Lenovo P1 Gen 3, there is an issue related to the iGPU and dGPU which is most likely causing you these troubles. According to the Arch wiki the hybrid mode isn’t working and the Quadro T1000 mobile is only partially supported.

Maybe you could gather some more insights in the Arch forums, which I’ve haven’t checked yet. There will be some more in depth info on that GPU and which drivers to use for that chip. That Laptop has been certified for Ubuntu and could be purchased directly from Lenovo with Fedora as an OS option as well.

To be honest, it was just me being used to it. Mainly for privacy and also having Leo AI built in for some quick searches and questions I might have. Might just have to get used to something else now :smile:

1 Like