You are not logged in.

#1 2022-10-28 20:03:30

etd
Member
From: Indianapolis, Indiana, USA
Registered: 2014-08-13
Posts: 3
Website

Chrome (+Electron Apps) Display Black Boxes When Sharing on Wayland

I have filed this as a Chromium bug and tried asking for help in various Discords but haven't found a solution yet. For a few reasons I think it might be a problem with my setup. Here goes.

Setup is Arch with all packages (drivers, apps, etc.) up to date, plain Linux kernel, KDE, Wayland, NVIDIA GPU, Google Chrome Beta from the AUR and other Electron apps. Window and screen sharing are working in other applications (e.g. OBS) as of earlier this year with NVIDIA's GBM support.

Some things to note:

  • nvidia_drm kernel module is loaded.

  • Chrome launched with ozone flags and confirmed running in native Wayland.

  • WebRTC flag in Chrome is set.

I can't screen share (black boxes), BUT I think this is a problem with something not directly related to screen sharing, here's why. The first lines after launching Chrome Beta are:

[4167:4167:1023/114429.171742:ERROR:gpu_init.cc(537)] Passthrough is not supported, GL is egl, ANGLE is 
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: cannot open shared object file: Permission denied (search paths /usr/lib/gbm, suffix _gbm)
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open nvidia-drm: /usr/lib/dri/nvidia-drm_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
failed to load driver: nvidia-drm
MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
failed to load driver: zink
MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
failed to load driver: kms_swrast
MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
failed to load swrast driver

This is weird to me because I've checked all those files (except for /usr/lib/nvidia-drm_dri.so, which doesn't exist) and they all have read permission for all users. /usr/lib/gbm/nvidia-drm_gbm.so also has write permission for everyone.

Again, this is working in other programs; I am presented with the KDE window/screen selection dialog and then the shared screen shows up.

Offline

#2 2023-03-30 20:06:06

GrabbenD
Member
Registered: 2023-03-30
Posts: 3

Re: Chrome (+Electron Apps) Display Black Boxes When Sharing on Wayland

Same issue here!
Did you find a solution @etd?

Offline

#3 2023-03-31 05:31:24

czg
Member
Registered: 2023-03-19
Posts: 13

Re: Chrome (+Electron Apps) Display Black Boxes When Sharing on Wayland

I met with same infomation when using vscode based on tar in vscode offical site

$ aria2c --conf-path=.config/aria2.conf https://az764295.vo.msecnd.net/stable/ee2b180d582a7f601fa6ecfdad8d9fd269ab1884/code-stable-x64-1678818101.tar.gz
...
$ tar -xvf code-stable-x64-1678818101.tar.gz
$ sudo chown root:root ./VSCode-linux-x64/code
$ ~/VSCode-linux-x64/code --ozone-platform-hint=auto  --enable-features=WaylandWindowDecorations --gtk-version=4
Warning: 'ozone-platform-hint' is not in the list of known options, but still passed to Electron/Chromium.
Warning: 'enable-features' is not in the list of known options, but still passed to Electron/Chromium.
Warning: 'gtk-version' is not in the list of known options, but still passed to Electron/Chromium.
[45075:0331/132822.930407:ERROR:gpu_init.cc(481)] Passthrough is not supported, GL is egl, ANGLE is 
[main 2023-03-31T05:28:22.941Z] update#setState idle
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: cannot open shared object file: Permission denied (search paths /usr/lib/gbm, suffix _gbm)
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open nvidia-drm: /usr/lib/dri/nvidia-drm_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
[main 2023-03-31T05:28:23.885Z] [UtilityProcess id: 1, type: extensionHost, pid: <none>]: creating new...
[main 2023-03-31T05:28:23.892Z] [UtilityProcess id: 1, type: extensionHost, pid: 45182]: successfully created

but if I use aur package ' visual-studio-code-insiders-bin' ,

$ yay -S visual-studio-code-insiders-bin
$ code-insiders --ozone-platform-hint=auto  --enable-features=WaylandWindowDecorations --gtk-version=4
Warning: 'ozone-platform-hint' is not in the list of known options, but still passed to Electron/Chromium.
Warning: 'enable-features' is not in the list of known options, but still passed to Electron/Chromium.
Warning: 'gtk-version' is not in the list of known options, but still passed to Electron/Chromium.

all works fine, maybe some mistakes exist in installation steps with 'VSCode-linux-x64/code' .

Offline

#4 2023-03-31 06:05:34

czg
Member
Registered: 2023-03-19
Posts: 13

Re: Chrome (+Electron Apps) Display Black Boxes When Sharing on Wayland

czg wrote:

I met with same infomation when using vscode based on tar in vscode offical site

