debian/changelog | 14 ++++++++ debian/patches/xmir-desktop-file-hint-flag.patch | 4 +- debian/patches/xmir-rootless.patch | 34 ++++++++++----------- debian/patches/xmir.patch | 36 +++++++++++++++++------ 4 files changed, 60 insertions(+), 28 deletions(-)
New commits: commit 57450213538280a57d6601fc4d4e5f493b6df0d5 Author: Robert Ancell <robert.anc...@canonical.com> Date: Fri Aug 21 14:51:34 2015 +1200 debian/patches/xmir-rootless.patch: * debian/patches/xmir-rootless.patch: - Fix crash when running XMir in rootless mode (LP: #1472097) diff --git a/debian/changelog b/debian/changelog index 3f37f39..5d373f1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xorg-server (2:1.17.2-1ubuntu4) wily; urgency=medium + + * debian/patches/xmir-rootless.patch: + - Fix crash when running XMir in rootless mode (LP: #1472097) + + -- Robert Ancell <robert.anc...@canonical.com> Thu, 20 Aug 2015 16:31:37 +1200 + xorg-server (2:1.17.2-1ubuntu3) wily; urgency=medium * debian/patches/xmir.patch: diff --git a/debian/patches/xmir-rootless.patch b/debian/patches/xmir-rootless.patch index b6b7bbd..f3bef1e 100644 --- a/debian/patches/xmir-rootless.patch +++ b/debian/patches/xmir-rootless.patch @@ -1,4 +1,4 @@ -From 2cf1ea480b7ebcecc61509a54b27b685c4ccfc53 Mon Sep 17 00:00:00 2001 +From a7b78b9c0eee1a53e0fed309474aa6cc76656ffc Mon Sep 17 00:00:00 2001 From: Robert Ancell <robert.anc...@canonical.com> Date: Thu, 9 Jul 2015 14:03:49 +1200 Subject: [PATCH 2/4] xmir: Support rootless @@ -167,7 +167,7 @@ index f958e87..c1770d5 100644 xmir_screen->windowed = 1; diff --git a/hw/xmir/xmir.c b/hw/xmir/xmir.c -index 4afd66e..ef78cca 100644 +index 4afd66e..13224aa 100644 --- a/hw/xmir/xmir.c +++ b/hw/xmir/xmir.c @@ -33,6 +33,7 @@ @@ -202,14 +202,14 @@ index 4afd66e..ef78cca 100644 - if (window->parent) - return ret; -+ if (xmir_screen->rootless) { -+ if (!window->parent) { -+ CompositeRedirectSubwindows(window, /*CompositeRedirectManual*/TRUE); // WTF? Where is this defined -+ RegionNull(&window->clipList); -+ RegionNull(&window->borderClip); -+ RegionNull(&window->winSize); -+ } ++ if (xmir_screen->rootless && !window->parent) { ++ RegionNull(&window->clipList); ++ RegionNull(&window->borderClip); ++ RegionNull(&window->winSize); ++ } + ++ if (xmir_screen->rootless) { ++ CompositeRedirectSubwindows(window, /*CompositeRedirectManual*/TRUE); // WTF? Where is this defined + if (window->redirectDraw != RedirectDrawManual) + return ret; + } @@ -292,5 +292,5 @@ index e43fa40..b67f3a1 100644 CreateScreenResourcesProcPtr CreateScreenResources; CloseScreenProcPtr CloseScreen; -- -2.4.6 +2.5.0 commit e66034f70fbf0962877cfd3adfe18d3503d54aa9 Author: Robert Ancell <robert.anc...@canonical.com> Date: Fri Aug 21 14:51:20 2015 +1200 debian/patches/xmir.patch: * debian/patches/xmir.patch: - Fix red and blue channels being swapped on Android drivers (LP: #1471146) diff --git a/debian/changelog b/debian/changelog index 6b05edc..3f37f39 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xorg-server (2:1.17.2-1ubuntu3) wily; urgency=medium + + * debian/patches/xmir.patch: + - Fix red and blue channels being swapped on Android drivers (LP: #1471146) + + -- Robert Ancell <robert.anc...@canonical.com> Thu, 30 Jul 2015 15:31:29 +1200 + xorg-server (2:1.17.2-1ubuntu2) wily; urgency=medium * debian/patches/xmir.patch: diff --git a/debian/patches/xmir-desktop-file-hint-flag.patch b/debian/patches/xmir-desktop-file-hint-flag.patch index 8b3a1dd..7dbc73a 100644 --- a/debian/patches/xmir-desktop-file-hint-flag.patch +++ b/debian/patches/xmir-desktop-file-hint-flag.patch @@ -1,4 +1,4 @@ -From cc91948d4be69af96ddf9417a4b3cfac5d0f0f35 Mon Sep 17 00:00:00 2001 +From 938313b76b0e3279a94af931cbe5fd34b8cb580c Mon Sep 17 00:00:00 2001 From: Robert Ancell <robert.anc...@canonical.com> Date: Mon, 13 Jul 2015 15:54:32 +1200 Subject: [PATCH 3/4] xmir: Ignore --desktop_file_hint flag required by Unity8 @@ -9,7 +9,7 @@ Subject: [PATCH 3/4] xmir: Ignore --desktop_file_hint flag required by Unity8 1 file changed, 3 insertions(+) diff --git a/hw/xmir/xmir.c b/hw/xmir/xmir.c -index 2a7227e..810b715 100644 +index ef78cca..b9b7f2d 100644 --- a/hw/xmir/xmir.c +++ b/hw/xmir/xmir.c @@ -123,6 +123,9 @@ ddxProcessArgument(int argc, char *argv[], int i) diff --git a/debian/patches/xmir-rootless.patch b/debian/patches/xmir-rootless.patch index 4f0196a..b6b7bbd 100644 --- a/debian/patches/xmir-rootless.patch +++ b/debian/patches/xmir-rootless.patch @@ -1,4 +1,4 @@ -From 3c705fcf4a68de1276d1a2f6ee176ec7e62eb9df Mon Sep 17 00:00:00 2001 +From 2cf1ea480b7ebcecc61509a54b27b685c4ccfc53 Mon Sep 17 00:00:00 2001 From: Robert Ancell <robert.anc...@canonical.com> Date: Thu, 9 Jul 2015 14:03:49 +1200 Subject: [PATCH 2/4] xmir: Support rootless @@ -167,7 +167,7 @@ index f958e87..c1770d5 100644 xmir_screen->windowed = 1; diff --git a/hw/xmir/xmir.c b/hw/xmir/xmir.c -index c07457d..2a7227e 100644 +index 4afd66e..ef78cca 100644 --- a/hw/xmir/xmir.c +++ b/hw/xmir/xmir.c @@ -33,6 +33,7 @@ @@ -196,7 +196,7 @@ index c07457d..2a7227e 100644 strcmp(argv[i], "-egl") == 0 || strcmp(argv[i], "-egl_sync") == 0 || strcmp(argv[i], "-2x") == 0 || -@@ -422,8 +425,21 @@ xmir_realize_window(WindowPtr window) +@@ -425,8 +428,21 @@ xmir_realize_window(WindowPtr window) xmir_screen->RealizeWindow = screen->RealizeWindow; screen->RealizeWindow = xmir_realize_window; @@ -218,9 +218,9 @@ index c07457d..2a7227e 100644 + return ret; + } - spec = mir_connection_create_spec_for_normal_surface(xmir_screen->conn, - mir_width, -@@ -528,8 +544,15 @@ xmir_handle_surface_event(struct xmir_window *xmir_window, MirSurfaceAttrib attr + mir_connection_get_available_surface_formats (xmir_screen->conn, formats, 1024, &n_formats); + for (i = 0; i < n_formats && pixel_format == mir_pixel_format_invalid; i++) { +@@ -546,8 +562,15 @@ xmir_handle_surface_event(struct xmir_window *xmir_window, MirSurfaceAttrib attr void xmir_close_surface(struct xmir_window *xmir_window) { @@ -238,7 +238,7 @@ index c07457d..2a7227e 100644 } static void -@@ -661,7 +684,8 @@ xmir_is_unblank(int mode) +@@ -679,7 +702,8 @@ xmir_is_unblank(int mode) Bool DPMSSupported(void) { @@ -248,7 +248,7 @@ index c07457d..2a7227e 100644 } int -@@ -730,12 +754,16 @@ xmir_create_screen_resources(ScreenPtr screen) +@@ -748,12 +772,16 @@ xmir_create_screen_resources(ScreenPtr screen) if (!ret) return ret; @@ -267,7 +267,7 @@ index c07457d..2a7227e 100644 glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(screen->devPrivate); glBindFramebuffer(GL_FRAMEBUFFER, pixmap_priv->base.fbo->fb); -@@ -817,7 +845,9 @@ xmir_screen_init(ScreenPtr pScreen, int argc, char **argv) +@@ -835,7 +863,9 @@ xmir_screen_init(ScreenPtr pScreen, int argc, char **argv) xmir_screen->glamor = 1; for (i = 1; i < argc; i++) { diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch index 117b7dc..f0c8bef 100644 --- a/debian/patches/xmir.patch +++ b/debian/patches/xmir.patch @@ -1,4 +1,4 @@ -From 0ee9ce22bb8741841d37bd0c4bd9a48bf86e82a0 Mon Sep 17 00:00:00 2001 +From 288ecd8208dadaf661639559192373874cad9f20 Mon Sep 17 00:00:00 2001 From: Robert Ancell <robert.anc...@canonical.com> Date: Fri, 15 May 2015 14:58:59 +1200 Subject: [PATCH 1/4] XMir DDX @@ -25,9 +25,9 @@ Contributions from: hw/xmir/xmir-input.c | 505 ++++++++++++++++ hw/xmir/xmir-output.c | 444 ++++++++++++++ hw/xmir/xmir-thread-proxy.c | 132 ++++ - hw/xmir/xmir.c | 981 ++++++++++++++++++++++++++++++ + hw/xmir/xmir.c | 999 +++++++++++++++++++++++++++++++ hw/xmir/xmir.h | 211 +++++++ - 18 files changed, 7083 insertions(+), 2 deletions(-) + 18 files changed, 7101 insertions(+), 2 deletions(-) create mode 100644 hw/xmir/.gitignore create mode 100644 hw/xmir/Makefile.am create mode 100644 hw/xmir/dri2/Makefile.am @@ -6075,10 +6075,10 @@ index 0000000..6b16871 +} diff --git a/hw/xmir/xmir.c b/hw/xmir/xmir.c new file mode 100644 -index 0000000..c07457d +index 0000000..4afd66e --- /dev/null +++ b/hw/xmir/xmir.c -@@ -0,0 +1,981 @@ +@@ -0,0 +1,999 @@ +/* + * Copyright © 2015 Canonical Ltd + * @@ -6493,6 +6493,9 @@ index 0000000..c07457d + struct xmir_screen *xmir_screen = xmir_screen_get(screen); + struct xmir_window *xmir_window = xmir_window_get(window); + Bool ret; ++ MirPixelFormat formats[1024]; ++ unsigned int n_formats, i; ++ MirPixelFormat pixel_format = mir_pixel_format_invalid; + + int mir_width = window->drawable.width / (1 + xmir_screen->doubled); + int mir_height = window->drawable.height / (1 + xmir_screen->doubled); @@ -6506,10 +6509,25 @@ index 0000000..c07457d + if (window->parent) + return ret; + -+ spec = mir_connection_create_spec_for_normal_surface(xmir_screen->conn, -+ mir_width, -+ mir_height, -+ window->drawable.depth == 32 ? mir_pixel_format_argb_8888 : mir_pixel_format_xrgb_8888); ++ mir_connection_get_available_surface_formats (xmir_screen->conn, formats, 1024, &n_formats); ++ for (i = 0; i < n_formats && pixel_format == mir_pixel_format_invalid; i++) { ++ switch (formats[i]) { ++ case mir_pixel_format_argb_8888: ++ case mir_pixel_format_abgr_8888: ++ if (window->drawable.depth == 32) ++ pixel_format = formats[i]; ++ break; ++ case mir_pixel_format_xrgb_8888: ++ case mir_pixel_format_xbgr_8888: ++ case mir_pixel_format_bgr_888: ++ if (window->drawable.depth == 24) ++ pixel_format = formats[i]; ++ break; ++ default: ++ break; ++ } ++ } ++ spec = mir_connection_create_spec_for_normal_surface(xmir_screen->conn, mir_width, mir_height, pixel_format); + + if (spec == NULL) { + ErrorF("failed to create a surface spec: %s\n", mir_connection_get_error_message(xmir_screen->conn));