Chromeium kiosk mode GL-acceleration

Creating a bug report/issue

I have searched the existing open and closed issues
Found a thread, that did not helped.

Required Information

  • DietPi version | cat /boot/dietpi/.version
    G_DIETPI_VERSION_CORE=8
    G_DIETPI_VERSION_SUB=25
    G_DIETPI_VERSION_RC=1
    G_GITBRANCH=‘master’
    G_GITOWNER=‘MichaIng’

  • Distro version | echo $G_DISTRO_NAME $G_RASPBIAN
    bookworm 0

  • Kernel version | uname -a
    Linux MuPiTestBox 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

  • Architecture | dpkg --print-architecture
    arm64

  • SBC model | echo $G_HW_MODEL_NAME or (EG: RPi3)
    RPi 4 Model B (aarch64)

  • Power supply used | (EG: 5V 1A RAVpower)
    No undervoltage, Laptop USB-C Power Supply

  • SD card used | (EG: SanDisk ultra)
    USB 3.1 USB-Stick

Additional Information (if applicable)

  • Software title | (EG: Nextcloud)
    Chromium

  • Was the software title installed freshly or updated/migrated?
    freshly and customized

Steps to reproduce

Start the system

Expected behaviour

GL support should be enabled

Actual behaviour

see screenshot

Extra details

Startup-parameters:
CHROMIUM_OPTS=“–disable-low-end-device-mode --enable-smooth-scrolling --cast-app-background-color=054b61ff --default-background-color=054b61ff --noerrdialogs --use-gl=egl --enable-features=VaapiVideoDecoder --enable-native-gpu-memory-buffers --enable-accelerated-2d-canvas --force-gpu-rasterization --kiosk --window-size=${RES_X:-1280},${RES_Y:-720} --start-fullscreen --start-maximized --window-position=0,0 --disk-cache-dir=/home/dietpi/.mupibox/chromium_cache --disk-cache-size=33554432”

See
https://dietpi.com/forum/t/raspberry-pi-4-opengl-acceleration/3830/3?u=jappe

This did not work for me. I tried the first three options in dietpi-config vc4-kms-v3d, vc4-fkms-v3d and 1080p, always with restarting the pi. Nothing changed the output of chrome://gpu.

Maybe this could help me?

Summary
sudo /boot/dietpi/func/dietpi-set_hardware rpi-opengl enable

 DietPi-Set_hardware
─────────────────────────────────────────────────────
 Mode: rpi-opengl (enable)

[  OK  ] DietPi-Set_hardware | sed --follow-symlinks -Ei /^[[:blank:]]*dtoverlay=vc4-f?kms-v3d/d /boot/config.txt
[FAILED] DietPi-Set_hardware | Unknown input value (enable). Nothing has been applied.

Available commands:
/boot/dietpi/func/dietpi-set_hardware   enableipv6              enable/disable
/boot/dietpi/func/dietpi-set_hardware   eth-forcespeed          10/100/1000/disable
/boot/dietpi/func/dietpi-set_hardware   wifimodules             enable/disable/onboard_enable/onboard_disable
/boot/dietpi/func/dietpi-set_hardware   wificountrycode         GB/US/DE/...
/boot/dietpi/func/dietpi-set_hardware   bluetooth               enable/disable
/boot/dietpi/func/dietpi-set_hardware   serialconsole           enable/disable  [(tty(S|AMA|SAC|AML|SC|GS|FIQ|MV)|hvc)[0-9]] (optional Serial/UART device)
/boot/dietpi/func/dietpi-set_hardware   i2c                     enable/disable/khz
/boot/dietpi/func/dietpi-set_hardware   spi                     enable/disable
/boot/dietpi/func/dietpi-set_hardware   soundcard               target_card (non-matching name for reset to default). Add '-eq' to target_card string to enable ALSA equalizer on card. HW:x,x (specify target card and device index eg: HW:9,1)
/boot/dietpi/func/dietpi-set_hardware   remoteir                odroid_remote/justboom_ir_remote # Odroid/RPi only
/boot/dietpi/func/dietpi-set_hardware   lcdpanel                target_panel ("none" to remove all)
/boot/dietpi/func/dietpi-set_hardware   headless                enable/disable
/boot/dietpi/func/dietpi-set_hardware   gpumemsplit             64/128/256... Range: 16-944, RPi only
/boot/dietpi/func/dietpi-set_hardware   rpi-camera              enable/disable
/boot/dietpi/func/dietpi-set_hardware   rpi-codec               enable/disable
/boot/dietpi/func/dietpi-set_hardware   rpi-opengl              vc4-kms-v3d/vc4-fkms-v3d/disable
/boot/dietpi/func/dietpi-set_hardware   rpi3_usb_boot           enable
/boot/dietpi/func/dietpi-set_hardware   rpi-eeprom              Update RPi 4 EEPROM bootloader and USB firmware
/boot/dietpi/func/dietpi-set_hardware   vf2-spi-update          Update StarFive VisionFive 2 SPI bootloader
/boot/dietpi/func/dietpi-set_hardware   gpudriver               none|intel|nvidia|amd|custom
/boot/dietpi/func/dietpi-set_hardware   qemu-guest-agent|qga    enable/disable

