I have a problem using chromium-browser in kiosk mode on a raspberry pi 4.
I launch a web interface in Html with my video on it. Sometimes there is some drop frame / lag on the video, and I don't know why. I have tried to activate the hardware acceleration on my chromium browser.
Here is the return of the chrome://gpu
:
Graphics Feature Status
Canvas: Software only, hardware acceleration unavailable
Flash: Software only. Hardware acceleration disabled
Flash Stage3D: Software only. Hardware acceleration disabled
Flash Stage3D Baseline profile: Software only. Hardware acceleration disabled
Compositing: Software only. Hardware acceleration disabled
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Hardware accelerated
Out-of-process Rasterization: Disabled
Hardware Protected Video Decode: Disabled
Rasterization: Software only. Hardware acceleration disabled
Skia Renderer: Disabled
Surface Control: Disabled
Surface Synchronization: Enabled
Video Decode: Software only. Hardware acceleration disabled
Viz Service Display Compositor: Enabled
WebGL: Software only, hardware acceleration unavailable
WebGL2: Software only, hardware acceleration unavailable
I don't know why these two lines are disabled :
- Out-of-process Rasterization: Disabled
- Hardware Protected Video Decode: Disabled
Here are the flags that I use for launching chromium-browser :
chromium-browser --noerrdialogs --ignore-gpu-blacklist --enable-native-gpu-memory-buffers --enable-features="CheckerImaging" --disable-infobars --kiosk --autoplay-policy=no-user-gesture-required
In my first version, I managed te resize the orginal video resolution from 1920x1080 to 1560x878 with CSS directly on my interface, but the framerate was very low. In my second version, instead of using CSS to rescale the video, I did it beforehand with Avidemux and I removed the CSS rule. The video has the right size, the framerate is slightly better but the lag problem is still here.
If anyone has already encountered such a problem of if you have any information that could help me solve my problem, thank you in advance.
Other information :
Here is the information about my raspbian :
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
And my version of the chromium-browser : 74.0.3729.157 (Official Build)
My solution :
First I have update my chromium-browser with the help of @Botspot with that :
sudo apt update
sudo apt full-upgrade
sudo apt full-upgrade --fix-missing
== fake-KMS Activation via raspi-config (see above the answer of Botspot) ==
After that still no Hardware acceleration.
So after some search I have install the following packages (in chrome://gpu
there was some errors in logs):
sudo apt-get install libgles2-mesa
sudo apt-get install mesa-utils
sudo apt-get install libsdl2-dev
For enable hardware acceleration :
+-> need to add this flag to chromium : --ignore-gpu-blacklist
After reboot still some error GetVSyncParametersIfAvailable() failed
to fix it :
+-> add this flag to chromium : --use-gl=egl
Finaly some tweak there is the list of my chromium flags :
chromium-browser --kiosk --noerrdialogs --use-gl=egl --enable-gpu-rasterization --enable-native-gpu-memory-buffers --ignore-gpu-blacklist --disable-infobars --autoplay-policy=no-user-gesture-required --check-for-update-interval=31536000 'http://localhost:3000'
On chrome://gpu
there is still Out-of-process Rasterization disable. But with theses changes the video have less drop and lag.
Hope this will help someone in the future :) .