xserver: Branch 'master' - 3 commits

Adam Jackson ajax at kemper.freedesktop.org
Thu Oct 12 19:53:19 UTC 2017


 Xext/shm.c                      |    8 ++------
 hw/xfree86/dixmods/meson.build  |    6 +++++-
 hw/xfree86/exa/meson.build      |    2 +-
 hw/xfree86/fbdevhw/meson.build  |    1 +
 hw/xfree86/meson.build          |    3 ++-
 hw/xfree86/shadowfb/meson.build |    1 +
 meson.build                     |    2 +-
 7 files changed, 13 insertions(+), 10 deletions(-)

New commits:
commit 885636b7d42b3c7b151fc386d358184db004ce45
Author: Nikolay Martynov <mar.kolya at gmail.com>
Date:   Wed Sep 13 23:23:13 2017 -0400

    XShmGetImage: fix censoring
    
    It looks like offsets calculated during image censoring are wrong.
    This results in black (empty) images returns.
    
    This fix is very similar to 6c6f09aac7f1d1367a042087b7681c7fdf1d1e0f
    that was applied to XGetImage
    
    Visually this fixes chromium/firefox window sharing in multiscreen
    configurations - without this patch most of the windows on 'secodnary'
    screens are black.
    
    This also should fix https://bugs.freedesktop.org/show_bug.cgi?id=101730.
    
    Signed-off-by: Nikolay Martynov <mar.kolya at gmail.com>
    Reviewed-by: Adam Jackson <ajax at redhat.com>

diff --git a/Xext/shm.c b/Xext/shm.c
index 2f9a78808..4168951c4 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -650,9 +650,8 @@ ProcShmGetImage(ClientPtr client)
                wBorderWidth((WindowPtr) pDraw) + (int) pDraw->height)
             return BadMatch;
         visual = wVisual(((WindowPtr) pDraw));
-        pVisibleRegion = NotClippedByChildren((WindowPtr) pDraw);
-        if (pVisibleRegion)
-            RegionTranslate(pVisibleRegion, -pDraw->x, -pDraw->y);
+        if (pDraw->type == DRAWABLE_WINDOW)
+            pVisibleRegion = &((WindowPtr) pDraw)->borderClip;
     }
     else {
         if (stuff->x < 0 ||
@@ -715,9 +714,6 @@ ProcShmGetImage(ClientPtr client)
         }
     }
 
