summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/common/dri_util.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
index 9928a0f031..ce8ae5e299 100644
--- a/src/mesa/drivers/dri/common/dri_util.c
+++ b/src/mesa/drivers/dri/common/dri_util.c
@@ -883,6 +883,11 @@ __DRI2_CREATE_NEW_SCREEN(int scrn, __DRIscreen *psc,
static const __DRIextension *emptyExtensionList[] = { NULL };
dri_interface = interface;
unsigned int *p;
+ __GLcontextModes *(*initScreen)(__DRIscreen *psc);
+
+ initScreen = dlsym(NULL, __dri2DriverInitScreen);
+ if (initScreen == NULL)
+ return NULL;
psp = _mesa_malloc(sizeof(*psp));
if (!psp)
@@ -931,7 +936,7 @@ __DRI2_CREATE_NEW_SCREEN(int scrn, __DRIscreen *psc,
psc->createNewDrawable = driCreateNewDrawable;
psc->createNewContext = driCreateNewContext;
- *driver_modes = __dri2DriverInitScreen(psp);
+ *driver_modes = initScreen(psp);
if (*driver_modes == NULL) {
drmBOUnmap(psp->fd, &psp->dri2.sareaBO);
drmBOUnreference(psp->fd, &psp->dri2.sareaBO);