====== 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 =====
* **[[https://forums.raspberrypi.com/viewtopic.php?t=317511|All about accelerated video on the Raspberry Pi]]**
* **[[https://lemariva.com/blog/2020/08/raspberry-pi-4-video-acceleration-decode-chromium|Raspberry Pi 4: Hardware accelerated video decoding (GPU) in Chromium]]**
* **[[https://forums.raspberrypi.com/viewtopic.php?t=324835|HEVC Main 10 Broken for VLC on Bullseye]]**
* **[[https://www.dedoimedo.com/computers/rpi4-ubuntu-mate-hw-video-acceleration.html|RPI4 & Ubuntu MATE - How to enable video acceleration]]**
* **[[https://forums.raspberrypi.com/viewtopic.php?t=320836|(f)KMS on 64-bit Pi 4 firmware question]]**
* **[[https://forums.raspberrypi.com/viewtopic.php?t=320844|Chromium/Firefox no HW acceleration]]**