User Tools

Site Tools


doc:appunti:hardware:graphics_hardware_acceleration_raspberry_pi_2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:hardware:graphics_hardware_acceleration_raspberry_pi_2 [2022/10/17 13:23] – [How to check if KMS and V3D are active] niccolodoc:appunti:hardware:graphics_hardware_acceleration_raspberry_pi_2 [2022/10/20 11:15] – [Enable graphics acceleration in Chromium] niccolo
Line 2: Line 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**. 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 FIXME
  
-====== How to check if  KMS and V3D are active ======+===== 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 adding the following line into **/boot/config.txt**:+**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**:
  
 <file> <file>
Line 13: Line 15:
 </file> </file>
  
-The older Raspberry Pi 3 has a **VideoCore IV** GPU and the legacy software driver was called **VC4**. The new Device Tree Overly is capable to detect the VideoCore available (IV or VI) and provide the same new V3D interface.+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 the content of following pseudofile in the Raspberry Pi 3 (it can be **ok** or **disabled**):+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:
  
 <code> <code>
Line 21: Line 23:
 </code> </code>
  
-for the Raspberry Pi 4 the exposed pseudofile is different:+For the Raspberry Pi 4 the exposed pseudofile is different:
  
 <code> <code>
-/proc/device-tree/v3dbus/v3d@7ec04000/status+cat /proc/device-tree/v3dbus/v3d@7ec04000/status
 </code> </code>
  
-The KMS is instead generally **disabled**you can check the following pseudofile:+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''):
  
 <code> <code>
 cat /proc/device-tree/soc/firmwarekms@7e600000/status cat /proc/device-tree/soc/firmwarekms@7e600000/status
 </code> </code>
 +
 +The new overlay **vc4-kms-v3d** doesn't expose that node (which results as ''disabled''), but expose several others KMS related nodes:
 +
 +<code>
 +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
 +</code>
 +
 +===== 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 rasterization  | FIXME Does this exists?  |
 +^ 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.  |
 +^ Hardware-accelerated video decode  | FIXME Does this exists?  |
 +
 +
 +===== Enable graphics acceleration in Firefox =====
  
 ===== Web References ===== ===== Web References =====
Line 38: Line 83:
   * **[[https://lemariva.com/blog/2020/08/raspberry-pi-4-video-acceleration-decode-chromium|Raspberry Pi 4: Hardware accelerated video decoding (GPU) in Chromium]]**   * **[[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://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]]**
  
doc/appunti/hardware/graphics_hardware_acceleration_raspberry_pi_2.txt · Last modified: 2022/10/20 11:15 by niccolo