nxp imx8图形开发指南(gpu)-pg直营网

    pg直营网-pg网赌游戏 >关于创龙 > 新闻资讯 > 技术文章

    联系pg直营网

    contact us

    公司总机:020-8998-6280

    技术热线:020-3893-9437

    技术邮箱:support@tronlong.com

    销售邮箱:sales@tronlong.com

    nxp imx8图形开发指南(gpu)

    2021/09/09

    前言

    graphical demo框架提供了对平台相关依赖的抽象。graphical应用的通用封装,如模型加载、纹理加载、着色器编译等,以及其它一些通用的应用逻辑处理的封装,使得使用框架的开发人员(以下简称开发人员)可专注于具体应用需要的渲染相关代码的开发,提高graphical应用的开发效率。demo framework是nxp官方开发的一个跨平台的graphical demo开发框架。此框架有以下特点:● 仅需编写一次应用代码;● 可运行于android、yocto linux、ubuntu、ms windows(yocto  linux泛指基于yocto构建的linux系统);● 易于移植至其它平台;● 支持opengl es2、opengl es3、openvg和试验性的g2d api。


    备注:i.mx 8m mini不支持opengl es3 api,详情参考下图


    图 1


    *测试硬件平台:tlimx8-evm评估板(nxp i.mx 8m mini)


    点击图片/图注即可查看产品详细介绍↓↓↓


    图 2 tlimx8-evm评估板


    案例详细说明、源码请扫描下方二维码或点击下载链接:


    1框架结构


    图 3 demo framework简要框架


    demo app对应具体的某个graphical应用,开发人员可基于demo frame core和demo framework services开发自己的应用。同时helper classes亦提供了许多通用功能的代码实现,比如其中的glprogram和glshader等封装了许多复杂的opengl es的使用逻辑,开发人员可直接调用helper classes封装好的api来进行开发。


    备注:框架的更多设计细节请参考产品资料“6-开发参考资料\nxp官方参考文档\”目录下的《i.mx_graphics_user's_guide.pdf》手册中的17.3~17.7章节。


    2框架使用

    2.1 demo framework开发环境搭建 

    确保虚拟机上已完成nxp i.mx 8m mini sdk环境安装和配置,若未完成,请参考产品资料用户手册目录下的linux开发环境搭建手册。

    请在ubuntu执行如下命令安装依赖工具包。

    host#  sudo apt-get install build-essential libxrandr-dev

    host#  sudo apt-get install libgles2-mesa-dev

    host#  sudo apt-get install libdevil-dev


    图 4


    图 5


    图 6


    执行如下命令通过git工具下载demo framework源码。

    host#  mkdir imx-gpu-sdk-5.6.2-build

    host#  cd imx-gpu-sdk-5.6.2-build

    host#  git clone git://github.com/nxpmicro/gtec-demo-framework.git

    host#  cd gtec-demo-framework

    host#  git checkout df9afd8c21b603662a9d8fcf049d01da0c5cc358


    图 7


    2.2 源码编译

    在demo framework源码所在路径执行如下命令加载sdk环境变量,加载成功即可查看到交叉编译工具链aarch64-poky-linux-gcc。

    host#  source /home/tronlong/sdk/environment-setup-aarch64-poky-linux


    图 8


    执行如下命令进行编译。

    host#  . ./prepare.sh//注意:两个点之间有空格

    host#  fslbuild.py -vvvvv -t sdk --usefeatures [earlyaccess,egl,googleunittest,openvg,g2d,opengles2,opencv] --useextensions [*] --variants [windowsystem=wayland] --buildthreads 24 -c install --cmakeinstallprefix `pwd`

    备注:"--buildthreads 24"为编译时的线程数,一般为处理器核心数的两倍,请根据实际情况修改,fslbuild部分参数说明如下图。



    图 9


    图 10

     

    图 11

    编译耗时约30min,编译完成后将在当前目录下生成bin文件夹。 



    图 12


    执行如下命令可查看bin目录结构,如未安装tree,请执行“sudo apt-get install tree”进行安装。

    host#  tree -l 2 bin

    图 13

    其中部分案例的实现和效果说明,可参考如下连接:https://developer.ridgerun.com/wiki/index.php?title=imx8/multimedia/gpu/opengl。



    2.3 案例测试

    评估板连接hdmi显示器,将编译生成的bin拷贝至评估板“/home/root/”目录下。本次测试将bin目录重命名为tec-demo-framework-bin,以blur demo案例测试为例。
    target#  cd tec-demo-framework-bin/gles2/blur/
    target#  ./gles2.blur_wayland


    图 14

    hdmi显示器输出如下渲染对比视频效果。



    图 15

    3demo新增


    3.1 利用脚本生成demo
    demo新增需在源码编译后的基础上进行,并通过fslbuildnew.py脚本来完成,注意不同类型的应用需不同的template参数。在demo framework源码目录下,执行如下命令查看相关参数。
    host#  . ./prepare.sh
    host#  fslbuildnew.py –help


    图 16


    3.2 新增gles2类型demo示例

    以gles2类型demo为例,新增gles2类型的coolnewdemo至demoapps/gles2目录。请在gtec-demo-framework目录下,执行如下命令。
    host#  source /home/tronlong/sdk/environment-setup-aarch64-poky-linux
    host#  . ./prepare.sh
    host#  cd demoapps/gles2
    host#  fslbuildnew.py gles2 coolnewdemo
    host#  cd coolnewdemo
    host#  fslbuild.py --variants [windowsystem=wayland]

    图 17

    编译完成后,生成的文件目录为“gtec-demo-framework/build/yocto/ninja/release/demoapps/gles2/coolnewdemo/gles2.coolnewdemo_wayland”。

    备注:若遇到如下错误,请执行命令“sudo apt-get ninja-build”安装ninja build工具。


    图 18

    通过fslbuildnew.py脚本生成的demo仅是一个骨架,在实际应用中,需根据实际应用功能添加代码。然后使用fslbuild.py脚本进行编译,最后将对应的的可执行文件及其依赖的资源文件拷贝至评估板运行。
    将coolnewdemo文件夹拷贝至评估板文件系统,执行如下命令进行测试。
    target#  ./gles2.coolnewdemo_wayland


    图 19

    hdmi显示器输出如下效果。



    图 20


    联系创龙

    公司总机:020-8998-6280

    技术热线:020-3893-9734

    技术邮箱:support@tronlong.com

    销售邮箱:sales@tronlong.com



    创龙官方微信公众号

    pg直营网 copyright © 2013~2021 广州创龙电子科技有限公司 all rights reserved  |

    网站地图