Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 5120

Graphics programming • Can not initialize EGL with new mesa (built from sources)

$
0
0
Hi, All!
I have problems with hanging GPU (dmesg reports many "[drm] resetting GPU" messages). I searched a bit and decided to upgrade kernel and mesa. I have successfully upgraded to 6.12 kernel, unfortunately it did not solve GPU problem (but solved some others unrelated ones). So, I decided to also update to the latest mesa.

Following the instructions on the mesa3d site, I built mesa 25.0.0-rc2 with the following configuration command:

Code:

meson setup build/ -Dprefix="/share/mesa" -Dvulkan-drivers=[] -Dvideo-codecs=[] -Dglvnd=disabled -Degl=enabled -Dgles1=enabled -Dgles2=enabled -Dgallium-drivers=v3d,vc4 -Dbuildtype=release
It resulted in the following configuration summary:

Code:

Build targets in project: 256wayland-protocols 1.38    Headers: YESmesa 25.0.0-rc2  Directories    prefix                       : /share/mesa    libdir                       : lib/arm-linux-gnueabihf    includedir                   : include  Common C and C++ arguments    c_cpp_args                   : -mtls-dialect=gnu2  OpenGL   OpenGL                       : YES    ES1                          : YES    ES2                          : YES    Shared glapi                 : YES    GLVND                        : NO  DRI    Platform                     : drm    Driver dir                   : /root/src/mesa/lib/arm-linux-gnueabihf/dri  GLX    Enabled                      : YES    Provider                     : dri  EGL    Enabled                      : YES    Drivers                      : builtin:egl_dri2 builtin:egl_dri3    Platforms                    : x11 wayland surfaceless drm xcb  GBM    Enabled                      : YES    Backends path                : /root/src/mesa/lib/arm-linux-gnueabihf/gbm  Vulkan    Drivers                      : NO  Video    Codecs                       : NO    APIs                         : NO  LLVM    Enabled                      : YES    Version                      : 15.0.6  Gallium    Enabled                      : YES    Drivers                      : v3d vc4    Platforms                    : x11 wayland surfaceless drm xcb    Frontends                    : mesa    Off-screen rendering (OSMesa): NO    HUD lm-sensors               : YES  Perfetto    Enabled                      : NO  Teflon (TensorFlow Lite delegate)    Enabled                      : NO  Subprojects    wayland-protocols            : YES  User defined options    buildtype                    : release    egl                          : enabled    gallium-drivers              : v3d,vc4    gles1                        : enabled    gles2                        : enabled    glvnd                        : false    prefix                       : /share/mesa    video-codecs                 : []    vulkan-drivers               : []
I built and installed mesa into '/share/mesa' directory. After small corrections of the library paths (so new mesa libraries are used) I compiled and run my program (It uses GBM/DRM/EGL/OpenGLES2 combination for drawing without X). Unfortunately with the new mesa eglGetPlatformDisplayEXT always returns zero with the 0x300C (Bad parameter) error. It looks like I need to correct mesa configuration and rebuild it.

Here is a piece of the code (it works flawlessly on the mesa version from the Bookworm installation):

Code:

   gc->drm_fd = open("/dev/dri/card0", O_RDWR);  ............   gc->gbm_device = gbm_create_device(gc->drm_fd);   ...........   gc->egl_display = eglGetPlatformDisplayEXT(EGL_PLATFORM_GBM_KHR, gc->gbm_device, NULL);

Statistics: Posted by oleg11 — Wed Feb 12, 2025 5:35 pm — Replies 1 — Views 36



Viewing all articles
Browse latest Browse all 5120

Trending Articles