Hi everyone,
I am building a Headless Kiosk System (Automotive HUD) using my Radxa board, and I am struggling to get pure Hardware Acceleration (GPU rendering) working for web browsers on Weston (Wayland).
Instead of utilizing the PowerVR BXM-4-64 GPU, both Chromium and Cog browsers are forcefully falling back to Software Rendering (LLVMPipe/CPU), causing my CPU usage to spike over 100% while the GPU utilization sits at around 8-11%.
My Environment:
-
Board: Radxa Cubie A7A
-
OS:
radxa-a733_bullseye_cli_r2.output_512.img -
Display Server: Weston running via
drm-backend.soandkiosk-shell.so -
GPU: PowerVR BXM-4-64
The Goal:
To run a local HTML/JS UI smoothly at 60FPS using EGL hardware rendering on Wayland, completely bypassing the CPU for graphics.
What I Have Tried & The Results:
1. Using Chromium (Ozone Wayland)
I launched Chromium with the following flags to force EGL and Wayland:
chromium --no-sandbox --user-data-dir=/tmp/chrome-root --ozone-platform=wayland --use-gl=egl --ignore-gpu-blocklist --enable-gpu-rasterization --disable-software-rasterizer --disable-dev-shm-usage --disable-features=Vulkan,WebGPU --kiosk "file://..."
Result:
Chromium fails to initialize the GPU and crashes/shows a white screen. If I remove --disable-software-rasterizer, it runs but uses CPU rendering (SwiftShader), pushing CPU usage to 150%+.
Log Snippet:
Warning: eglInitialize failed with EGL_NOT_INITIALIZED
Warning: loader_scanned_icd_add: Driver /usr/lib/aarch64-linux-gnu/libvulkan_lvp.so supports Vulkan 1.1...
2. Using WPE WebKit / Cog
Realizing Chromium might be too heavy, I switched to cog, which is designed for Wayland embedded systems.
I ran:
cog --platform=wl "file://..."
Result:
Immediate crash.
Log Snippet:
** (cog:1305): WARNING **: Could not load: libcogplatform-wl.so (possible cause: Resource temporarily unavailable).
** (cog:1305): CRITICAL **: WebKitWebViewBackend* webkit_web_view_backend_new(wpe_view_backend*, GDestroyNotify, gpointer): assertion 'backend' failed
Segmentation fault
My Observation:
Checking cat /sys/kernel/debug/pvr/status shows the GPU is recognized and idling. However, it seems the OS has conflicting drivers (like libvulkan_lvp.so / software rasterizer) that intercept the EGL/Vulkan calls before they reach the PowerVR driver, causing the web engines to panic or fallback.
My Questions:
-
Is there a specific PowerVR driver package or
LD_LIBRARY_PATHI need to export to force Weston and Chromium/Cog to use the hardware GPU? -
Has anyone successfully achieved 60fps GPU-accelerated HTML rendering on this board under Weston? If so, what browser/flags did you use?
-
Should I move to a different OS image (like Armbian or Ubuntu) that has better out-of-the-box PowerVR EGL support?
Any advice, patches, or pointers would be highly appreciated. Thank you in advance!