xf86-video-intel: tools/virtual.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Jun 13 12:00:24 PDT 2014


 tools/virtual.c |   22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

New commits:
commit 8a92261b22a8c134a48d1491627ac05136563603
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 13 19:59:16 2014 +0100

    intel-virtual-output: Disable outputs on remote displays upon shutdown
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=79994
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/tools/virtual.c b/tools/virtual.c
index 95541bd..f1a6057 100644
--- a/tools/virtual.c
+++ b/tools/virtual.c
@@ -3054,16 +3054,36 @@ static int first_display_sibling(struct context *ctx, int i)
 	return 1;
 }
 
-
 #define first_display_for_each_sibling(CTX, i) \
 	for (i = first_display_first_sibling(CTX); first_display_sibling(CTX, i); i++)
 
+static void display_cleanup(struct display *display)
+{
+	Display *dpy = display->dpy;
+	int n;
+
+	XGrabServer(dpy);
+
+	res = _XRRGetScreenResourcesCurrent(dpy, display->root);
+	if (res != NULL) {
+		for (n = 0; n < res->ncrtc; n++)
+			disable_crtc(display->dpy, res, res->crtc[n]);
+
+		XRRFreeScreenResources(res);
+	}
+
+	XUngrabServer(dpy);
+}
+
 static void context_cleanup(struct context *ctx)
 {
 	Display *dpy = ctx->display->dpy;
 	XRRScreenResources *res;
 	int i, j;
 
+	for (i = 1; i < ctx->ndisplay; i++)
+		display_cleanup(&ctx.display[i]);
+
 	res = _XRRGetScreenResourcesCurrent(dpy, ctx->display->root);
 	if (res == NULL)
 		return;


More information about the xorg-commit mailing list