User Tools

Site Tools


doc:appunti:hardware:graphics_hardware_acceleration_raspberry_pi_2

Graphics hardware acceleration on the Raspberry Pi 2

In this article we will discover how to enable graphics hardware acceleration in the Chromium browser running on the Raspberry Pi 2, using RaspiOS based on Debian Bullseye 11.

The hardware model si Raspberry Pi 2 Model B Rev 1.1 (ARMv7 Processor rev 5, v7l), the operating system is RaspiOS based on Debian 11.5 Bullseye, the architecture is armhf (32bit), the running kernel is 5.15.61-v7+.

FIXME

How to check if V3D and/or KMS are active

V3D is an API provided by the Linux kernel to support 3D graphics on the VideoCore VI GPU (RPi 4). The software driver is actually provided in the form of a Device Tree Overlay which is loaded at boot time adding the following line into /boot/config.txt:

dtoverlay=vc4-kms-v3d

The older Raspberry Pi 3 and Pi 2 have the older VideoCore IV GPU and the legacy software driver was called VC4. The new Device Tree Overly is capable to detect the actual VideoCore available (IV or VI) and provide the same new V3D interface.

To check if V3D is enabled you can read a /proc pseudofile, the content of which can be okay or disabled. For the Raspberry Pi 3 it is:

cat /proc/device-tree/soc/v3d@7ec00000/status

For the Raspberry Pi 4 the exposed pseudofile is different:

cat /proc/device-tree/v3dbus/v3d@7ec04000/status

The KMS (Kernel Mode Setting) has two different implementations. The old one (known as Fake KMS) was the only one available at the time of Debian 9 Stretch and it is provided byt the vc4-fkms-v3d overlay. Once loaded you can check its availability reading the following pseudofile (should read disabled or okay):

cat /proc/device-tree/soc/firmwarekms@7e600000/status

The new overlay vc4-kms-v3d doesn't expose that node (which results as disabled), but expose several others KMS related nodes:

cat /proc/device-tree/soc/hdmi@7e902000/status
cat /proc/device-tree/soc/hvs@7e400000/status
cat /proc/device-tree/soc/txp@7e004000/status
cat /proc/device-tree/soc/pixelvalve@7e207000/status
cat /proc/device-tree/soc/pixelvalve@7e807000/status
cat /proc/device-tree/soc/pixelvalve@7e206000/status

Enable graphics acceleration in Chromium

In Chromium you can open the page chrome://gpu and check the Graphics Feature Status, you should read:

Canvas Hardware accelerated
Canvas out-of-process rasterization Enabled
Direct Rendering Display Compositor Disabled
Compositing Hardware accelerated
Multiple Raster Threads Enabled
OpenGL Enabled
Rasterization Hardware accelerated on all pages
Raw Draw Enabled
Video Decode Hardware accelerated
Video Encode Software only. Hardware acceleration disabled
Vulkan Disabled
WebGL Hardware accelerated
WebGL2 Hardware accelerated
WebGPU Disabled

Probably something is disabled, because of Chromium defaults. In that case you have to open the page chrome://flags, then search and set the following flags:

Override software rendering list Overrides the built-in software rendering list and enables GPU-acceleration on unsupported system configurations.
Enable raw draw When enabled, web content will be rastered on output surface directly.
GPU rasterization Use GPU to rasterize web content.
Out-of-process 2D canvas rasterization The rasterization of 2d canvas contents is performed in the GPU process.
Accelerated 2D canvas Enables the use of the GPU to perform 2d canvas rendering instead of using software rendering.

Enable graphics acceleration in Firefox

Web References

doc/appunti/hardware/graphics_hardware_acceleration_raspberry_pi_2.txt · Last modified: 2022/10/20 09:15 by niccolo