ubuntu 下opengl 的使用

固件类型:官方提供的固件
固件文件名称:ROC-RK3588S-PC-RTLINUX_Ubuntu20.04-Gnome-r240_v1.0
固件下载地址:百度网盘
Log日志:app.zip

本帖最后由 SNSO 于 2023-11-27 22:25 编辑

正在做三维显示部分,在三维显示库检测opengl-ES部分均失败,提示错误如下

  1. Error: OpenGl_GraphicDriver, GLX extension is unavailable
  2. Error: EGL does not provide compatible configurations
    上述错误:glXQueryExtension 和 chooseEglSurfConfig 均错误
    实例代码
  if (!XQueryExtension (aDisp, "GLX", &aDummy, &aDummy, &aDummy)
   || !glXQueryExtension (aDisp, &aDummy, &aDummy))
  {
    Message::SendFail ("Error: OpenGl_GraphicDriver, GLX extension is unavailable");
  }
  EGLint aVerMajor = 0; EGLint aVerMinor = 0;
  if (eglInitialize ((EGLDisplay )myEglDisplay, &aVerMajor, &aVerMinor) != EGL_TRUE)
  {
    ::Message::SendFail ("Error: EGL display is unavailable");
    return Standard_False;
  }

  myEglConfig = chooseEglSurfConfig ((EGLDisplay )myEglDisplay, myCaps);
  if (myEglConfig == NULL)
  {
    ::Message::SendFail ("Error: EGL does not provide compatible configurations");
    return Standard_False;
  }

备注:使用的opencascade-7.7.0库,源码在开发板上进行编译

咨询的问题:

  1. 官方所提供的镜像是否支持opengl ?

  2. 是否有三维显示的案列, 列入pcl或qt 的三维显示 [我理解他们都使用opengl]

tchip_askquestions
app.zip (312 Bytes)

只支持OpenGL-ES
https://wiki.t-firefly.com/zh_CN/Firefly-Linux-Guide/manual_ubuntu.html#opengl-es

zhangzhenzhao 发表于 2023-11-25 08:58
只支持OpenGL-ES
https://wiki.t-firefly.com/zh_CN/Firefly-Linux-Guide/manual_ubuntu.html#opengl-es

看介绍EGL 和 GLX都是支持的 , 这两个应该都是给予OpenGL-ES的吧?
我使用OCCT加载时均出现错误,可否提供一个排查的思路?
另外外资料中没有提到RK3588,我们的固件 ROC-RK3588S-PC-RTLINUX_Ubuntu20.04-Gnome-r240_v1.0.img 是否已经支持?

GLX是执行glxinfo | grep “direct rendering”
Error: couldn’t find RGB GLX visual or fbconfig

EGL在OCCT中 does not provide compatible configurations

问题解决:依赖库问题 glx的错误,可以通过sudo apt install libglx* 来解决

SNSO 发表于 2023-11-30 21:58
问题解决:依赖库问题 glx的错误,可以通过sudo apt install libglx* 来解决

追加: sudo apt install libgl1* mesa-utils mesa-utils-extra

本帖最后由 dengkx 于 2023-12-1 14:07 编辑

SNSO 发表于 2023-12-1 13:16
追加: sudo apt install libgl1* mesa-utils mesa-utils-extra

glx是x86那边的,arm用的gles,你安装的glx库使用的cpu,用不到gpu的
https://wiki.t-firefly.com/zh_CN/Firefly-Linux-Guide/first_use.html#an-zhuang-glx-ku

dengkx 发表于 2023-12-1 14:04
glx是x86那边的,arm用的gles,你安装的glx库使用的cpu,用不到gpu的
https://wiki.t-firefly.com/zh_CN

感谢指导,我再研究一下EGL的使用

SNSO 发表于 2023-12-6 15:58
感谢指导,我再研究一下EGL的使用

您好,有结果吗,我这边也是发现glx报错,程序调用opengl失败,安装了 mesa相关库,glx有显示了,opengl确实也能调用了,但是发现应该不是gpu跑, 因为cpu占用很高

jian.king 发表于 2023-12-6 17:15
您好,有结果吗,我这边也是发现glx报错,程序调用opengl失败,安装了 mesa相关库,glx有显示了,opengl …

您好,目前还没有结果,正在编译相关源码,修改调用流程。

我也遇到了使用cpu跑的问题,它无法调用瑞芯微的gpu跑,请问有解决办法吗?

JDY-2022 发表于 2024-4-7 17:29
我也遇到了使用cpu跑的问题,它无法调用瑞芯微的gpu跑,请问有解决办法吗?

我的理解是Firefly提供的Ubuntu镜像里没有包含GPU的完整驱动。要用这个功能的话你可能需要用Armbian提供的包含Mali G610 panfrost驱动的Ubuntu镜像 https://github.com/armbian/commu … ated_desktop.img.xz

我也遇到了写的C++版本的opengl程序会让cup占用满,但是GPU一直在%10左右,画面相当卡。使用的程序是learnopengl推荐学习网上的示例程序。但是运行系统自带的glmax2-es2软件又能调用起来gpu占比达到60%,频率也提升到最大了。请问有没有大佬解决这个问题呢?是不是镜像不包含完整驱动呢?

SNSO 发表于 2023-12-6 22:15
您好,目前还没有结果,正在编译相关源码,修改调用流程。

你好楼主,我最近也在做三维显示渲染,需要opengl,请问这个问题解决了吗