Linux应用程序开发笔记:搭建Mali400/450-OpengGL ES开发环境(闭源模式)

本文主要是介绍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开发环境(闭源模式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957587

相关文章

linux生产者,消费者问题

pthread_cond_wait() :用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

Linux 安装、配置Tomcat 的HTTPS

Linux 安装 、配置Tomcat的HTTPS 安装Tomcat 这里选择的是 tomcat 10.X ,需要Java 11及更高版本 Binary Distributions ->Core->选择 tar.gz包 下载、上传到内网服务器 /opt 目录tar -xzf 解压将解压的根目录改名为 tomat-10 并移动到 /opt 下, 形成个人习惯的路径 /opt/tomcat-10

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

RedHat运维-Linux文本操作基础-AWK进阶

你不用整理,跟着敲一遍,有个印象,然后把它保存到本地,以后要用再去看,如果有了新东西,你自个再添加。这是我参考牛客上的shell编程专项题,只不过换成了问答的方式而已。不用背,就算是我自己亲自敲,我现在好多也记不住。 1. 输出nowcoder.txt文件第5行的内容 2. 输出nowcoder.txt文件第6行的内容 3. 输出nowcoder.txt文件第7行的内容 4. 输出nowcode

【Linux进阶】UNIX体系结构分解——操作系统,内核,shell

1.什么是操作系统? 从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核(kerel),因为它相对较小,而且位于环境的核心。  从广义上说,操作系统包括了内核和一些其他软件,这些软件使得计算机能够发挥作用,并使计算机具有自己的特生。这里所说的其他软件包括系统实用程序(system utility)、应用程序、shell以及公用函数库等

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

如何开启和关闭3GB模式

https://jingyan.baidu.com/article/4d58d5414dfc2f9dd4e9c082.html