DEV Community

Discussion on: Howto: Building Chromium on Ozone-GBM for RPi4

Collapse
 
steffende profile image
Steffen Deusch

I've successfully built chromium ozone-gbm for an Intel NUC thanks to this tutorial. I did not expect this to work out of the box (although VA-API video decoding is totally garbled), but it's still a nice proof of concept. Thank you very much!
I'd love to see this without the need of targeting for ChromeOS and having a proper way of programatically configuring multiple displays (something like Joone describes at the end of this article medium.com/joone/implement-a-singl...).

Off topic: All things considered the state of accelerated Chromium on Linux feels still pretty immature (I'm coming from a hobbyist kiosk background).
Over the last months I've tried classic X11 with bad tearing issues, ozone/wayland with no current VA-API support (and, after figuring out tearing on X11 is fixed by using the EGL backend, worse performance than classic X11), and now ozone/gbm on a variety of different devices. For every device another combination is needed to get things working okay-ish. I think ozone/gbm could be a nice solution for this, but I'm not sure if there are any plans to support this besides of ChromeOS...

Collapse
 
ewanroycroft profile image
Ewan Roycroft • Edited

I am also working on using VAAPI with Ozone-GBM. You can fix the garbled output by ensuring minigbm uses Y-tiled buffers. See this thread:
crbug.com/1161729

I have also got V4L2 video acceleration working on the RPi:
github.com/bbc/chromium/commits/px...

Albeit with a bug re: hardware overlays:
crbug.com/1164957

Collapse
 
praveents profile image
praveents

I am trying to build the chromium-browser for a custom linux board using DRM/KMS. Below are the arg details used to build chromium.

While running chromium, I am getting DRM check failed.

FATAL:ozone_platform_drm.cc(90)] Check failed: false.

I have drm, kms library on target, and test code (non-ozone) works fine with DRM.

Is there anything that I am missing in build arguments and any thoughts why would ozone drm check failed would be of great help.

target_cpu = "arm"
arm_version = 7
target_os = "linux"
arm_arch = "armv7-a"
arm_float_abi = "hard"
arm_fpu = "neon"
arm_tune = "cortex-a9"
arm_use_neon = true
arm_use_thumb = true
dcheck_always_on = true
enable_nacl = false
has_native_accessibility = false
is_chrome_branded = false
is_debug = false
is_official_build = false
ozone_auto_platforms = false
use_ozone = true
ozone_platform_headless = true
ozone_platform = "drm"
ozone_platform_gbm = true
use_glib = false
use_gtk = false
use_pulseaudio = false
use_xkbcommon = false
use_cups = false
use_gio = false
use_kerberos = false
use_libpci = false
use_udev = false
rtc_use_pipewire = false
v8_enable_lazy_source_positions = false
use_pangocairo = false
enable_basic_printing = true
use_x11 = false
ozone_platform_drm = true

Thanks