本文主要是介绍Linux应用程序开发笔记:搭建Mali400/450-OpengGL ES开发环境(闭源模式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介
OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来从简单的图形比特绘制复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟实境、科学可视化程序和电子游戏开发。
OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API由Khronos集团定义推广,Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准。
ARM&Mali是一款高端GPU,将图形IP视觉娱乐变为现实,Mali属于高端GPU,在市场占安卓智能手机30%以下,可与PowerVRSGX系列GPU对比。
目标
搭建基于Allwinner-H5(Cotex-A53)+Mali400/450的OpenGL开发环境
搭建OpenGL环境(fbdev模式)
1、编译linux内核:git clone -b orange-pi-5.0 https://github.com/megous/linux.git
说明:
1)主线内核从4.19版本开始 sun50i-h5.dtsi 中增加了mali450描述
2)主线内容从5.0版本开始 sun50i-a64.dtsi 中增加了mali400描述
3)其它版本内核请自行增加 dts 中关于mali的描述
2、编译mali.ko:git clone https://github.com/mripard/sunxi-mali.git
说明:
1)根据仓库描述进行编译,在你的文件系统 modules 中会产生 mali.ko 模块
3、拷贝user-space(基于mali实现和编译的OpengGL)到你的文件系统 /usr/lib 和 /usr/include 中:git clone https://github.com/bootlin/mali-blobs.git
4、下载测试程序:git clone https://github.com/avafinger/mali-fbdev-stress-test-tools.git
5、运行测试程序:glmark2-es2-fbdev,顺利的话应该就有图形显示了
总结
以上只是正常搭建环境的步骤,但是经过我的测试发现 glmark2-es2-fbdev 会报错,所以是闭源的user-space可能有问题,希望后续维护人员能够修复
附采用r5p0版本测试可显示部分内容,依旧是不能完全正确显示:
kernel(需要自己增加关于mali的dts):git clone -b orange-pi-4.14 https://github.com/megous/linux.git
mali(这里有增加mali dts的补丁):git clone https://github.com/Jeepgoing/sunxi-mali.git
user-space:git clone https://github.com/Jeepgoing/mali-blobs.git
参考资料:
https://bootlin.com/blog/mali-opengl-support-on-allwinner-platforms-with-mainline-linux/
https://forum.armbian.com/topic/4467-orange-pi-pc2-h5-mali-blob/
https://github.com/mripard/sunxi-mali/issues/56
2019-02-19
这篇关于Linux应用程序开发笔记:搭建Mali400/450-OpengGL ES开发环境(闭源模式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!