On Wed, Aug 8, 2012 at 10:49 AM, Keith Packard <[email protected]> wrote:
> This should make cleaning up the GPU screens easier as the core
> screens they are associated with will still be around.

Yeah sounds likely, I just felt the symmetry was off doing this going forward,

when we move to all screens being gpu screens and the core screen
being protocol only, then the init is

gpu, gpu, protocol, and teardown would be gpu, gpu, protocol, which
feels wrong to me, but I've no objections to doing this now, and maybe
for 1.14 I'll find the symmetry needs to be protocol, gpu, gpu at init
instead.

Reviewed-by: Dave Airlie <[email protected]>

>
> Signed-off-by: Keith Packard <[email protected]>
> ---
>  dix/main.c |   18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/dix/main.c b/dix/main.c
> index 42f517d..fb935c9 100644
> --- a/dix/main.c
> +++ b/dix/main.c
> @@ -331,6 +331,15 @@ main(int argc, char *argv[], char *envp[])
>
>          CloseDownEvents();
>
> +        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;
> +        }
> +
>          for (i = screenInfo.numScreens - 1; i >= 0; i--) {
>              FreeScratchPixmapsForScreen(screenInfo.screens[i]);
>              FreeGCperDepth(i);
> @@ -342,15 +351,6 @@ 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;
> --
> 1.7.10.4
>
> _______________________________________________
> [email protected]: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to