diff options
Diffstat (limited to 'xorg-server/hw/xfree86/dri/dri.c')
-rw-r--r-- | xorg-server/hw/xfree86/dri/dri.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/xorg-server/hw/xfree86/dri/dri.c b/xorg-server/hw/xfree86/dri/dri.c index 398178e27..6292e87cc 100644 --- a/xorg-server/hw/xfree86/dri/dri.c +++ b/xorg-server/hw/xfree86/dri/dri.c @@ -320,6 +320,7 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfoPtr pDRIInfo, int *pDRMFD) ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); DRIContextFlags flags = 0; DRIContextPrivPtr pDRIContextPriv; + static Bool drm_server_inited; /* If the DRI extension is disabled, do not initialize the DRI */ if (noXFree86DRIExtension) { @@ -345,6 +346,10 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfoPtr pDRIInfo, int *pDRMFD) return FALSE; } #endif + if (drm_server_inited == FALSE) { + drmSetServerInfo(&DRIDRMServerInfo); + drm_server_inited = TRUE; + } if (!DRIOpenDRMMaster(pScrn, pDRIInfo->SAREASize, pDRIInfo->busIdString, pDRIInfo->drmDriverName)) @@ -791,8 +796,6 @@ DRIExtensionInit(void) RegisterBlockAndWakeupHandlers(DRIBlockHandler, DRIWakeupHandler, NULL); - drmSetServerInfo(&DRIDRMServerInfo); - return TRUE; } |