====== 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]]**