$ aria2c --conf-path=.config/aria2.conf https://az764295.vo.msecnd.net/stable/ee2b180d582a7f601fa6ecfdad8d9fd269ab1884/code-stable-x64-1678818101.tar.gz
...
$ tar -xvf code-stable-x64-1678818101.tar.gz
$ sudo chown root:root ./VSCode-linux-x64/code
$ ~/VSCode-linux-x64/code --ozone-platform-hint=auto  --enable-features=WaylandWindowDecorations --gtk-version=4
Warning: 'ozone-platform-hint' is not in the list of known options, but still passed to Electron/Chromium.
Warning: 'enable-features' is not in the list of known options, but still passed to Electron/Chromium.
Warning: 'gtk-version' is not in the list of known options, but still passed to Electron/Chromium.
[45075:0331/132822.930407:ERROR:gpu_init.cc(481)] Passthrough is not supported, GL is egl, ANGLE is 
[main 2023-03-31T05:28:22.941Z] update#setState idle
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: cannot open shared object file: Permission denied (search paths /usr/lib/gbm, suffix _gbm)
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open nvidia-drm: /usr/lib/dri/nvidia-drm_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: Permission denied (search paths /usr/lib/dri, suffix _dri)
[main 2023-03-31T05:28:23.885Z] [UtilityProcess id: 1, type: extensionHost, pid: <none>]: creating new...
[main 2023-03-31T05:28:23.892Z] [UtilityProcess id: 1, type: extensionHost, pid: 45182]: successfully created

but if I use aur package ' visual-studio-code-insiders-bin' ,

$ yay -S visual-studio-code-insiders-bin
$ code-insiders --ozone-platform-hint=auto  --enable-features=WaylandWindowDecorations --gtk-version=4
Warning: 'ozone-platform-hint' is not in the list of known options, but still passed to Electron/Chromium.
Warning: 'enable-features' is not in the list of known options, but still passed to Electron/Chromium.
Warning: 'gtk-version' is not in the list of known options, but still passed to Electron/Chromium.

all works fine, maybe some mistakes exist in installation steps with 'VSCode-linux-x64/code' .

Above I used wrong vscode executable path, I should use '~/VSCode-linux-x64/bin/code', (so stupid I am neutral )
hope you didn't make the mistake.

1- maybe with nvidia card the mesa can be ignored
and can check whether opengl use it by

glxinfo | grep OpenGL

, if no 'MESA' loaded maybe it's not 'MESA' caused the problem.

2- I tested with 'google-chrome-stable' with '#enable-webrtc-pipewire-capturer' enabled and '#ozone-platform-hint' as wayland (maybe can't pass parameter by CLI , tested by 'xwininfo' ), webrtc works well with extension 'WebRTC Desktop Sharing', although rendered a little blurry in 'https://www.webrtc-experiment.com/screen/?s=....' (I use gtx 1650 with vaapi and drm enabled)

3- and when I go to 'chrome://gpu/' then I found in 'Command Line' with

/opt/google/chrome/google-chrome --flag-switches-begin --ozone-platform-hint=wayland --enable-features=WebRTCPipeWireCapturer --flag-switches-end --ozone-platform=wayland

and also with 'ANGLE commit id' as 'd74c8f9b2202'

here is my gpu info in chrome://gpu, maybe you can compare and find some problems

Graphics Feature Status
Canvas: Hardware accelerated
Canvas out-of-process rasterization: Disabled
Direct Rendering Display Compositor: Disabled
Compositing: Software only. Hardware acceleration disabled
Multiple Raster Threads: Enabled
OpenGL: Enabled
Rasterization: Hardware accelerated
Raw Draw: Disabled
Video Decode: Hardware accelerated
Video Encode: Software only. Hardware acceleration disabled
Vulkan: Disabled
WebGL: Hardware accelerated but at reduced performance
WebGL2: Hardware accelerated but at reduced performance
WebGPU: Disabled

here is how I test

$ google-chrome-stable --enable-features=UseOzonePlatform --ozone-platform-hint=auto
# check 'chrome://flags' that 'ozone-platform-hint' doesn't change
# so I change flags manually in 'chrome://flags', then
$ pkill chrome && google-chrome-stable&
$ xwininfo 
# no cross symbol in chrome
# then use extension referenced above, all works well

vainfo

$ vainfo --display drm --device /dev/dri/renderD128
Trying display: drm
vainfo: VA-API version: 1.17 (libva 2.17.1)
vainfo: Driver version: VA-API NVDEC driver [egl backend]
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain12             : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD

Last edited by czg (2023-04-01 07:44:12)

Offline

Board footer

Powered by FluxBB