Latest vivaldi from 8/15 breaks Hardware Acceleration

Name            : vivaldi
Version         : 6.1.3035.302-1
Description     : An advanced browser made with the power user in mind.
Architecture    : x86_64
URL             :
Licenses        : custom
Groups          : None
Provides        : None
Depends On      : gtk3  libcups  nss  alsa-lib  libxss  ttf-font  desktop-file-utils  shared-mime-info  hicolor-icon-theme
Optional Deps   : vivaldi-ffmpeg-codecs: playback of proprietary video/audio [installed]
                  libnotify: native notifications [installed]
Required By     : vivaldi-update-ffmpeg-hook
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 330.86 MiB
Packager        : Ike Devolder <>
Build Date      : Tue 15 Aug 2023 01:07:56 AM MDT
Install Date    : Tue 15 Aug 2023 05:35:00 AM MDT
Install Reason  : Explicitly installed

It looks like this version installed yesterday broke hardware acceleration. I tested with vivaldi-snapshot and it was still working, so it doesn’t appear to be a Kernel/Nvidia driver issue.

pacman -Q | grep 'linux\|vivaldi\|nvidia'
archlinux-keyring 20230704-1
lib32-util-linux 2.39.1-1
linux 6.4.10.arch1-1
linux-api-headers 6.4-1
linux-firmware 20230804.7be2766d-2
linux-firmware-whence 20230804.7be2766d-2
linux-headers 6.4.10.arch1-1
nvidia 535.98-2
nvidia-hook 1.3-1
nvidia-inst 23-7
nvidia-installer-common 23-6
nvidia-settings 535.98-1
nvidia-utils 535.98-1
opencl-nvidia 535.98-1
util-linux 2.39.1-1
util-linux-libs 2.39.1-1
vivaldi 6.1.3035.302-1
vivaldi-ffmpeg-codecs 114.0.5735.119-1
vivaldi-snapshot 6.2.3102.3-1
vivaldi-snapshot-ffmpeg-codecs 114.0.5735.134-1
vivaldi-update-ffmpeg-hook 1.0-1

I am not seeing this:

2 extra/vivaldi-ffmpeg-codecs 114.0.5735.119-1 (1.6 MiB 5.5 MiB) (Installed)
1 extra/vivaldi 6.1.3035.302-1 (100.7 MiB 330.9 MiB) (Installed)

Plasma Wayland RTX3070.


β•‘ Session type: wayland β•‘
cpu: 46.5 C
GPU Current Temp : 34 C
  Device-1: NVIDIA GA104M [GeForce RTX 3070 Mobile / Max-Q] vendor: Lenovo
    driver: nvidia v: 535.98 alternate: nouveau,nvidia_drm non-free: 535.xx+
    status: current (as of 2023-07) arch: Ampere code: GAxxx
    process: TSMC n7 (7nm) built: 2020-22 pcie: gen: 1 speed: 2.5 GT/s
    lanes: 8 link-max: gen: 4 speed: 16 GT/s lanes: 16 ports: active: none
    off: eDP-1 empty: DP-1,DP-2,HDMI-A-1 bus-ID: 01:00.0 chip-ID: 10de:24dd
    class-ID: 0300
  Device-2: Bison Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-3:3 chip-ID: 5986:2137
    class-ID: 0e02
  Display: wayland server: v: with: Xwayland v: 23.1.2
    compositor: kwin_wayland driver: X: loaded: nvidia unloaded: modesetting
    alternate: fbdev,nouveau,nv,vesa gpu: nvidia,nvidia-nvswitch display-ID: 0
  Monitor-1: eDP-1 model: AU Optronics 0x449d built: 2018 res: 1920x1080
    dpi: 128 gamma: 1.2 size: 382x215mm (15.04x8.46") diag: 438mm (17.3")
    ratio: 16:9 modes: 1920x1080
  API: OpenGL v: 4.6.0 NVIDIA 535.98 renderer: NVIDIA GeForce RTX 3070
    Laptop GPU/PCIe/SSE2 direct-render: Yes

I first saw the issue when I joined a game on

totallyNotAnalytics.bundle.js:3 Error in program linking:Program binary could not be loaded. Binary is not compatible with current driver/hardware combination. Driver build date Aug 1 2023. Please check build information of source that generated the binary.

The app worked fine once I disabled hardware acceleration. I then installed vivaldi-snapshot, and had no issues with the site with hardware acceleration.

As this seems to be tied to one of the WebGL plugins, I’m not sure video playback via Youtube is affected.

I visited chrome://gpu on each browser, and there are very slight differences:
Edit: I’m blind, it’s 5am, those two were the same.

