This has been working in Marlin and Needlefish for RPI4.
Lorenzo
March 23, 2020 at 12:17 PM
We have been checking the about the issue, and it seems that as we have hardware enabled decoding, it requires to create a native pixmap, which can't be created without using vulkan or without using gbm, that is why is crashing.
The way to avoid it would be forcing to use gbm with in-process-mode and fix the crash on rpi3. The reason why rpi3 crashed was that Chromium passed incorrect format modifiers which was fixed later upstream. We are also looking into making available a Chromium update to include some fixes and improvements as this that have been already included.
This seem to be triggered when WAM is run with - - in-process-gpu. If I have that activated the following code at https://github.com/Igalia/chromium68/blob/%4039.agl.jellyfish/src/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.cc#L69 will crash due to connection_->gbm_device() not being set. I can replicate this quite easy when I try to play a video on youtube.
The gbm_device is actually set-up in InitializeGPU which happens exactly here: https://github.com/Igalia/chromium68/blob/%4039.agl.jellyfish/src/ui/ozone/platform/wayland/ozone_platform_wayland.cc#L179. Note that if line https://github.com/Igalia/chromium68/blob/%4039.agl.jellyfish/src/ui/ozone/platform/wayland/ozone_platform_wayland.cc#L167 is not set (which is equivalent to no setting - - in-process-gpu) that gbm_device is not actually being set so when is when we first ran connection_->gbm_device() it will segfault.
This is odd to me because I've double checked that in AGL image the WebAppMgr is ran with --in-process-gpu so IDK how that works.
Seems that https://github.com/webosose/chromium68/pull/20 and https://lf-automotivelinux.atlassian.net/browse/SPEC-2790 are related to this. There was an attempt to fix the issue but the fix is actually causing WAM to crash on RPI3 so it was reverted.
Also note there's already a WebAppMgr crash so currently IDK if these two are actually related or not.