
清空记录
历史记录
取消
清空记录
历史记录

瑞芯微RK3576芯片作为一款中高端的八核Arm架构嵌入式处理器,集成 Mali-G52 MC3的GPU。本次OpenGL性能测试,基于触觉智能RK3576开发板Purple Pi OH2演示。
为了回馈大家对触觉智能的支持,现购买触觉智能RK3576开发板享秒杀活动,可通过上图淘宝扫码购买。
购买链接:https://item.taobao.com/item.htm?id=978595600333
OpenGL开放图形库
OpenGL(Open Graphics Library,开放图形库)是一套跨平台、跨语言的开源图形编程接口,而非编程语言或独立软件,核心作用是为开发者提供标准化的函数 / 指令集,让程序能直接控制显卡(GPU)渲染 2D/3D 图形,广泛应用于游戏、可视化、工业设计、虚拟现实(VR)等领域。
触觉智能Purple Pi OH2开发板采用RK3576核心板+底板设计,支持二次开发底板。该开发板可支持OpenGL ES、OpenGL。同时触觉智能作为专业RK方案商,可提供RK3576配套的工业控制、智能终端、车载显示、边缘计算等场景的核心硬件方案。
演示环境
演示设备为触觉智能RK3576开发板Purple Pi OH2:
系统固件为Ubuntu20.04(定制固件);
测试工具软件包括Glmark2、Glxgears、QT应用程序;
QT版本:Qt-5.15.8
触觉智能RK3576核心板,仅40.5×40.5mm极致小尺寸,邮票孔封装,支持LPDDR4或LPDDR5高速内存,率先适配开源鸿蒙OpenHarmony5.0国产操作系统,100%全国产,支持最高-40~85℃工业级环境。
OpenGL测试
通过RK3576开发板Ubuntu系统安装GLmark2工具软件,并执行以下命令进行测试:
sudo apt-get install glmark2
glmark2测试分值结果为675分:
该工具属于mesa-utils套件,是OpenGL测试工具,适合快速验证GPU的基础渲染功能和初步性能,主要用于测试GPU帧率。
首先我们将Glxgears工具进行安装:
sudo apt install mesa-utils测试GPU帧率:
输入Glxgears测试会弹出带三个旋转齿轮的窗口,终端每5秒打印一次帧率,命令如下:
sudo glxgears由于测试HDMI显示器刷新率限制60FPS,下述测试结果平均帧率在60FPS,无法更高:
解除显示器刷新率限制,测试GPU极限帧率,执行如下命令:
sudo vblank_mode=0 glxgearsQT程序测试OpenGL
接下来的测试使用QT官方的OpenGL测试例程,该程序核心测试OpenGL 的核心功能,包括着色器编程、VBO 缓冲、纹理映射、光照计算、3D 坐标变换、深度测试等。相关例程源码请关注触觉智能公众号,添加客服134-2385-6106获取。
进入系统执行如下命令,编译QT程序:
qmake .
make返回结果:
编译完成后,运行QT测试程序:
./qopenglwidget &运行如图:
后台查看GPU占用率,占比68%,处于中等负载状态:
watch -n 0.3 cat /sys/devices/platform/27800000.gpu/devfreq/27800000.gpu/loadQT程序OpenGL部分核心代码分析:
//OPENGL初始化
void GLWidget::initializeGL()
{
// 1. 初始化OpenGL函数
initializeOpenGLFunctions();
// 2. 创建纹理
m_texture = new QOpenGLTexture(QImage(":/qt.png"));
// 3. 设置Program1(Qt Logo渲染)
setupProgram1();
// 4. 设置Program2(纹理立方体渲染)
setupProgram2();
// 5. 初始化变量
m_fAngle = 0;
m_fScale = 1;
// 6. 创建几何数据
createGeometry();
// 7. 设置VBO1(Qt Logo顶点数据)
setupVBO1();
// 8. 创建气泡效果
createBubbles(bubbleNum - m_bubbles.count());
}
//OpenGL渲染
void GLWidget::paintGL()
{
// 1. 气泡管理
createBubbles(bubbleNum - m_bubbles.count());
// 2. 开始QPainter绘制
QPainter painter;
painter.begin(this);
painter.beginNativePainting();
// 3. OpenGL状态设置和清理
glClearColor(...);
glClear(...);
// 4. 3D渲染设置
glFrontFace(GL_CW);
glCullFace(GL_FRONT);
glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
// 5. 模型视图矩阵计算
QMatrix4x4 modelview;
...
// 6. 3D物体渲染
if (m_qtLogo) {
paintQtLogo(); // 渲染Qt Logo
} else {
paintTexturedCube(); // 渲染纹理立方体
}
// 7. 恢复OpenGL状态
glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
painter.endNativePainting();
// 8. 2D叠加绘制
if (m_showBubbles) {
... // 绘制气泡
}
// 9. 帧率显示
if (const int elapsed = m_time.elapsed()) {
... // 显示FPS
}
painter.end();
// 10. 气泡动画更新
for (Bubble *bubble : qAsConst(m_bubbles))
bubble->move(rect());
// 11. 动画状态更新
updateAnimationState();
}本次测试完毕,可以看出RK3576拥有不凡的GPU性能,加上八核CPU与6Tops算力,可作为RK3588超值平替!