-    if (pVisibleRegion)
-        RegionDestroy(pVisibleRegion);
-
     if (client->swapped) {
         swaps(&xgi.sequenceNumber);
         swapl(&xgi.length);
commit a10b4fcdc016d7ac56e5bb35f7f844af41016efe
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date:   Tue Oct 10 14:28:33 2017 +0100

    meson: Fix linkage of loadable modules for PE/COFF
    
    For the loadable modules it makes sense to build for PE/COFF targets, link
    those loadable modules with the import library for the Xorg executable, so
    that symbols provided by the executable can be satisfied at link time (as
    required by PE/COFF).
    
    Since this uses the syntax of using the returned build target object from an
    executable() with an implib: kwarg to link_with:, introduced in meson 0.42
    and a syntax error with older meson, also update the minimum meson version
    which we require in project() to that.
    
    Signed-off-by: Jon Turney <jon.turney at dronecode.org.uk>

diff --git a/hw/xfree86/dixmods/meson.build b/hw/xfree86/dixmods/meson.build
index 06ca56862..835d23215 100644
--- a/hw/xfree86/dixmods/meson.build
+++ b/hw/xfree86/dixmods/meson.build
@@ -6,6 +6,7 @@ fb = shared_module(
     c_args: xorg_c_args,
     dependencies: common_dep,
     link_whole: libxserver_fb,
+    link_with: e,
 
     install: true,
     install_dir: module_dir,
@@ -19,6 +20,7 @@ shared_module(
     c_args: [ xorg_c_args, wfb_args ],
     dependencies: common_dep,
     link_whole: libxserver_wfb,
+    link_with: e,
 
     install: true,
     install_dir: module_dir,
@@ -32,7 +34,7 @@ shared_module(
     c_args: xorg_c_args,
     dependencies: common_dep,
     link_whole: libxserver_miext_shadow,
-    link_with: fb,
+    link_with: [fb, e],
 
     install: true,
     install_dir: module_dir,
@@ -47,6 +49,7 @@ if build_glx
         c_args: [ xorg_c_args, glx_align64 ],
         dependencies: [ common_dep, dl_dep ],
         link_whole: libxserver_glx,
+        link_with: e,
 
         install: true,
         install_dir: join_paths(module_dir, 'extensions')
diff --git a/hw/xfree86/exa/meson.build b/hw/xfree86/exa/meson.build
index bfc5590f8..5f5cf08a7 100644
--- a/hw/xfree86/exa/meson.build
+++ b/hw/xfree86/exa/meson.build
@@ -2,7 +2,7 @@ xorg_exa = shared_module('exa',
     'examodule.c',
     include_directories: [inc, xorg_inc],
     dependencies: common_dep,
-    link_with: libxserver_exa,
+    link_with: [libxserver_exa, e],
     c_args: xorg_c_args,
     install: true,
     install_dir: module_dir,
diff --git a/hw/xfree86/fbdevhw/meson.build b/hw/xfree86/fbdevhw/meson.build
index 2f82e2d9f..35d66ef2c 100644
--- a/hw/xfree86/fbdevhw/meson.build
+++ b/hw/xfree86/fbdevhw/meson.build
@@ -11,6 +11,7 @@ shared_module('fbdevhw',
     c_args: xorg_c_args,
     install: true,
     install_dir: module_dir,
+    link_with: e,
 )
 
 install_data('fbdevhw.h', install_dir: xorgsdkdir)
diff --git a/hw/xfree86/meson.build b/hw/xfree86/meson.build
index 3c5f46f0b..3b1aa17ff 100644
--- a/hw/xfree86/meson.build
+++ b/hw/xfree86/meson.build
@@ -91,7 +91,7 @@ xorg_deps = [
     libdrm_dep,
 ]
 
-executable(
+e = executable(
     'Xorg',
     srcs_xorg,
     include_directories: [inc, xorg_inc],
@@ -100,6 +100,7 @@ executable(
     link_args: linker_export_flags,
     c_args: xorg_c_args,
     install: true,
+    implib: true,
 )
 
 # subdirs for modules loadable by Xorg
diff --git a/hw/xfree86/shadowfb/meson.build b/hw/xfree86/shadowfb/meson.build
index 0470ecbb5..7ecc9bc30 100644
--- a/hw/xfree86/shadowfb/meson.build
+++ b/hw/xfree86/shadowfb/meson.build
@@ -5,6 +5,7 @@ shared_module('shadowfb',
     c_args: xorg_c_args,
     install: true,
     install_dir: module_dir,
+    link_with: e,
 )
 
 install_data('shadowfb.h', install_dir: xorgsdkdir)
diff --git a/meson.build b/meson.build
index f9b21b36c..2b63f0f19 100644
--- a/meson.build
+++ b/meson.build
@@ -4,7 +4,7 @@ project('xserver', 'c',
             'c_std=gnu99',
         ],
         version: '1.19.99.1',
-        meson_version: '>= 0.40.0',
+        meson_version: '>= 0.42.0',
 )
 add_project_arguments('-DHAVE_DIX_CONFIG_H', language: 'c')
 cc = meson.get_compiler('c')
commit d43b1ca852562882fc6930afc36a982801e3be87
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date:   Tue Oct 10 14:28:32 2017 +0100

    meson: Fix underlinkage of shadow loadable module
    
    Future work: probably some other modules are underlinked?
    
    Signed-off-by: Jon Turney <jon.turney at dronecode.org.uk>

diff --git a/hw/xfree86/dixmods/meson.build b/hw/xfree86/dixmods/meson.build
index ffaf3ef86..06ca56862 100644
--- a/hw/xfree86/dixmods/meson.build
+++ b/hw/xfree86/dixmods/meson.build
@@ -1,4 +1,4 @@
-shared_module(
+fb = shared_module(
     'fb',
     'fbmodule.c',
 
@@ -32,6 +32,7 @@ shared_module(
     c_args: xorg_c_args,
     dependencies: common_dep,
     link_whole: libxserver_miext_shadow,
+    link_with: fb,
 
     install: true,
     install_dir: module_dir,


More information about the xorg-commit mailing list