aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/dri
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xfree86/dri')
-rw-r--r--xorg-server/hw/xfree86/dri/dri.c7
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;
}