diff --git a/src/nv_dri.c b/src/nv_dri.c index d43adaa..9b1e264 100644 --- a/src/nv_dri.c +++ b/src/nv_dri.c @@ -374,3 +374,12 @@ Bool NVDRIFinishScreenInit(ScrnInfoPtr pScrn) return TRUE; } +void +NVDRICloseScreen(ScrnInfoPtr pScrn) +{ + ScreenPtr pScreen; + pScreen = screenInfo.screens[pScrn->scrnIndex]; + + DRICloseScreen(pScreen); +} + diff --git a/src/nv_driver.c b/src/nv_driver.c index 1059f20..9db01d3 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -825,6 +825,8 @@ NVCloseScreen(int scrnIndex, ScreenPtr pScreen) if (pNv->blitAdaptor) xfree(pNv->blitAdaptor); + NVDRICloseScreen(pScrn); + pScrn->vtSema = FALSE; pScreen->CloseScreen = pNv->CloseScreen; pScreen->BlockHandler = pNv->BlockHandler; diff --git a/src/nv_proto.h b/src/nv_proto.h index 94cc38e..5ecbf02 100644 --- a/src/nv_proto.h +++ b/src/nv_proto.h @@ -16,6 +16,7 @@ Bool NVMatchModePrivate(DisplayModePtr mode, uint32_t flags); /* in nv_dri.c */ Bool NVDRIScreenInit(ScrnInfoPtr pScrn); Bool NVDRIFinishScreenInit(ScrnInfoPtr pScrn); +void NVDRICloseScreen(ScrnInfoPtr pScrn); extern const char *drmSymbols[], *driSymbols[]; Bool NVDRIGetVersion(ScrnInfoPtr pScrn);