Mali
Contents
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:
- 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
Wayland structure in Linux OS
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