【问题标题】:eglInitialize failed with EGL_NOT_INITIALIZEDeglInitialize 因 EGL_NOT_INITIALIZED 而失败
【发布时间】:2023-01-08 10:52:14
【问题描述】:

我正在尝试运行使用 EGL 的 3D 人体模型生成器。当我运行以下代码时:

import OpenGL.EGL as egl
from ctypes import pointer

egl_display = egl.eglGetDisplay(egl.EGL_DEFAULT_DISPLAY)
print(egl_display)

major, minor = egl.EGLint(), egl.EGLint()
print(major, minor)

egl.eglInitialize(egl_display, pointer(major), pointer(minor))

上述代码的输出如下:

#################### the first two print info ####################
<OpenGL._opaque.EGLDisplay_pointer object at 0x7f480e971940>
c_int(0) c_int(0)

#################### error ####################
Traceback (most recent call last):
  File "main.py", line 10, in <module>
    egl.eglInitialize(egl_display, pointer(major), pointer(minor))
  File "/data_HDD/zhuxingyu/anaconda3/envs/icon/lib/python3.8/site-packages/OpenGL/platform/baseplatform.py", line 415, in __call__
    return self( *args, **named )
  File "src/errorchecker.pyx", line 58, in OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError
OpenGL.raw.EGL._errors.EGLError: EGLError(
        err = EGL_NOT_INITIALIZED,
        baseOperation = eglInitialize,
        cArguments = (
                <OpenGL._opaque.EGLDisplay_pointer object at 0x7f480e971940>,
                <OpenGL.raw.EGL._types.LP_c_int object at 0x7f480e971ac0>,
                <OpenGL.raw.EGL._types.LP_c_int object at 0x7f480e971b40>,
        ),
        result = 0
)

我不熟悉 EGL,对这个错误真的很困惑,这是我机器的信息:

  • 5 NVIDIA GeForce GPU with CUDA 11.4 and Driver version 470.82.00 (get it from nvidia-smi)
  • 已安装libegl1并在/usr/lib/x86_64-linux-gnu/下有以下*.so文件
/usr/lib/x86_64-linux-gnu/libEGL_mesa.so.0
/usr/lib/x86_64-linux-gnu/libEGL_mesa.so.0.0.0
/usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.0
/usr/lib/x86_64-linux-gnu/libEGL_nvidia.so.470.82.00
/usr/lib/x86_64-linux-gnu/libEGL.so
/usr/lib/x86_64-linux-gnu/libEGL.so.1
/usr/lib/x86_64-linux-gnu/libEGL.so.1.0.0
  • 我正在使用 vscode remote-ssh 运行代码,即我在机器 A 上工作,而代码实际上在机器 B 上运行。上面的所有机器信息都是关于机器 B 的。

我还需要做什么才能让eglInitialize正常运行?

【问题讨论】:

    标签: egl


    【解决方案1】:

    使用docker镜像解决nvidia/cudagl@11.4.0-devel-ubuntu18.04

    【讨论】:

      【解决方案2】:

      在 wsl2 中遇到了同样的问题,并通过将我在 wsl2 中的 cuda 版本更新为最新的以下说明 CUDA on WSL User Guide 来解决

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-22
        • 1970-01-01
        • 2018-02-16
        • 2012-10-03
        • 2014-07-16
        • 2021-11-23
        • 2018-10-04
        • 2020-03-23
        相关资源
        最近更新 更多