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_@0@ and libGLX_@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