I want to use opengl es 3.2 in vim3 with qt5、GLESv2 and wayland-client.
Is it possible?
const char frame_vertex_shader[] =
#ifdef APPLE
“#version 150 core\n”
#else
“#version 320 es\n”
#endif
“in vec4 aPosition;\n”
但opengl运行报错,unrecognized opengl version。
是不是要把ubuntu官方qt 包全部替换为https://docs.khadas.com/linux/vim3/QT5.html khadas的deb才行呢?
有什么快捷的替换方法吗?
发现只替换 libqt5gui5_5.12.8 一个包,其他so会提出undefined symbol等。
备注:
$ wget https://dl.khadas.com/repos/debs/vim3/focal/qt5/libqt5gui5_5.12.8%2Bdfsg-0ubuntu2_arm64.deb
$ sudo dpkg -i libqt5gui5_5.12.8+dfsg-0ubuntu2_arm64.deb
这个demo,是可以正常运行的。
numbqq
2
参考文档安装。
同时你需要注意的是gpu支持fbdev,不支持wayland。
我试着在vim3 pro下运行ubuntu 官方的 libqt5gui5_5.12.8+dfsg-0ubuntu1_arm64.deb 的example
/usr/lib/aarch64-linux-gnu/qt5/examples/opengl/textures/textures
是可以正常运行的。
我仔细看了下,这个是用了opengl库,不是GLESv2 and wayland-client。
我现在有一段 带shader的opengl程序:
const char frame_vertex_shader[] =
//#ifdef APPLE
// “#version 150 core\n”
//#else
“#version 320 es\n”
//#endif
“in vec4 aPosition;\n”
“in vec4 aTexCoord;\n”
“uniform mat4 uTransform;\n”
“out vec4 vTexCoord;\n”
“void main() {\n”
" gl_Position = uTransform * aPosition;\n"
" vTexCoord = aTexCoord;\n"
“}\n”;
这段opengl程序会执行计算,最后用QOpenGLWidget 展示。
我看其是已经正常执行了。用的是openGL库,不是GLESv2 and wayland-client。
是否有办法确定这段程序已经跑在GPU上呢?现在跑得挺慢的。
numbqq
8
你看看CPU占用如何?还有就是VIM3 GPU只支持OpenGL ES,是不支持OpenGL的。
占用掉两个cpu核心。并且这两个cpu使用率基本100%。
我ldd看了下,目前链接的是aarch64-linux-gnu/libGL.so这个库。
我不确定用的libGL.so是不是mesa版本的,如果是mesa的,应该是支持gl es。回去再确认下。
numbqq
10
那应该是CPU的,4.9内核是不支持mesa的。没有OpenGL相关的mali库,只有OpenGL ES。
4.9 kernel 的X11的GPU库,有相关的开发计划吗?
numbqq
12
@ideafold 这个目前没有计划支持X11 GPU。