diff options
author | marha <marha@users.sourceforge.net> | 2012-07-09 08:17:19 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-07-09 08:17:19 +0200 |
commit | 98fa64178af8ad608e19391053b40b0772466c64 (patch) | |
tree | 841e3eebe0277bdf98441dd45224c039e069d3b8 /xorg-server/dix/main.c | |
parent | 405ae9defaaa03d4d305b6264a744107c3dd460d (diff) | |
parent | c29d91cfd8df084f16d0d2dfa82c3a86f7719a73 (diff) | |
download | vcxsrv-98fa64178af8ad608e19391053b40b0772466c64.tar.gz vcxsrv-98fa64178af8ad608e19391053b40b0772466c64.tar.bz2 vcxsrv-98fa64178af8ad608e19391053b40b0772466c64.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
xorg-server/dix/dispatch.c
xorg-server/include/misc.h
Diffstat (limited to 'xorg-server/dix/main.c')
-rw-r--r-- | xorg-server/dix/main.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/xorg-server/dix/main.c b/xorg-server/dix/main.c index b8ee88f18..cdca10250 100644 --- a/xorg-server/dix/main.c +++ b/xorg-server/dix/main.c @@ -251,6 +251,12 @@ main(int argc, char *argv[], char *envp[]) FatalError("no screens found"); InitExtensions(argc, argv); + for (i = 0; i < screenInfo.numGPUScreens; i++) { + ScreenPtr pScreen = screenInfo.gpuscreens[i]; + if (!CreateScratchPixmapsForScreen(pScreen)) + FatalError("failed to create scratch pixmaps"); + } + for (i = 0; i < screenInfo.numScreens; i++) { ScreenPtr pScreen = screenInfo.screens[i]; @@ -385,6 +391,15 @@ main(int argc, char *argv[], char *envp[]) screenInfo.numScreens = i; } + for (i = screenInfo.numGPUScreens - 1; i >= 0; i--) { + ScreenPtr pScreen = screenInfo.gpuscreens[i]; + FreeScratchPixmapsForScreen(pScreen); + (*pScreen->CloseScreen) (pScreen); + dixFreePrivates(pScreen->devPrivates, PRIVATE_SCREEN); + free(pScreen); + screenInfo.numGPUScreens = i; + } + ReleaseClientIds(serverClient); dixFreePrivates(serverClient->devPrivates, PRIVATE_CLIENT); serverClient->devPrivates = NULL; |