Mesa (main): kopper: print better error message if loader not detected

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Apr 12 22:16:47 UTC 2022


Module: Mesa
Branch: main
Commit: 48ae404b425b1247a777bb5ee01c0a3e659f419a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=48ae404b425b1247a777bb5ee01c0a3e659f419a

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Mon Apr 11 08:34:36 2022 -0400

kopper: print better error message if loader not detected

silently failing on release builds is annoying

Reviewed-by: Yonggang Luo <luoyonggang at gmail.com>
Reviewed-by: Daniel Stone <daniels at collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15851>

---

 src/gallium/frontends/dri/kopper.c    | 7 ++++++-
 src/gallium/frontends/dri/meson.build | 7 ++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/gallium/frontends/dri/kopper.c b/src/gallium/frontends/dri/kopper.c
index e02038075ec..6fa8e70c457 100644
--- a/src/gallium/frontends/dri/kopper.c
+++ b/src/gallium/frontends/dri/kopper.c
@@ -116,7 +116,12 @@ kopper_init_screen(__DRIscreen * sPriv)
    struct kopper_screen *kscreen;
    struct pipe_screen *pscreen = NULL;
 
-   assert(sPriv->kopper_loader);
+   if (!sPriv->kopper_loader) {
+      fprintf(stderr, "mesa: Kopper interface not found!\n"
+                      "      Ensure the versions of %s built with this version of Zink are\n"
+                      "      in your library path!\n", KOPPER_LIB_NAMES);
+      return NULL;
+   }
    kscreen = CALLOC_STRUCT(kopper_screen);
    if (!kscreen)
       return NULL;
diff --git a/src/gallium/frontends/dri/meson.build b/src/gallium/frontends/dri/meson.build
index 45c5acf0cbe..cb4f434c775 100644
--- a/src/gallium/frontends/dri/meson.build
+++ b/src/gallium/frontends/dri/meson.build
@@ -45,11 +45,16 @@ if with_dri2
   files_libdri += files('dri2.c')
 endif
 
+libdri_c_args = []
 if with_gallium_zink
+  if get_option('glvnd')
+    libdri_c_args += '-DKOPPER_LIB_NAMES="libEGL_ at 0@ and libGLX_ at 0@"'.format(get_option('glvnd-vendor-name'))
+  else
+    libdri_c_args += '-DKOPPER_LIB_NAMES="libEGL and libGLX"'
+  endif
   files_libdri += files('kopper.c')
 endif
 
-libdri_c_args = []
 if with_gallium_softpipe
   libdri_c_args += '-DGALLIUM_SOFTPIPE'
 endif



More information about the mesa-commit mailing list