日韩精品电影一二区-精品久久久久久亚洲中文字幕-一区二区三区国产美女在线播放-欧美日韩在线观看你懂的-午夜精品一区二区三区的区别-久久精品娱乐亚洲领-欧美在线网站一区二区三区-在线观看91精品国产不卡-国产水滴盗摄一区二区

創(chuàng)龍首頁 >關(guān)于創(chuàng)龍 > 新聞資訊 > 技術(shù)文章

聯(lián)系我們

Contact Us

公司總機:020-8998-6280

技術(shù)熱線:020-3893-9734

技術(shù)郵箱:support@tronlong.com

銷售郵箱:sales@tronlong.com

NXP IMX8圖形開發(fā)指南(GPU)

2021/09/09

前言

Graphical Demo框架提供了對平臺相關(guān)依賴的抽象。Graphical應用的通用封裝,如模型加載、紋理加載、著色器編譯等,以及其它一些通用的應用邏輯處理的封裝,使得使用框架的開發(fā)人員(以下簡稱開發(fā)人員)可專注于具體應用需要的渲染相關(guān)代碼的開發(fā),提高Graphical應用的開發(fā)效率。Demo Framework是NXP官方開發(fā)的一個跨平臺的Graphical Demo開發(fā)框架。此框架有以下特點:● 僅需編寫一次應用代碼;● 可運行于Android、Yocto Linux、Ubuntu、MS Windows(Yocto  Linux泛指基于Yocto構(gòu)建的Linux系統(tǒng));● 易于移植至其它平臺;● 支持OpenGL ES2、OpenGL ES3、OpenVG和試驗性的G2D API。


備注:i.MX 8M Mini不支持OpenGL ES3 API,詳情參考下圖


圖 1


*測試硬件平臺:TLIMX8-EVM評估板(NXP i.MX 8M Mini)


點擊圖片/圖注即可查看產(chǎn)品詳細介紹↓↓↓


圖 2 TLIMX8-EVM評估板


案例詳細說明、源碼請掃描下方二維碼或點擊下載鏈接:

http://site.tronlong.com/pfdownload


1框架結(jié)構(gòu)


圖 3 Demo Framework簡要框架


Demo App對應具體的某個Graphical應用,開發(fā)人員可基于Demo Frame Core和Demo Framework Services開發(fā)自己的應用。同時Helper Classes亦提供了許多通用功能的代碼實現(xiàn),比如其中的GLProgram和GLShader等封裝了許多復雜的OpenGL ES的使用邏輯,開發(fā)人員可直接調(diào)用Helper Classes封裝好的API來進行開發(fā)。


備注:框架的更多設(shè)計細節(jié)請參考產(chǎn)品資料“6-開發(fā)參考資料\NXP官方參考文檔\”目錄下的《i.MX_Graphics_User's_Guide.pdf》手冊中的17.3~17.7章節(jié)。


2框架使用

2.1 Demo Framework開發(fā)環(huán)境搭建 

確保虛擬機上已完成NXP i.MX 8M Mini SDK環(huán)境安裝和配置,若未完成,請參考產(chǎn)品資料用戶手冊目錄下的Linux開發(fā)環(huán)境搭建手冊。

請在Ubuntu執(zhí)行如下命令安裝依賴工具包。

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


執(zhí)行如下命令通過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源碼所在路徑執(zhí)行如下命令加載SDK環(huán)境變量,加載成功即可查看到交叉編譯工具鏈aarch64-poky-linux-gcc。

Host#  source /home/tronlong/SDK/environment-setup-aarch64-poky-linux


圖 8


執(zhí)行如下命令進行編譯。

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"為編譯時的線程數(shù),一般為處理器核心數(shù)的兩倍,請根據(jù)實際情況修改,F(xiàn)slBuild部分參數(shù)說明如下圖。



圖 9


圖 10

 

圖 11

編譯耗時約30min,編譯完成后將在當前目錄下生成bin文件夾。 



圖 12


執(zhí)行如下命令可查看bin目錄結(jié)構(gòu),如未安裝tree,請執(zhí)行“sudo apt-get install tree”進行安裝。

Host#  tree -L 2 bin

圖 13

其中部分案例的實現(xiàn)和效果說明,可參考如下連接: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新增需在源碼編譯后的基礎(chǔ)上進行,并通過FslBuildNew.py腳本來完成,注意不同類型的應用需不同的template參數(shù)。在Demo Framework源碼目錄下,執(zhí)行如下命令查看相關(guān)參數(shù)。
Host#  . ./prepare.sh
Host#  FslBuildNew.py –help


圖 16


3.2 新增GLES2類型Demo示例

以GLES2類型Demo為例,新增GLES2類型的CoolNewDemo至DemoApps/GLES2目錄。請在gtec-demo-framework目錄下,執(zhí)行如下命令。
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”。

備注:若遇到如下錯誤,請執(zhí)行命令“sudo apt-get ninja-build”安裝ninja build工具。



圖 18


通過FslBuildNew.py腳本生成的Demo僅是一個骨架,在實際應用中,需根據(jù)實際應用功能添加代碼。然后使用FslBuild.py腳本進行編譯,最后將對應的的可執(zhí)行文件及其依賴的資源文件拷貝至評估板運行。
將CoolNewDemo文件夾拷貝至評估板文件系統(tǒng),執(zhí)行如下命令進行測試。
Target#  ./GLES2.CoolNewDemo_Wayland


圖 19

HDMI顯示器輸出如下效果。



圖 20


Copyright © 2013~2025 廣州創(chuàng)龍電子科技有限公司 All Rights Reserved  | 粵ICP備15055271號