st/dri: Fix driver loading if swrast isn't built

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>
This commit is contained in:
Aaron Watry 2014-08-02 16:10:34 -05:00
parent 7b3d0a9a1e
commit 47e5039680

View 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;
}