[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'ubuntu+1'



 debian/changelog               |    9 +
 debian/patches/xmir-fixes.diff |    2 
 debian/patches/xmir.patch      |  190 ++++++++++++++++++++++++++++++-----------
 3 files changed, 152 insertions(+), 49 deletions(-)

New commits:
commit 11602a83f60d8adcc53551832c2aeddc46e6a0aa
Author: Timo Aaltonen <tjaalton@debian.org>
Date:   Tue Feb 16 08:15:43 2016 +0200

    refresh xmir-fixes.diff

diff --git a/debian/patches/xmir-fixes.diff b/debian/patches/xmir-fixes.diff
index ea5b035..6b547e6 100644
--- a/debian/patches/xmir-fixes.diff
+++ b/debian/patches/xmir-fixes.diff
@@ -17,7 +17,7 @@ Description: port xmir to 1.18
      } else {
 --- a/hw/xmir/xmir.c
 +++ b/hw/xmir/xmir.c
-@@ -1211,7 +1211,7 @@ xmir_create_screen_resources(ScreenPtr s
+@@ -1256,7 +1256,7 @@ xmir_create_screen_resources(ScreenPtr s
      if (xmir_screen->glamor && !xmir_screen->rootless) {
          glamor_pixmap_private *pixmap_priv = glamor_get_pixmap_private(screen->devPrivate);
  

commit 01ff19d871603204c9bbf6a920a78a2fefa722f5
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Mon Feb 15 18:08:57 2016 -0800

    Add in missing released commit

diff --git a/debian/changelog b/debian/changelog
index 6152b8e..e7fc71b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.17.3-2ubuntu2) xenial; urgency=medium
+xorg-server (2:1.17.3-2ubuntu3) xenial; urgency=medium
 
   * debian/patches/xmir.patch:
     - Add ability to set title for XMir (LP: #1542028)
@@ -7,6 +7,12 @@ xorg-server (2:1.17.3-2ubuntu2) xenial; urgency=medium
 
  -- Robert Ancell <robert.ancell@canonical.com>  Mon, 15 Feb 2016 17:32:21 -0800
 
+xorg-server (2:1.17.3-2ubuntu2) xenial; urgency=medium
+
+  * Disable mir on s390x.
+
+ -- Dimitri John Ledkov <xnox@ubuntu.com>  Wed, 25 Nov 2015 16:11:38 +0000
+
 xorg-server (2:1.17.3-2ubuntu1) xenial; urgency=medium
 
   [ Robert Ancell ]
diff --git a/debian/control b/debian/control
index 6d63639..ddbe447 100644
--- a/debian/control
+++ b/debian/control
@@ -101,7 +101,7 @@ Build-Depends:
 #logind
   libdbus-1-dev (>= 1.0) [linux-any],
 # XMir
- libmirclient-dev (>= 0.13.1) [!arm64 !powerpc !ppc64el],
+ libmirclient-dev (>= 0.13.1) [!arm64 !powerpc !ppc64el !s390x],
  mir-client-platform-mesa-dev,
 Standards-Version: 3.9.6
 Vcs-Git: https://anonscm.debian.org/git/pkg-xorg/xserver/xorg-server.git
diff --git a/debian/rules b/debian/rules
index 5d1f9a7..040282e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -56,7 +56,7 @@ else
 endif
 
 # Mir isn't built on PPC
-ifneq (,$(filter $(DEB_HOST_ARCH), arm64 powerpc ppc64el))
+ifneq (,$(filter $(DEB_HOST_ARCH), arm64 powerpc ppc64el s390x))
 	build_xmir = --disable-xmir
 endif
 

commit d7d8c7fa904add6792729e1bd517e0861c5967ca
Author: Robert Ancell <robert.ancell@canonical.com>
Date:   Mon Feb 15 17:47:03 2016 -0800

    * debian/patches/xmir.patch:
      - Add ability to set title for XMir (LP: #1542028)
      - Use swapinterval 0 (LP: #1502738)
      - Add sufficient traversal hacks for Matchbox

diff --git a/debian/changelog b/debian/changelog
index 006962c..6152b8e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+xorg-server (2:1.17.3-2ubuntu2) xenial; urgency=medium
+
+  * debian/patches/xmir.patch:
+    - Add ability to set title for XMir (LP: #1542028)
+    - Use swapinterval 0 (LP: #1502738)
+    - Add sufficient traversal hacks for Matchbox
+
+ -- Robert Ancell <robert.ancell@canonical.com>  Mon, 15 Feb 2016 17:32:21 -0800
+
 xorg-server (2:1.17.3-2ubuntu1) xenial; urgency=medium
 
   [ Robert Ancell ]
diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
index 79b7d1c..aa7d1a7 100644
--- a/debian/patches/xmir.patch
+++ b/debian/patches/xmir.patch
@@ -1,4 +1,4 @@
-From debdda3bfd737885c4fbbbcff06518c507009077 Mon Sep 17 00:00:00 2001
+From 47d65374fdc820777aaf84018574b8ce0d303dac Mon Sep 17 00:00:00 2001
 From: Robert Ancell <robert.ancell@canonical.com>
 Date: Fri, 15 May 2015 14:58:59 +1200
 Subject: [PATCH 1/3] XMir DDX
@@ -15,20 +15,20 @@ Contributions from:
  hw/xmir/.gitignore          |    1 +
  hw/xmir/Makefile.am         |   61 ++
  hw/xmir/dri2/Makefile.am    |   14 +
- hw/xmir/dri2/dri2.c         | 1398 +++++++++++++++++++++++++++++++++++++++
- hw/xmir/dri2/dri2.h         |  364 +++++++++++
+ hw/xmir/dri2/dri2.c         | 1398 ++++++++++++++++++++++++++++++++++++++
+ hw/xmir/dri2/dri2.h         |  364 ++++++++++
  hw/xmir/dri2/dri2ext.c      |  683 +++++++++++++++++++
  hw/xmir/dri2/dri2int.h      |   26 +
  hw/xmir/xmir-cursor.c       |  210 ++++++
  hw/xmir/xmir-cvt.c          |  304 +++++++++
- hw/xmir/xmir-dri2.c         |  545 ++++++++++++++++
- hw/xmir/xmir-glamor.c       | 1173 +++++++++++++++++++++++++++++++++
- hw/xmir/xmir-input.c        |  577 ++++++++++++++++
- hw/xmir/xmir-output.c       |  456 +++++++++++++
- hw/xmir/xmir-thread-proxy.c |  109 ++++
- hw/xmir/xmir.c              | 1518 +++++++++++++++++++++++++++++++++++++++++++
- hw/xmir/xmir.h              |  225 +++++++
- 18 files changed, 7696 insertions(+), 2 deletions(-)
+ hw/xmir/xmir-dri2.c         |  545 +++++++++++++++
+ hw/xmir/xmir-glamor.c       | 1173 ++++++++++++++++++++++++++++++++
+ hw/xmir/xmir-input.c        |  566 ++++++++++++++++
+ hw/xmir/xmir-output.c       |  449 ++++++++++++
+ hw/xmir/xmir-thread-proxy.c |  109 +++
+ hw/xmir/xmir.c              | 1574 +++++++++++++++++++++++++++++++++++++++++++
+ hw/xmir/xmir.h              |  226 +++++++
+ 18 files changed, 7735 insertions(+), 2 deletions(-)
  create mode 100644 hw/xmir/.gitignore
  create mode 100644 hw/xmir/Makefile.am
  create mode 100644 hw/xmir/dri2/Makefile.am
@@ -4978,10 +4978,10 @@ index 0000000..2438013
 +}
 diff --git a/hw/xmir/xmir-input.c b/hw/xmir/xmir-input.c
 new file mode 100644
-index 0000000..2c3bb77
+index 0000000..727fc56
 --- /dev/null
 +++ b/hw/xmir/xmir-input.c
-@@ -0,0 +1,577 @@
+@@ -0,0 +1,566 @@
 +/*
 + * Copyright © 2015 Canonical Ltd
 + *
@@ -5489,17 +5489,6 @@ index 0000000..2c3bb77
 +        xmir_close_surface(xmir_window);
 +        break;
 +    case mir_event_type_surface_output:
-+        {
-+            ScreenPtr screen = xmir_screen->screen;
-+            MirSurfaceOutputEvent const* soe =
-+                mir_event_get_surface_output_event(ev);
-+            int dpi = mir_surface_output_event_get_dpi(soe);
-+            xmir_screen->dpi = dpi;
-+            screen->mmWidth = screen->width * 254 / (10 * dpi);
-+            screen->mmHeight = screen->height * 254 / (10 * dpi);
-+            XMIR_DEBUG(("Now screen is %hdx%hd mm\n",
-+                        screen->mmWidth, screen->mmHeight));
-+        }
 +        break;
 +    default:
 +        ErrorF("Received an unknown %u event\n", mir_event_get_type(ev));
@@ -5561,10 +5550,10 @@ index 0000000..2c3bb77
 +}
 diff --git a/hw/xmir/xmir-output.c b/hw/xmir/xmir-output.c
 new file mode 100644
-index 0000000..5a54cf2
+index 0000000..bde0940
 --- /dev/null
 +++ b/hw/xmir/xmir-output.c
-@@ -0,0 +1,456 @@
+@@ -0,0 +1,449 @@
 +/*
 + * Copyright © 2015 Canonical Ltd
 + *
@@ -6001,13 +5990,6 @@ index 0000000..5a54cf2
 +
 +        snprintf(name, sizeof name, "%s-%d", output_type_str, type_count);
 +        xmir_output_create(xmir_screen, mir_output, name);
-+
-+        if (mir_output->connected) {
-+            MirDisplayMode *mode = &mir_output->modes[mir_output->current_mode];
-+            xmir_screen->dpi = mode->horizontal_resolution * 254 /
-+                (10 * mir_output->physical_width_mm);
-+            XMIR_DEBUG(("Initial DPI is %d\n", xmir_screen->dpi));
-+        }
 +    }
 +
 +    RRScreenSetSizeRange(xmir_screen->screen, 320, 200, INT16_MAX, INT16_MAX);
@@ -6138,10 +6120,10 @@ index 0000000..dbb187f
 +}
 diff --git a/hw/xmir/xmir.c b/hw/xmir/xmir.c
 new file mode 100644
-index 0000000..a2e60b1
+index 0000000..12abaef
 --- /dev/null
 +++ b/hw/xmir/xmir.c
-@@ -0,0 +1,1518 @@
+@@ -0,0 +1,1574 @@
 +/*
 + * Copyright © 2015 Canonical Ltd
 + *
@@ -6226,6 +6208,8 @@ index 0000000..a2e60b1
 +
 +Bool xmir_debug_logging = False;
 +
++static const char get_title_from_top_window[] = "@";
++
 +static void xmir_handle_buffer_received(MirBufferStream *stream, void *ctx);
 +
 +/* Required by GLX module */
@@ -6278,6 +6262,7 @@ index 0000000..a2e60b1
 +    ErrorF("                       (Unity8 requires -flatten; LP: #1497085)\n");
 +    ErrorF("    -neverclose        Never close the flattened rootless window\n");
 +    ErrorF("                       (ugly workaround for Unity8 bug LP: #1501346)\n");
++    ErrorF("-title <name>          Set window title (@ = automatic)\n");
 +    ErrorF("-sw                    disable glamor rendering\n");
 +    ErrorF("-egl                   force use of EGL calls, disables DRI2 pass-through\n");
 +    ErrorF("-egl_sync              same as -egl, but with synchronous page flips.\n");
@@ -6307,6 +6292,7 @@ index 0000000..a2e60b1
 +        return 1;
 +    }
 +    else if (strcmp(argv[i], "-mirSocket") == 0 ||
++             strcmp(argv[i], "-title") == 0 ||
 +             strcmp(argv[i], "-mir") == 0) {
 +        return 2;
 +    } else if (!strcmp(argv[i], "-novtswitch") ||
@@ -6559,12 +6545,48 @@ index 0000000..a2e60b1
 +    RegionPtr dirty = &xmir_win->region;
 +    MirBufferStream *stream = mir_surface_get_buffer_stream(xmir_win->surface);
 +    char wm_name[256];
++    WindowPtr named = NULL;
 +
 +    if (!xmir_win->has_free_buffer)
 +        ErrorF("ERROR: xmir_repaint requested without a buffer to paint to\n");
 +
-+    if (xmir_screen->rootless &&
-+        xmir_get_window_name(xmir_win->window, wm_name, sizeof wm_name) &&
++    if (strcmp(xmir_screen->title, get_title_from_top_window)) {
++        /* Fixed title mode. Never change it. */
++        named = NULL;
++    } else if (xmir_screen->rootless) {
++        named = xmir_win->window;
++    } else { /* Try and guess from the most relevant app window */
++        WindowPtr top = xmir_screen->screen->root->firstChild;
++        WindowPtr top_named = NULL;
++        WindowPtr top_normal = NULL;
++
++        while (top) {
++            Atom wm_type;
++            WindowPtr app_window;
++            if (!top->viewable) {
++                top = top->nextSib;
++                continue;
++            }
++            app_window = xmir_get_window_prop_window(top, XA_WM_TRANSIENT_FOR);
++            if (app_window) {
++                named = app_window;
++                break;
++            }
++            wm_type = xmir_get_window_prop_atom(top,
++                                               GET_ATOM(_NET_WM_WINDOW_TYPE));
++            if (wm_type && wm_type == GET_ATOM(_NET_WM_WINDOW_TYPE_NORMAL))
++                top_normal = top;
++            if (xmir_get_window_name(top, wm_name, sizeof wm_name))
++                top_named = top;
++            
++            top = top->firstChild;
++        }
++        if (!named)
++            named = top_normal ? top_normal : top_named;
++    }
++
++    if (named &&
++        xmir_get_window_name(named, wm_name, sizeof wm_name) &&
 +        strcmp(wm_name, xmir_win->wm_name)) {
 +        MirSurfaceSpec *rename =
 +            mir_connection_create_spec_for_changes(xmir_screen->conn);
@@ -6851,8 +6873,10 @@ index 0000000..a2e60b1
 +        }
 +    }
 +
-+    mir_surface_spec_set_name(spec, xmir_screen->rootless ? wm_name :
-+                                    "Xmir root window");
++    if (strcmp(xmir_screen->title, get_title_from_top_window))
++        mir_surface_spec_set_name(spec, xmir_screen->title);
++    else if (xmir_screen->rootless)
++        mir_surface_spec_set_name(spec, wm_name);
 +
 +    xmir_window->surface_width = mir_width;
 +    xmir_window->surface_height = mir_height;
@@ -6884,13 +6908,16 @@ index 0000000..a2e60b1
 +        xmir_screen->flatten_top = xmir_window;
 +    mir_surface_set_event_handler(xmir_window->surface, xmir_surface_handle_event, xmir_window);
 +
-+#if 0
-+    /* Until recently (LP: #1391261) Mir's Android platform was still too buggy
-+     * to deal with this. But we're also still blocked by Unity8 bugs:
-+     * TODO: Fix bug LP: #1497828 to enable this in Unity8 (including ARM)
++    /*
++     * Traditional X apps actually get zero throttling, so an interval of
++     * zero is most appropriate, and of course avoids lag and provides
++     * maximum frame rates.
++     * This does however overclock DRI2 GLX clients who want an interval of
++     * one, but they are a tiny minority and much less important than
++     * minimizing lag right now. We'll fix that later. (LP: #1211186)
 +     */
 +    mir_surface_set_swapinterval(xmir_window->surface, 0);
-+#endif
++
 +    xmir_window_enable_damage_tracking(xmir_window);
 +
 +    if (xmir_screen->glamor)
@@ -7439,6 +7466,8 @@ index 0000000..a2e60b1
 +            xmir_screen->flatten = True;
 +        } else if (strcmp(argv[i], "-neverclose") == 0) {
 +            xmir_screen->neverclose = True;
++        } else if (strcmp(argv[i], "-title") == 0) {
++            xmir_screen->title = argv[++i];
 +        } else if (strcmp(argv[i], "-mir") == 0) {
 +            appid = argv[++i];
 +        } else if (strcmp(argv[i], "-mirSocket") == 0) {
@@ -7470,6 +7499,10 @@ index 0000000..a2e60b1
 +        return FALSE;
 +    }
 +
++    if (!xmir_screen->title)
++        xmir_screen->title = xmir_screen->rootless ? get_title_from_top_window
++                                                   : "Xmir root window";
++
 +#ifdef __arm__
 +    if (xmir_screen->glamor == glamor_dri) {
 +        XMIR_DEBUG(("ARM architecture: Defaulting to software mode because "
@@ -7527,8 +7560,13 @@ index 0000000..a2e60b1
 +        return FALSE;
 +    }
 +
-+    /* This will change later as we learn more about the environment */
-+    xmir_screen->dpi = 96;
++    /* Core DPI cannot report correct values (it's one value, we have multiple displays)
++     * Use the value from the -dpi commandline if set, or 96 otherwise.
++     *
++     * This matches the behaviour of all the desktop Xorg drivers. Clients which
++     * care can use the XRANDR extension to get correct per-output DPI information.
++     */
++    xmir_screen->dpi = monitorResolution > 0 ? monitorResolution : 96;
 +
 +    if (!xmir_screen_init_output(xmir_screen))
 +        return FALSE;
@@ -7662,10 +7700,10 @@ index 0000000..a2e60b1
 +}
 diff --git a/hw/xmir/xmir.h b/hw/xmir/xmir.h
 new file mode 100644
-index 0000000..2425f1c
+index 0000000..0bb4b1d
 --- /dev/null
 +++ b/hw/xmir/xmir.h
-@@ -0,0 +1,225 @@
+@@ -0,0 +1,226 @@
 +/*
 + * Copyright © 2015 Canonical Ltd
 + *
@@ -7758,6 +7796,7 @@ index 0000000..2425f1c
 +    MirPixelFormat depth24_pixel_format, depth32_pixel_format;
 +    Bool flatten;
 +    Bool neverclose;
++    const char *title;
 +    MirSurface *neverclosed;
 +    struct xorg_list flattened_list;
 +    struct xmir_window *flatten_top;
@@ -7892,5 +7931,5 @@ index 0000000..2425f1c
 +
 +#endif
 -- 
-2.6.2
+2.7.0
 


Reply to: