Google chrome on Wayland and camera whiteout

Whenever I start the camera on Google meet via Google Chrome, the camera shows fine with a few seconds, then goes full white. I get a lot of GL errors:

ERR: ImageEGL.cpp:112 (operator()): eglCreateImage failed with 0x00003009
[1042734:1042734:0717/094308.507488:ERROR:ui/gl/scoped_egl_image.cc:23] Failed to create EGLImage: EGL_SUCCESS
[1042734:1042734:0717/094308.507565:ERROR:ui/ozone/common/native_pixmap_egl_binding.cc:114] Unable to initialize binding from pixmap
[1042734:1042734:0717/094308.507742:ERROR:gpu/command_buffer/service/shared_image/ozone_image_backing.cc:316] OzoneImageBacking::ProduceSkiaGanesh failed to create GL representation
[1042734:1042734:0717/094308.507835:ERROR:gpu/command_buffer/service/shared_image/shared_image_manager.cc:396] SharedImageManager::ProduceSkia: Trying to produce a Skia representation from an incompatible backing: OzoneImageBacking
[1042734:1042734:0717/094308.560821:ERROR:ui/gl/angle_platform_impl.cc:49] ImageEGL.cpp:112 (operator()): eglCreateImage failed with 0x00003009
ERR: ImageEGL.cpp:112 (operator()): eglCreateImage failed with 0x00003009
[1042734:1042734:0717/094308.560964:ERROR:ui/gl/scoped_egl_image.cc:23] Failed to create EGLImage: EGL_SUCCESS
[1042734:1042734:0717/094308.561087:ERROR:ui/ozone/common/native_pixmap_egl_binding.cc:114] Unable to initialize binding from pixmap
[1042734:1042734:0717/094308.561242:ERROR:gpu/command_buffer/service/shared_image/ozone_image_backing.cc:316] OzoneImageBacking::ProduceSkiaGanesh failed to create GL representation
[1042734:1042734:0717/094308.561325:ERROR:gpu/command_buffer/service/shared_image/shared_image_manager.cc:396] SharedImageManager::ProduceSkia: Trying to produce a Skia representation from an incompatible backing: OzoneImageBacking
[1042734:1042734:0717/094308.561407:ERROR:gpu/command_buffer/service/raster_decoder.cc:1960] [.WebGL-0x1e9c0fb53800]GL ERROR :GL_INVALID_VALUE : glCopySubTexture: unknown mailbox
[1042686:1042713:0717/094355.914004:ERROR:google_apis/gcm/engine/registration_request.cc:291] Registration response error message: DEPRECATED_ENDPOINT
[1042686:1042713:0717/094540.746061:ERROR:google_apis/gcm/engine/registration_request.cc:291] Registration response error message: DEPRECATED_ENDPOINT

As you can see by the time stamps, it happens several times per second.

Here is how I start chrome, after trying random things from the Internet that promised to help:

export __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia && \
/usr/bin/google-chrome \
    --enable-features=RunVideoCaptureServiceInBrowserProcess \
    --enable-features=UseOzonePlatform \
    --enable-features=VaapiVideoDecodeLinuxGL \
    --enable-features=WebRTCPipeWireCapturer \
    --ozone-platform-hint=auto \
    --ozone-platform=wayland \
    --use-angle=gl \
    --use-gl=angle \

Any suggestions? :folded_hands:

A few more debugging:

  • If I join the same Google Meet call from Firefox (running on Wayland too), the camera works just fine. It’s the on Google Chrome that the camera breaks.
  • The camera works fine with webcam-test…
  • As soon as I remove blurred background and Greyscale filters, the camera works again.

This is annoying. :enraged_face:

Assuming that you’re using an NVIDIA GPU, it seems that Chromium has issues when running with wayland ozone-platform.

Yes, I am using Nvidia… For my sins or something. That would explain it.

From the issue, adding the flag --disable-gpu-compositing does make the filters work.

Thank you so much @leorize! You’re a star :star: