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 14:10] – [How to check if V3D and/or KMS are active] niccolodoc:appunti:hardware:graphics_hardware_acceleration_raspberry_pi_2 [2022/10/20 11:15] – [Enable graphics acceleration in Chromium] niccolo
Line 7: Line 7:
 FIXME FIXME
  
-====== How to check if V3D and/or KMS 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 at boot time 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**:
Line 15: Line 15:
 </file> </file>
  
-The older Raspberry Pi 3 has 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.+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: 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:
Line 29: Line 29:
 </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 40: 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