[FAILED] rpi-opengl enable | Exited with error

Allowed values are:

I made a testinstall on an old Asus netbook. I’ve selected Intel driver since it runs a celeron CPU with integrated graphics and openGL was enabled without further action :thinking:

OP is running RPi4 :wink:

Oops, my fault, I had x64 image in mind.

I tried to add dtoverlay=vc4-fkms-v3d, but that changes nothing.
If i add dtoverlay=vc4-kms-v3d, the display shows nothing and chrome://gpu says still the same.

I run as user dietpi, maybe i have to change any settings to this user?

For acceleration, full KMS vc4-kms-v3d is mandatory, and set by default when Chromium is installed on RPi.

Just to be sure: You installed Chromium via dietpi-software, hence the chromium-browser package instead of the chromium package?

What do you mean by “display shows nothing”, when you are able to read chrome://gpu?

I was able to read via VNC.
The chromium-package is installed via dietpi-software.
I solved it now. The problem was the internal blocklist of chrome. Here is my solution, i have a config file, where i can switch GPU on or off…

if [ ${FORCE_GPU} ]; then
	CHROMIUM_OPTS="${CHROMIUM_OPTS} --ignore-gpu-blocklist"
fi
# GPU Settings
CHROMIUM_OPTS="${CHROMIUM_OPTS} --enable-gpu --use-gl=egl --enable-unsafe-webgpu --enable-gpu-rasterization"
# Enable smooth scrolling animation
CHROMIUM_OPTS="${CHROMIUM_OPTS} --enable-smooth-scrolling"
# Suppresses Error dialogs
CHROMIUM_OPTS="${CHROMIUM_OPTS} --noerrdialogs"
# Window Settings
CHROMIUM_OPTS="${CHROMIUM_OPTS} --window-size=${RES_X:-1280},${RES_Y:-720} --window-position=0,0"
# COLOR Parameters
CHROMIUM_OPTS="${CHROMIUM_OPTS} --cast-app-background-color=44afe2ff --default-background-color=44afe2ff"
# KIOSK Parameters
CHROMIUM_OPTS="${CHROMIUM_OPTS} --kiosk --start-fullscreen --start-maximized"
# CACHE Parameters 128MB
CHROMIUM_OPTS="${CHROMIUM_OPTS} --disk-cache-dir=/home/dietpi/.mupibox/chromium_cache --disk-cache-size=134217728"```
1 Like

Ah great. I remember this flag from Opera (Chromium-based) when using my old Laptop.

There is a chrome://flags or chromium://flags as well to toggle those via Chromium GUI, isn’t it?

Yeah you can edit this flags also in the browser itself with chrome://flags.
–ignore-gpu-blocklist is the magic parameter. Without, nothing happens. But GPU slows the system down and also the display resolution get muddy (i have no better word to describe).
We have a webinterface and users cann switch this option on or off. I except more from this option…

Of course, the blacklist has a reason. Or what do you mean with “nothing happens”?