st/dri: Fix driver loading if swrast isn't built
authorAaron Watry <awatry@gmail.com>
Sat, 2 Aug 2014 21:10:34 +0000 (16:10 -0500)
committerAaron Watry <awatry@gmail.com>
Sun, 3 Aug 2014 17:13:47 +0000 (12:13 -0500)
If building hardware drivers only, then kms_swrast_create_screen
won't be defined in inline_drm_helper.h and hardware drivers will
fail to dlopen as a result.

Copy the #if guards from inline_drm_helper.h to dri_kms_init_screen
to make the definition/use of the function match.

Fixes radeonsi_dri.so dlopen with the following configure:

./configure --with-dri-drivers= --with-dri-driverdir=/usr/local/lib/dri/ \
--enable-gbm --enable-gallium-gbm --enable-debug --enable-opencl \
--enable-opencl-icd --with-gallium-drivers=radeonsi \
--with-egl-platforms=drm --enable-glx-tls --enable-texture-float \
--enable-omx

Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
src/gallium/state_trackers/dri/dri2.c

index ef192e36f7aaacbc98a0905168af24d41c789d5b..c466de783797e79fd2aa183edf4d82f8b2c83166 100644 (file)
@@ -1322,6 +1322,8 @@ static const __DRIconfig **
 dri_kms_init_screen(__DRIscreen * sPriv)
 {
 #if GALLIUM_STATIC_TARGETS
+#if defined(GALLIUM_SOFTPIPE)
+#if defined(DRI_TARGET)
    const __DRIconfig **configs;
    struct dri_screen *screen;
    struct pipe_screen *pscreen = NULL;
@@ -1352,6 +1354,8 @@ dri_kms_init_screen(__DRIscreen * sPriv)
 fail:
    dri_destroy_screen_helper(screen);
    FREE(screen);
+#endif // DRI_TARGET
+#endif // GALLIUM_SOFTPIPE
 #endif // GALLIUM_STATIC_TARGETS
    return NULL;
 }