diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/drivers/dri/common/dri_util.c | 7 | 
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); | 