And then down in the logs at the bottom of the vivaldi gpu page is all of the errors:

324890:324890:0816/] : ProgramGL.cpp:985 (checkLinkStatus): Program link or binary loading failed: Program binary could not be loaded. Binary is not compatible with current driver/hardware combination. Driver build date Aug 1 2023. Please check build information of source that generated the binary.

At work now, so can’t test, will have a go when I get home.

you do edit this output manually or is this any other tool and not inxi?

Just an alias function:

gfx () {
	str="Session type: $XDG_SESSION_TYPE" 
	boxp $str 1 green
	\inxi -s | grep "System" | awk {'print $3, $4, $5'}
	nvidia-smi -q -d temperature | grep -i "GPU Current" | xargs
	\inxi -G$1

boxp is a python script I wrote to pretty-up my scripts:

catp /usr/bin/boxp   
#!/usr/bin/env python

import sys

##Global variables: Tmp Hook, Hook, Temporary output file:

def boxprint(Mess, nStyle, Color):

    Mess - Text string to print
    nStyle - Box style (int)
    Color - uppercase string e.g. "RED"
    Colours = {'PURPLE': '\033[1;32;35m', 'CYAN': '\033[1;32;36m', 'DARKCYAN': '\033[0;32;36m',
               'BLUE': '\033[1;34;40m', 'GREEN': '\033[1;32;40m', 'YELLOW': '\033[1;32;33m',
               'RED': '\033[1;32;31m', 'BOLD': '\033[1;37;40m', 'UNDERLINE': '\033[2;37;40m',
               'WHITE': '\033[0;37;48m', 'END': '\033[0;37;48m'}

    print(Colours.get(Color), end='', flush=True)
    sp = " "

    #Catch errors:
    if nStyle <= 0:
        nStyle = 0

    if nStyle > 6:
        nStyle = 6

    #Set box style:
    if nStyle == 0:
        bx = ["", "", "", "", "", ""]

    if nStyle == 1:
        bx = ["β•”", "═", "β•—", "β•‘", "β•š", "╝"]

    if nStyle == 2:
        bx = ["*", "*", "*", "*", "*", "*"]

    if nStyle == 3:
        bx = ["β”Œ", "─", "┐", "β”‚", "β””", "β”˜"]

    if nStyle == 4:
        bx = ["β•“", "─", "β•–", "β•‘", "β•™", "β•œ"]

    if nStyle == 5:
        bx = ["β•’", "═", "β••", "β”‚", "β•˜", "β•›"]

    if nStyle == 6:
        bx = ["#", "#", "#", "#", "#", "#"]

    Mess= sp + Mess + sp
    if nStyle > 0:
        print(Colours.get(Color) + bx[0] + bx[1] * len(Mess) + bx[2] + Colours.get('END'))

    print(Colours.get(Color) + bx[3] + Mess + bx[3] +Colours.get('END'))

    if nStyle > 0:
        print(Colours.get(Color) + bx[4]+ bx[1] * len(Mess) + bx[5] + Colours.get('END'))

    print(Colours.get('END'), end='', flush=True)

    clp1 = sys.argv[1].upper()
    clp1 = " "

if clp1 == " ":
    print("usage: boxp \"string\" Style Colour")
    print('e.g. boxp \"This is a message\" 1 blue')

mess = sys.argv[1]
style = int(sys.argv[2])
colour = sys.argv[3].upper()

boxprint(mess, style, colour)

looking nice!
could get the next-neo-fetch :wink:

I’m also able to reproduce the WebGL issue with Google Maps.

Though no issues in Google Maps with vivaldi-snapshot.

Or here:


webgl demo (opera):

Also incredibly weird, I tested all of the WebGL samples fine, however in the same session Google Maps will still throw errors and refuse to render the map view (though Satellite view seems to work fine). I’ve also tried Private Windows and Disabling plugins.

cpu: 43.6 C
GPU Current Temp : 34 C
  Device-1: NVIDIA GA102 [GeForce RTX 3090] driver: nvidia v: 535.98
  Device-2: MacroSilicon USB Video
    driver: hid-generic,snd-usb-audio,usbhid,uvcvideo type: USB
  Display: x11 server: X.Org v: 21.1.8 driver: X: loaded: nvidia
    gpu: nvidia,nvidia-nvswitch resolution: 1: 2560x1440~60Hz 2: 1080x1920~60Hz
  API: OpenGL v: 4.6.0 NVIDIA 535.98 renderer: NVIDIA GeForce RTX

Also, all of the examples on threejs I tested worked fine as well (how amazing is ? what am I doing with my life …)

1 Like