Difference between revisions of "Mali"

From Rockchip open source Document
Jump to: navigation, search
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
  
Structure
+
== Get the library of mali ==
  
[[File:Mali gpu.png|RTENOTITLE]]
+
[https://github.com/rockchip-linux/libmali https://github.com/rockchip-linux/libmali]
 +
 
 +
you can get mali library and header file from this link.
 +
 
 +
(tip: if you use debian, you can build the mali deb from dockor)
 +
 
 +
== Introduction ==
 +
 
 +
With support for 2D graphics, 3D graphics, and GPGPU computing, the GPU Series of GPUs provides a complete graphics acceleration platform based on open standards.
 +
 
 +
The GPU brings graphics power to a wide range of different products, from mobile user interfaces to tablets, HDTV, and mobile gaming. One single driver stack for all graphics configurations simplifies application porting, system integration, and maintenance.Scheduling and performance scaling are fully handled within the graphics system with no special considerations required from the application developer.
 +
 
 +
The GPU takes graphics instructions from software applications running on the application processor. It processes the graphics instructions and puts the results back into system memory. These results are sent to the framebuffer and on to the display device.
 +
 
 +
=== RK3288 ===
 +
 
 +
The Arm Mali-T760 GPU was the first High Area Efficiency graphics processor with the Midgard graphics architecture. The Mali-T760 GPU balances performance, quality, energy use, and area savings. The layout is simpler than its predecessors, the silicon area is smaller, and time to market is quicker. The GPU maintains the high quality that is needed for a compelling graphics experience.
 +
 
 +
The GPU supports the following graphics standards:
 +
 
 +
#OpenGL ES 1.1 Specification at Khronos
 +
#OpenGL ES 2.0 Specification at Khronos
 +
#OpenGL ES 3.0 Specification at Khronos
 +
#OpenCL 1.0 Specification at Khronos,Full Profile specification
 +
#OpenCL 1.1 Specification at Khronos,Full Profile specification
 +
#OpenCL 1.2 Specification at Khronos,Full Profile specification
 +
 
 +
support :
 +
 
 +
wayland, gbm , x11 , fbdev
 +
 
 +
=== RK3399 ===
 +
 
 +
The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPUs are designed for complex graphics use cases and provide stunning visuals for UHD content. Scalable from 1-16 cores, these GPUs implement new features and optimizations within their micro-architectures such as higher arithmetic throughput to better handle both casual and complex content. Other optimization examples include quad prioritization delivering enhanced performance for UI and casual content, and enhanced Forward Pixel Kill that improves performance for more advanced use cases by eliminating redundant work early in the pipeline. 
 +
 
 +
The GPU supports the following graphics standards:
 +
 
 +
#OpenGL ES 1.1 Specification at Khronos
 +
#OpenGL ES 2.0 Specification at Khronos
 +
#OpenGL ES 3.0 Specification at Khronos
 +
#OpenCL 1.0 Specification at Khronos,Full Profile specification
 +
#OpenCL 1.1 Specification at Khronos,Full Profile specification
 +
#OpenCL 1.2 Specification at Khronos,Full Profile specification
 +
 
 +
support :
 +
 
 +
wayland, gbm , x11 , fbdev
 +
 
 +
=== RK3328 ===
 +
 
 +
The Arm Mali-450 is the second Arm Mali Ultra Low Power GPU built on the Utgard architecture and introduces double the scalability of the very popular Mali-400 GPU, to address a broader range of performance points and use cases.   
 +
 
 +
The GPU supports the following graphics standards:
 +
 
 +
#OpenGL ES 2.0
 +
#OpenGL ES 1.1
 +
#EGL 1.5
 +
 
 +
support :
 +
 
 +
wayland, gbm , x11 , fbdev
 +
 
 +
=== RK3326 ===
 +
 
 +
The Arm Mali-G31 (1 core - 2 EE ) GPU is the very first Ultra-Efficient GPU based on the innovative Bifrost architecture.
 +
 
 +
Bringing the benefits of Bifrost to a whole new tier of device, Mali-G31 builds on the success of the previous Ultra Efficient products in the Mali-400 Utgard series. With significant energy and area savings compared to the next level of device, plus support for the very latest APIs, Mali-G31 is the GPU of choice for cost constrained devices.
 +
 
 +
The GPU supports these graphics API standards:
 +
 
 +
#OpenCL 2.0 Full Profile.
 +
#OpenGL ES 1.1 Specification at Khronos
 +
#OpenGL ES 2.0 Specification at Khronos
 +
#OpenGL ES 3.2 Specification at Khronos
 +
 
 +
support :
 +
 
 +
wayland, gbm
 +
 
 +
== Structure ==
 +
 
 +
=== X11 structure in Linux OS ===
 +
 
 +
[[File:Xserver gpu.png]]
 +
 
 +
=== Wayland structure in Linux OS ===
 +
 
 +
[[File:Wayland.png]]
 +
 
 +
== Debug ==
 +
 
 +
1.Look up the load@frequency of GPU
 +
 
 +
        cat /sys/class/devfreq/*.gpu/load
 +
 
 +
2.Look up the supported mode or supported frquency for GPU
 +
 
 +
        cat /sys/class/devfreq/*.gpu/available_governors
 +
 
 +
        cat /sys/class/devfreq/*.gpu/available_frequencies
 +
 
 +
3.Set performance(the most high frequency) for GPU
 +
 
 +
        echo performance > /sys/class/devfreq/*.gpu/governor
 +
 
 +
4.Set frequency for GPU
 +
 
 +
        echo userspace > /sys/class/devfreq/*.gpu/governor
 +
 
 +
        echo * > /sys/class/devfreq/*.gpu/set_freq
 +
 
 +
        (ps: you should do step 2 to ensure the available_frequencies before you set)
 +
 
 +
5.Get a version
 +
 
 +
         strings libMali.so | grep rk_so_ver
 +
 
 +
6.Set power always on
 +
 
 +
         echo always_on > /sys/devices/*.gpu/power_policy
 +
 
 +
 
 +
 
 +
== Wayland performance test ==
 +
 
 +
3D preformance:  glmark2-es2-wayland
 +
 
 +
glmark2-es2 can get from [https://github.com/glmark2/glmark2 https://github.com/glmark2/glmark2]

Latest revision as of 06:31, 30 July 2018

Get the library of mali

https://github.com/rockchip-linux/libmali

you can get mali library and header file from this link.

(tip: if you use debian, you can build the mali deb from dockor)

Introduction

With support for 2D graphics, 3D graphics, and GPGPU computing, the GPU Series of GPUs provides a complete graphics acceleration platform based on open standards.

The GPU brings graphics power to a wide range of different products, from mobile user interfaces to tablets, HDTV, and mobile gaming. One single driver stack for all graphics configurations simplifies application porting, system integration, and maintenance.Scheduling and performance scaling are fully handled within the graphics system with no special considerations required from the application developer.

The GPU takes graphics instructions from software applications running on the application processor. It processes the graphics instructions and puts the results back into system memory. These results are sent to the framebuffer and on to the display device.

RK3288

The Arm Mali-T760 GPU was the first High Area Efficiency graphics processor with the Midgard graphics architecture. The Mali-T760 GPU balances performance, quality, energy use, and area savings. The layout is simpler than its predecessors, the silicon area is smaller, and time to market is quicker. The GPU maintains the high quality that is needed for a compelling graphics experience.

The GPU supports the following graphics standards:

  1. OpenGL ES 1.1 Specification at Khronos
  2. OpenGL ES 2.0 Specification at Khronos
  3. OpenGL ES 3.0 Specification at Khronos
  4. OpenCL 1.0 Specification at Khronos,Full Profile specification
  5. OpenCL 1.1 Specification at Khronos,Full Profile specification
  6. OpenCL 1.2 Specification at Khronos,Full Profile specification

support :

wayland, gbm , x11 , fbdev

RK3399

The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPUs are designed for complex graphics use cases and provide stunning visuals for UHD content. Scalable from 1-16 cores, these GPUs implement new features and optimizations within their micro-architectures such as higher arithmetic throughput to better handle both casual and complex content. Other optimization examples include quad prioritization delivering enhanced performance for UI and casual content, and enhanced Forward Pixel Kill that improves performance for more advanced use cases by eliminating redundant work early in the pipeline. 

The GPU supports the following graphics standards:

  1. OpenGL ES 1.1 Specification at Khronos
  2. OpenGL ES 2.0 Specification at Khronos
  3. OpenGL ES 3.0 Specification at Khronos
  4. OpenCL 1.0 Specification at Khronos,Full Profile specification
  5. OpenCL 1.1 Specification at Khronos,Full Profile specification
  6. OpenCL 1.2 Specification at Khronos,Full Profile specification

support :

wayland, gbm , x11 , fbdev

RK3328

The Arm Mali-450 is the second Arm Mali Ultra Low Power GPU built on the Utgard architecture and introduces double the scalability of the very popular Mali-400 GPU, to address a broader range of performance points and use cases.   

The GPU supports the following graphics standards:

  1. OpenGL ES 2.0
  2. OpenGL ES 1.1
  3. EGL 1.5

support :

wayland, gbm , x11 , fbdev

RK3326

The Arm Mali-G31 (1 core - 2 EE ) GPU is the very first Ultra-Efficient GPU based on the innovative Bifrost architecture.

Bringing the benefits of Bifrost to a whole new tier of device, Mali-G31 builds on the success of the previous Ultra Efficient products in the Mali-400 Utgard series. With significant energy and area savings compared to the next level of device, plus support for the very latest APIs, Mali-G31 is the GPU of choice for cost constrained devices.

The GPU supports these graphics API standards:

  1. OpenCL 2.0 Full Profile.
  2. OpenGL ES 1.1 Specification at Khronos
  3. OpenGL ES 2.0 Specification at Khronos
  4. OpenGL ES 3.2 Specification at Khronos

support :

wayland, gbm

Structure

X11 structure in Linux OS

Xserver gpu.png

Wayland structure in Linux OS

Wayland.png

Debug

1.Look up the load@frequency of GPU

        cat /sys/class/devfreq/*.gpu/load

2.Look up the supported mode or supported frquency for GPU

        cat /sys/class/devfreq/*.gpu/available_governors

        cat /sys/class/devfreq/*.gpu/available_frequencies

3.Set performance(the most high frequency) for GPU

        echo performance > /sys/class/devfreq/*.gpu/governor

4.Set frequency for GPU

        echo userspace > /sys/class/devfreq/*.gpu/governor

        echo * > /sys/class/devfreq/*.gpu/set_freq

        (ps: you should do step 2 to ensure the available_frequencies before you set)

5.Get a version

         strings libMali.so | grep rk_so_ver

6.Set power always on

         echo always_on > /sys/devices/*.gpu/power_policy

 

Wayland performance test

3D preformance:  glmark2-es2-wayland

glmark2-es2 can get from https://github.com/glmark2/glmark2