xserver: Changes to 'server-1.20-branch'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 1 18:10:37 UTC 2018


New branch 'server-1.20-branch' available with the following commits:
commit b9e9eda08bd9198a6d089acd5d50677cd8713b33
Author: Stefan Agner <stefan at agner.ch>
Date:   Thu Dec 22 15:41:06 2016 +0100

    modesetting: Fix 16 bit depth/bpp mode
    
    When setting DefaultDepth to 16 in the Screen section, the current
    code requests a 32 bpp framebuffer, however the X-Server seems to
    assumes 16 bpp.
    
    Fixes commit 21217d02168d ("modesetting: Implement 32->24 bpp
    conversion in shadow update")
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Stefan Agner <stefan at agner.ch>
    (cherry picked from commit 1c7f34e99ff9750979a03ae20c6be1f2b42c284c)

commit 5c0662d44852363fe258c045250710ed881e56b7
Author: Lyude Paul <lyude at redhat.com>
Date:   Fri Jun 22 12:49:47 2018 -0400

    meson: ensure the libc has RPC functions when secure-rpc is enabled
    
    Currently our meson.build just makes the assumption that the libc is
    going to provide RPC functions. This doesn't actually seem to be the
    case on Fedora, which causes compilation to fail unexpectedly:
    
    ../../Projects/xserver/os/rpcauth.c:47:10: fatal error: rpc/rpc.h: No such file or directory
     #include <rpc/rpc.h>
              ^~~~~~~~~~~
    compilation terminated.
    
    So, in the event that we can't use libtirpc ensure that we actually
    check whether or not the libc provides rpc/rpc.h. If it doesn't, raise
    an error.
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Lyude Paul <lyude at redhat.com>
    (cherry picked from commit d95a1310ef8e08a93a28f9766d1b4093f7891404)

commit 10285bc36b411edd923ee5d369244647ba2b714b
Author: Keith Packard <keithp at keithp.com>
Date:   Tue Jun 26 16:34:29 2018 -0700

    xf86-video-modesetting: Lease planes as well if using atomic
    
    If we're using atomic modesetting, then we're also using universal
    planes, and so the lease we create needs to include the plane.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Reviewed-by: Daniel Stone <daniels at collabora.com>
    (cherry picked from commit d83efc47b7a524b4f8d4a993c27a3e402a98fa7c)

commit a530198ac0ffdc4c268d13e59079f7583930a284
Author: Keith Packard <keithp at keithp.com>
Date:   Tue Jun 26 14:05:31 2018 -0700

    xf86-video-modesetting: Don't enable UNIVERSAL_PLANES separately
    
    We don't want universal_planes unless we're using atomic APIs for
    modesetting, and the kernel already enables universal_planes
    automatically when atomic is enabled.
    
    If we enable universal_planes when we're not using atomic, then we
    won't have selected a plane for each crtc, and this will break lease
    creation which requires planes for each output when universal_planes
    is enabled.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Reviewed-by: Daniel Stone <daniels at collabora.com>
    (cherry picked from commit 4a11f66e4690f9e94dc61cb264f5ef78dbdb255a)

commit cd7680adccdf8f6905a83ae08cbde7ac76693fe5
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jun 28 11:45:16 2018 -0700

    xfree86: Wrap RRCrtcIsLeased and RROutputIsLeased to check for DIX structures
    
    Before DIX structures are allocated for crtcs and outputs, we don't
    want to call DIX randr code with NULL pointers. This can happen if the
    driver sets video modes early in server initialization, which Nouveau
    does in zaphod mode.
    
    Cc: thellstrom at vmware.com
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=106772
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=106960
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit 2faf4cef8bcf9bb2034a27219a656ea7221afc6c)

commit ebd4cd71f49151fb699cf45e835f3719e6b31bf5
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jun 28 11:45:15 2018 -0700

    xfree86: Reset randr_crtc and randr_output early in xf86CrtcCloseScreen
    
    The DIX crtc and output structures are freed when their resources are
    destroyed, which happens before CloseScreen is called. As a result, we
    know these pointers are invalid and referencing them during any of the
    remaining CloseScreen sequence will be bad.
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Cc: thellstrom at vmware.com
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=106960
    (cherry picked from commit c55a44a9a86aaece17c1a2e73c77e3e665c4888e)

commit 1f169d5b38d93d725029d5f7dc237b558e8bb137
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date:   Sat Jun 30 12:53:35 2018 +0100

    meson: use absolute paths in manpage substitutions
    
    paths returned by get_option('foodir') are potentially relative to prefix
    
    Noticed when comparing manpages generated by a meson build with those
    generated by an autotools build
    
    Signed-off-by: Jon Turney <jon.turney at dronecode.org.uk>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 49283e238a0ba6051034ae635e5970891f17f9df)

commit bc1882aa23a129c4b72b0bfc132cfd04db801a90
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jan 18 18:07:29 2018 -0800

    modesetting: Allow a DRM fd to be passed on command line with -masterfd [v2]
    
    This lets an application open a suitable DRM device and pass the file
    descriptor to the mode setting driver through an X server command line
    option, '-masterfd'.
    
    There's a companion application, xlease, which creates a DRM master by
    leasing an output from another X server. That is available at
    
    	git clone git://people.freedesktop.org/~keithp/xlease
    
    v2:
    	Always print usage, but note that it can't be used if
    	setuid/gid
    
    	Suggested-by: Lyude Paul <lyude at redhat.com>
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Reviewed-by: Lyude Paul <lyude at redhat.com>
    (cherry picked from commit 38ff29ec8ead0a293f50ac52146199babe4205ca)

commit d60ce5b01f5988abc9957473d7175872c8845b08
Author: Laurent Carlier <lordheavym at gmail.com>
Date:   Sat Jun 16 13:00:01 2018 +0200

    meson: Add configuration of listening on tcp, unix and local
    
    bugzilla: https://bugs.kde.org/show_bug.cgi?id=395419
    bugzilla: https://bugs.archlinux.org/task/59025
    
    Signed-off-by: Laurent Carlier <lordheavym at gmail.com>
    Reviewed-by: Aaron Plattner <aplattner at nvidia.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 2f39b2a07805194fdd7def30d941666963d6e670)

commit 79795bf9df395001c8d659ac8d28090ea9cefc8d
Author: Lyude Paul <lyude at redhat.com>
Date:   Wed Jun 27 20:29:42 2018 -0400

    modesetting: Fix uninitialized memory usage in drmmode_crtc_get_fb_id()
    
    This really sucked to find out :(
    
    Signed-off-by: Lyude Paul <lyude at redhat.com>
    Reviewed-by: Karol Herbst <kherbst at redhat.com>
    (cherry picked from commit c41d4ff48f72aa964afd131b59e1538295d062dc)

commit 820ce7cb8bb07018de89e13aa50ae6090f2d84eb
Author: Thomas Hellstrom <thellstrom at vmware.com>
Date:   Wed Jun 20 19:23:48 2018 +0200

    glamor: Work around GEM usage v2
    
    KMS drivers are not required to support GEM. In particular, vmwgfx
    doesn't support flink and handles and names are identical.
    Getting a bo name should really be part of a lower level API, if needed,
    but in the mean time work around this by setting the name identical to
    the handle if GEM isn't supported.
    
    This fixes modesetting driver dri2 on vmwgfx.
    
    Reviewed-by: Deepak Rawat <drawat at vmware.com>
    Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
    (cherry picked from commit 9f02855e7a1b7a3c1e2ee7bfbc73e87c29126920)

commit ba6a9283817254dca90fd8f9ee695504e7c20908
Author: Lyude Paul <lyude at redhat.com>
Date:   Wed Jun 20 19:12:32 2018 -0400

    randr: Scream when creating a shared pixmap fails
    
    This seems like a problem worth screaming about.
    
    Signed-off-by: Lyude Paul <lyude at redhat.com>
    Reviewed-by: Dave Airlie <airlied at redhat.com>
    (cherry picked from commit dc90b1c3c328f1d0b022a234b69ef32bda7ccb01)

commit 91ec6245d6269a88a3f3ecd10fa7a7b326b0a616
Author: Lyude Paul <lyude at redhat.com>
Date:   Wed Jun 20 19:12:31 2018 -0400

    glamor: Unbreak glamor_fd_from_pixmap()
    
    When support for allocating GBM BOs with modifiers was added,
    glamor_fd_from_pixmap() was changed so that it would return an error if
    it got a bo with modifiers set from glamor_fds_from_pixmap(). The
    problem is that on systems that support BOs with modifiers,
    glamor_fds_from_pixmap() will always return BOs with modifiers.
    
    This means that glamor_fd_from_pixmap() was broken entirely, which broke
    a number of other things including glamor_shareable_fd_from_pixmap(),
    which meant that modesetting using multiple GPUs with the modesetting
    DDX was also broken. Easy reproducer:
    
    - Find a laptop with DRI prime that has outputs connected to the
      dedicated GPU and integrated GPU
    - Try to enable one display on each using the modesetting DDX
    - Fail
    
    Since there isn't a way to ask for no modifiers from
    glamor_fds_from_pixmap, we create a shared _glamor_fds_from_pixmap()
    function used by both glamor_fds_from_pixmap() and
    glamor_fd_from_pixmap() that calls down to the appropriate
    glamor_egl_fd*_from_pixmap() function.
    
    Signed-off-by: Lyude Paul <lyude at redhat.com>
    Reviewed-by: Dave Airlie <airlied at redhat.com>
    Cc: Louis-Francis Ratté-Boulianne <lfrb at collabora.com>
    Fixes: c8c276c956 ("glamor: Implement PixmapFromBuffers and BuffersFromPixmap")
    (cherry picked from commit 186a21c4bac744ffe645c8d1a6dda2d41c6d33d8)

commit 821f38fa56087fcb11d2d2483366307fc88bf365
Author: Lyude Paul <lyude at redhat.com>
Date:   Thu Jun 7 20:30:34 2018 -0400

    modesetting: Also disable CRTC in drmmode_output_disable()
    
    So, this did actually work on older kernels at one point in time,
    however it seems that this working was a result of some of the Linux
    kernel's atomic modesetting helpers not preserving the CRTC's enabled
    state in the right spots. This was fixed in:
    
    846c7dfc1193 ("drm/atomic: Try to preserve the crtc enabled state in drm_atomic_remove_fb, v2")
    
    As a result, atomic commits which simply disassociate a DRM connector
    with it's CRTC while leaving the CRTC in an enabled state aren't enough
    to disable the CRTC, and result in the atomic commit failing. This
    currently can cause issues with MST hotplugging where X will end up
    failing to disable the MST outputs after they've left the system. A
    simple reproducer:
    
    - Start up Xorg
    - Connect an MST hub with displays connected to it
    - Remove the hub
    - Now there should be CRTCs stuck on the orphaned MST connectors, and X
      won't be able to reclaim them.
    
    Signed-off-by: Lyude Paul <lyude at redhat.com>
    Cc: Louis-Francis Ratté-Boulianne <lfrb at collabora.com>
    Reviewed-by: Dave Airlie <airlied at redhat.com>
    (cherry picked from commit c12f1bd4b76088ea66e3bec9ab9721a52b20cdf2)

commit 2f4d0d84266b82d8838b8b9b7972f45d66f0e2d1
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Fri Jun 15 08:57:12 2018 +0200

    modesetting: use drmmode_bo_import() for rotate_fb
    
    drmmode_shadow_allocate() still uses drmModeAddFB() which may fail if
    the format is not as expected, preventing from using a rotated output.
    
    Change it to use the new function drmmode_bo_import() which takes care
    of calling the drmModeAddFB2() API.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106715
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Tested-by: Tomas Pelka <tpelka at redhat.com>
    Reviewed-by: Lyude Paul <lyude at redhat.com>
    (cherry picked from commit a85e94a50c94b07574c8701a3ff3c1243f4257f4)

commit 394ed02f8761c7599fa08628a4d28d34337028f6
Author: John Lumby <johnlumby at hotmail.com>
Date:   Tue Jun 26 17:14:34 2018 -0700

    Change the DPMS initialization to be conditional on not set from config
    
    Any DPMS timeout values set in ServerFlags section of the xorg.conf
    are being overwritten by DPMS extension initialization.  Therefore
    change the DPMS initialization of timeout values to be conditional on
    not set from config.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106963
    Signed-off-by: John Lumby <johnlumby at hotmail.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit f5aace7a27d6d61068dcae46c9756b669ab51d50)

commit 8c2f0f8cbdba04f3d2eb65e3ea98f809545f8e87
Author: Damien Leone <dleone at nvidia.com>
Date:   Mon Jun 18 16:24:28 2018 -0700

    os: Recompute whether any clients are ready after check_timers()
    
    If a driver calls AttendClient() from within a timer callback we
    need to re-compute the local 'are_ready' to prevent the attended
    client from waiting until WaitForSomething() times out.
    
    This is a fix similar to commit 9ed5b263.
    
    Signed-off-by: Damien Leone <dleone at nvidia.com>
    Reviewed-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit f33cb4264387ed14a586ba080885b4d21e4aa48b)

commit 180ab06d4564579cf05cb44c2533ac914b68be77
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Mon Jun 11 09:21:08 2018 +0200

    xwayland: mandatory EGL backend API
    
    The API init_wl_registry() and has_wl_interfaces() are marked as being
    optional, but both GBM And EGLStream backends implement them so there is
    point in keeping those optional.
    
    Suggested-by: Emil Velikov <emil.velikov at collabora.com>
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    (cherry picked from commit 92daeb31fa3235dc791e0444b072ec4bbc6e35ab)

commit c641d10ef04475f2898cc40536bd5a03371f2761
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Mon Jun 11 09:13:30 2018 +0200

    xwayland: simplify xwl_glamor_pixmap_get_wl_buffer()
    
    When retrieving the Wayland buffer from a pixmap, if the buffer already
    exists, the GBM backend will return that existing buffer.
    
    However, as seen with the Present issues, if the call had previously
    passed a wrong size, that buffer will remain at the wrong size for as
    long as the buffer exists, which is error prone.
    
    Considering that the width/height passed to get_wl_buffer() is always the
    actual pixmap  drawable size, and considering that the EGLStream backend
    makes no use of the size either, there is really no point in passing the
    width/height around.
    
    Simplify the xwl_glamor_pixmap_get_wl_buffer() and EGL backends API by
    removing the pixmap size, and use the drawable size instead.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    (cherry picked from commit 792359057bd54548555674d2d309c0cfeebac12d)

commit 79ebd7f689492314067fc863510ad44683b67e64
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:45 2018 +0200

    xwayland: EGL_IMG_context_priority required by EGLStream
    
    xwl_glamor_eglstream_init_egl() uses "EGL_IMG_context_priority"
    extension, make sure it's actually available before using it.
    
    Suggested-by: Emil Velikov <emil.velikov at collabora.com>
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit bdadaa25f5c1f62d30d8e76b4ebfcef414ed9c90)

commit 81969ab773ddf7bae04eb7d1cca3fe01344dcae9
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:44 2018 +0200

    xwayland: check for EGLStream backend explicitly
    
    Now that we have separate backends for EGLStream and GBM, we can
    explicitly check for the EGLStream backend to disable present support
    in that case.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit 5d843f6947538dabde258584a5795e0b25ea8779)

commit 60020989b9759a05153f832a160e6f573d53e266
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:43 2018 +0200

    xwayland: refactor EGL backends for wayland registry
    
    To be able to check for availability of the Wayland interfaces required
    to run a given EGL backend (either GBM or EGLStream for now), we need
    to have each backend structures and vfuncs in place before we enter the
    Wayland registry dance.
    
    That basically means that we should init all backends at first, connect
    to the Wayland compositor and query the available interfaces and then
    decide which backend is available and should be used (or none if either
    the Wayland interfaces or the EGL extensions are not available).
    
    For this purpose, hold an egl_backend struct for each backend we are to
    consider prior to connect to the Wayland display so that, when we get to
    query the Wayland interfaces, everything is in place for each backend to
    handle the various Wayland interfaces.
    
    Eventually, when we need to chose which EGL backend to use for glamor,
    the available Wayland interfaces and EGL extensions available are all
    known to Xwayland.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit d7185a84b60ed03aaa84eb522dcff365218e7211)

commit cb698ec2ba11b827c4e6785693a83a27eec3c635
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:42 2018 +0200

    xwayland: move EGL backend init to glamor
    
    Move EGL backends initialization to its own function in
    xwayland-glamor.c
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit 48f037a27c45b571c9750ac812977ac0a33ab12b)

commit 8ffee3a6bd8901b4c87890087b8bd2ccb4a30a5c
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:41 2018 +0200

    xwayland: Add Wayland interfaces check
    
    Introduces a new egl_backend function to let the EGL backend check for
    the presence of the required Wayland interfaces.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit f2fcb4877e976d078b0eb4755177170467341484)

commit aad1525180c0352ab9ea22c35405226b3afa69cc
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:40 2018 +0200

    xwayland: move egl_backend to its own struct
    
    EGL backend availability requires both EGL extensions and Wayland
    interfaces to be present, so we will need to consider multiple backends
    during initialization.
    
    As a preliminary work, move the egl_backend to its own struct so that we
    can have more than one backend at any given time.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit b74b0f18b8d3032317e38453ee63ae9efd33a098)

commit 831f7194b7006da14424da219661373e7d49114a
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:39 2018 +0200

    xwayland: skip drm authentication with render node
    
    If using a render node, we can skip DRM authentication.
    
    Suggested-by: Emil Velikov <emil.velikov at collabora.com>
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit de004eefc60ec595f5d6d81658468e082f8df930)

commit 60eda2af0acd54e05ab794947f106f8f2d421e90
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:38 2018 +0200

    xwayland: GBM should fail w/out "GL_OES_EGL_image"
    
    Surely, we should fail to init GBM backend if "GL_OES_EGL_image" is
    missing.
    
    This seems to have been lost with commit 1545e2dba ("xwayland: Decouple
    GBM from glamor").
    
    Suggested-by: Emil Velikov <emil.velikov at collabora.com>
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit b823b43dca143810146f563d09e8996058b9d09e)

commit f8e96b22bfac0733328fb9902c151003db5cc724
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:37 2018 +0200

    xwayland: swap "name" and "id" in init_wl_registry()
    
    Both xwl_glamor_init_wl_registry() and the Wayland global registry
    handler use the interface id/name in that order, using name/id in the
    egl_backend vfunc makes things confusing and error prone.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit 78ce4aa979ff3f5870fbc12a7e5c53547084a61a)

commit 443e3348bb3c561160a2542365507179bd8dd825
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:38:36 2018 +0200

    xwayland: move glamor specific routines
    
    Functions such as:
    
      xwl_glamor_egl_supports_device_probing()
      xwl_glamor_egl_get_devices()
      xwl_glamor_egl_device_has_egl_extensions()
    
    Are of no use outside of EGLStream support, move them to the relevant
    source file.
    
    Similarly, the other glamor functions such as:
    
      xwl_glamor_init()
      xwl_screen_set_drm_interface()
      xwl_screen_set_dmabuf_interface()
      xwl_glamor_pixmap_get_wl_buffer()
      xwl_glamor_init_wl_registry()
      xwl_glamor_post_damage()
      xwl_glamor_allow_commits()
      xwl_glamor_egl_make_current()
    
    Are useless without glamor support enabled, move those within a
    a "#ifdef XWL_HAS_GLAMOR" in xwayland.h
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit f6b2109c1b49484af772df518314ec8e8432febe)

commit dea40be93577dff80cf25e9b39c2aaea030b9c9e
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:37:58 2018 +0200

    xwayland: make xwl_output_get_xdg_output() static
    
    Make xwl_output_get_xdg_output() private, it doesn't need to be
    available elsewhere.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Lyude Paul <lyude at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit d31a7be15e259275599a9f67e0d921471ae64913)

commit 04a19291c93aaa4feeaf7a87663eaf1ef7c1f4b8
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:37:57 2018 +0200

    xwayland: do not disable glamor if EGLStream failed
    
    EGLStream requires glamor, but the opposite is not true. So if someone
    passes "-eglstream" with a GPU which does not support EGLStream, we
    could maybe still try GBM and be lucky.
    
    That allows Wayland compositors to pass "-eglstream" regardless of the
    actual hardware, if they want to enable EGLStream on GPU which support
    it.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Lyude Paul <lyude at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit e16a6da79dea793a335be70ba07d5e1c1295b5eb)

commit de40a55235614d6114e97bd8c6f687bb555bdba8
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:37:56 2018 +0200

    xwayland: process Wayland events after adding screen
    
    When we're done adding a new screen, we need to process any pending
    Wayland events again.
    
    Hence we don't end up processing xdg_output events unexpectedly when
    glamor is disabled. Be that because "-shm" was passed or "-eglstream"
    has failed.
    
    Failing to do that could lead to a crash at startup:
    
        Xwayland: dixGetPrivateAddr: Assertion `key->initialized' failed.
        (EE)
        (EE) Backtrace:
        (EE) 0: Xwayland (OsSigHandler)
        (EE) 1: libpthread.so.0 (funlockfile)
        (EE) 2: libc.so.6 (gsignal)
        (EE) 3: libc.so.6 (abort)
        (EE) 4: libc.so.6 (?+0x0)
        (EE) 5: libc.so.6 (__assert_fail)
        (EE) 6: Xwayland (dixGetPrivateAddr)
        (EE) 7: Xwayland (_fbGetWindowPixmap)
        (EE) 8: Xwayland (getDrawableDamageRef)
        (EE) 9: Xwayland (damageRegionProcessPending)
        (EE) 10: Xwayland (damagePolyFillRect)
        (EE) 11: Xwayland (miPaintWindow)
        (EE) 12: Xwayland (miWindowExposures)
        (EE) 13: Xwayland (miHandleValidateExposures)
        (EE) 14: Xwayland (SetRootClip)
        (EE) 15: Xwayland (update_screen_size)
        (EE) 16: Xwayland (apply_output_change)
        (EE) 17: libffi.so.6 (ffi_call_unix64)
        (EE) 18: libffi.so.6 (ffi_call)
        (EE) 19: libwayland-client.so.0 (wl_log_set_handler_client)
        (EE) 20: libwayland-client.so.0 (_init)
        (EE) 21: libwayland-client.so.0 (wl_display_dispatch_queue_pending)
        (EE) 22: libwayland-client.so.0 (wl_display_roundtrip_queue)
        (EE) 23: Xwayland (InitInput)
        (EE) 24: Xwayland (dix_main)
        (EE) 25: libc.so.6 (__libc_start_main)
        (EE) 26: Xwayland (_start)
        (EE)
        (EE)
        Fatal server error:
        (EE) Caught signal 6 (Aborted). Server aborting
        (EE)
        Aborted (core dumped)
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Lyude Paul <lyude at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit 44560af02823239e1b5b236e8cb365b5bdf24b6a)

commit 2d31a40db5ab3dc93863dc5ed9d9865490508575
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:37:55 2018 +0200

    xwayland: "EGL_EXT_device_base" required for EGLStream
    
    eglQueryDevicesEXT() would abort if the required extensions are not
    available, meaning that enabling “-eglstream” on a non-EGLStream
    capable hardware would lead to an abort().
    
    Check that "EGL_EXT_device_base" extension is available and bail out
    early if not, so we don't abort() later in eglQueryDevicesEXT().
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Lyude Paul <lyude at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit dbde3fec32641ae23389cffa12a04d3608936795)

commit 65d46b2dfd638f6f6c6e52f3494c64716fc6687e
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Tue Jun 5 19:37:54 2018 +0200

    xwayland: allow "-eglstream" option
    
    The command line option "-eglstream" used to enable EGLStream support
    for NVidia GPU was made available only when Xwayland was built with
    EGLStream support enabled.
    
    Wayland compositors who spawn Xwayland have no easy way to tell whether
    or not Xwayland was built with EGLStream support enabled, and adding
    "-eglstream" command line option to Xwayland when it wasn't built with
    EGLStream support would prevent Xwayland from starting (“Unrecognized
    option” error).
    
    Make sure we support the command line option "-eglstream" regardless of
    EGLStream support in Xwayland. Obviously, if Xwayland was built without
    EGLStream support, this has no effect.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Lyude Paul <lyude at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit 06c31e782e360363238cf20e7afd3e4990a2c304)

commit 38835d1d8f613c3553149fc05e61a8bb9b0aef48
Author: Vladimir Panteleev <git at thecybershadow.net>
Date:   Wed Jun 20 13:37:45 2018 +0000

    glx/vndcmds: Fix vendor hash table key size
    
    The keySize parameter of the hashing/comparison functions was
    incorrectly specified to be sizeof(void*), even though the keys of
    this hashtable are CARD32.
    
    Fixes address sanitizer failure on 64-bit builds.
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    (cherry picked from commit 707d0f912b916e7546c4f7e7a5f7023a53e74615)

commit d7220428daee26acecb6ae9771e255c801c83572
Author: Alexander Volkov <a.volkov at rusbitech.ru>
Date:   Tue Jun 5 13:05:39 2018 +0300

    Xext/shm: Refuse to work for remote clients
    
    Avoid access to System V shared memory segment on the X server side
    for clients forwarded via SSH. Also prevent them from hanging while
    waiting for the reply from the ShmCreateSegment request.
    
    v2: Allow ShmQueryVersion request even for remote clients
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=11080
    Signed-off-by: Alexander Volkov <a.volkov at rusbitech.ru>
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    (cherry picked from commit ec7e2b54c5b4a34b2a077082967bc3ead30e227e)

commit 9e417072bcde15f32dbf083327b6fe0202bb4cf4
Author: Michał Górny <gentoo at mgorny.alt.pl>
Date:   Mon Jun 11 17:17:31 2018 -0400

    xfree86: Makefile shouldn't rely on superuser being named 'root'
    
    Change the 'chown' statement in Makefile.am to use the numeric UID
    of superuser instead of relying on the name 'root'.
    
    Bugzilla: https://bugs.freedesktop.org/27726
    Signed-off-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Michał Górny <gentoo at mgorny.alt.pl>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 5c95be38e5af28108d8c6c08dfe08d1dfcb7ed42)

commit 2e66ed066e4a9b52bcebf2ca3762f7e1ad141cf0
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Fri Jun 8 16:23:44 2018 +0200

    xwayland: use pixmap size on present flip
    
    If the pixmap size does not match the present box size, flickering
    occurs.
    
    This can happen when the client changes its size (e.g. switching to
    fullscreen), and since the buffer is kept as long as the pixmap is
    valid, once the buffer is created, it remains at the wrong (old) size
    and causes continuous flickering.
    
    Use the actual pixmap's drawable size instead of the present box to
    create the buffer so that it's sized appropriately.
    
    Bugzilla: https://bugs.freedesktop.org/106841
    Fixes: 0fb2cca193e6 "xwayland: Preliminary support for Present's new
                         window flip mode"
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
    Reviewed-by: Roman Gilg <subdiff at gmail.com>
    (cherry picked from commit 1993f147d08170f07a72e43f0a0f27687e16967b)

commit 883d4d00b46f18902ad402a156d56b1bfcc06ebe
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Thu Jun 7 17:55:21 2018 +0200

    present/wnmd: Preserve window pixmap's screen_x/y on flip
    
    The incorrect values could result in the new pixmap's contents
    getting corrupted down the line.
    
    v2:
    * Guard screen_x/y lines by #ifdef COMPOSITE
    
    Bugzilla: https://bugs.freedesktop.org/106841
    Fixes: 029608dd8020 "present: Add window flip mode"
    Reviewed-by: Adam Jackson <ajax at redhat.com> # v1
    Reviewed-by: Keith Packard <keithp at keithp.com> # v1
    Reviewed-by: Roman Gilg <subdiff at gmail.com>
    Tested-by: Olivier Fourdan <ofourdan at redhat.com> # v1
    (cherry picked from commit 10eec2ccb11701fe29ab246acd6c0bdc2991b775)

commit 55171d738a0c2dd8a37ba2c880ea4658fd8001a2
Author: Dave Airlie <airlied at redhat.com>
Date:   Tue May 29 10:39:22 2018 +1000

    xwayland: fix typo in non-modifier fallback path
    
    Pointed out on irc by q66.
    Reviewed-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
    
    (cherry picked from commit 6300049a9a4b84789a2e8141f5cad17adf22185c)

commit 64bf28572946da1db84f6e61b02b5e6432f13d10
Author: Roman Kapl <code at rkapl.cz>
Date:   Thu Jun 7 03:31:42 2018 +0200

    Xi: add forgotten byte-swaps for Valuator fields
    
    This has caused nonsensical values in xinput output.
    
    Signed-off-by: Roman Kapl <code at rkapl.cz>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit 40586cc4f8faa271d62fd84fe98c41debb878984)

commit 273115a01285ff2ce4837687f9bfc9d745a519a3
Author: Roman Kapl <code at rkapl.cz>
Date:   Thu Jun 7 03:31:41 2018 +0200

    Xi: fix byte-swapping of button labels
    
    The byte-swapping code forgot that the xXIButtonInfo is followed by a
    button mask, not directly by the button labels. This resulted in client
    crashes in cross-endian setups, for example in `xinput list --long`,
    since the client got an invalid atom.
    
    A new function was introduced to get the right positions for the label
    and mask data.
    
    Signed-off-by: Roman Kapl <code at rkapl.cz>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    (cherry picked from commit cefbc6a9356e5c6cf935b61557efa897762defae)

commit 69980e4e5a0d8ff3b36acf09e3c1e8eb76710726
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Fri Jun 1 11:57:15 2018 +0200

    exa: Use PictureMatchFormat for source-only picture format description
    
    Their pFormat member is NULL, which resulted in a crash in
    miRenderColorToPixel.
    
    Fixes: 8171d4c2d67b "render: Store and use all 16bpc of precision for
                         solid pixels (v2.1)"
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    (cherry picked from commit 3ebef6ab850675e1091df2125ebdfbb147436e6c)

commit 33f20c38fc15e6664635ad22a581d7860e4b185d
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Wed May 23 11:18:02 2018 +0200

    glamor: Propagate glamor_fds_from_pixmap error in glamor_fd_from_pixmap
    
    glamor_fds_from_pixmap returns 0 on error, but we were treating that as
    success, continuing with uninitialized stride and fd values.
    
    Also bail if the offset isn't 0, same as in dri3_fd_from_pixmap.
    
    v2:
    * Reduce to a simple one-liner fix (Emil Velikov)
    
    Fixes: c8c276c9569b "glamor: Implement PixmapFromBuffers and
                         BuffersFromPixmap"
    Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
    (cherry picked from commit 4d5950ce14676f970d9de97380929a93948b98f2)

commit 544caffae1b0dc786383b117c036284feb579a66
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Wed May 23 11:38:13 2018 +0200

    glamor: Always return 0 from glamor_fds_from_pixmap on error
    
    This matches what glamor_egl_fds_from_pixmap and dri3_fds_from_pixmap do
    and what proc_dri3_buffers_from_pixmap expects.
    
    Fixes: c8c276c9569b "glamor: Implement PixmapFromBuffers and
                         BuffersFromPixmap"
    Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
    (cherry picked from commit 3da999a0390407d512bf784e4faf01482bfff9ea)

commit a9a17581ce73a49f0a8d3b9dbb2db083fa44cb69
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Fri May 18 11:23:01 2018 +0200

    modesetting: Pass O_CLOEXEC when opening a DRM device
    
    We don't want DRM file descriptors to leak to child processes.
    
    Reviewed-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
    (cherry picked from commit 315c63c41d833700c505e4f21ffac4c59e1e3b2c)

commit c3a06e330b7e55e1daeefbb5c16a075c80233bb0
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Fri May 18 11:23:00 2018 +0200

    xfree86: Fix O_CLOEXEC usage in lnx_platform
    
    It was passing O_CLOEXEC as permission bits instead of as a flag.
    
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
    Reviewed-by: Keith Packard <keithp at keithp.com>
    (cherry picked from commit ab53e2859facecc0486344679dc01ea31fb427e9)

commit 662273397c537d031e1aee7c607c925ec6bb2d10
Author: Lukas F. Hartmann <lukas at mntmn.com>
Date:   Tue May 15 21:51:56 2018 +0200

    glamor_init: clamp GLSL to 120 if platform doesn't have instanced arrays
    
    Hi,
    
    I upgraded Xwayland and the assorted libraries from git masters today,
    and noticed that glamor wouldn't work anymore on i.MX6/etnaviv. The
    error was:
    
    No provider of glVertexAttribDivisor found.  Requires one of:
        Desktop OpenGL 3.3
        OpenGL ES 3.0
        GL extension "GL_ANGLE_instanced_arrays"
        GL extension "GL_ARB_instanced_arrays"
        GL extension "GL_EXT_instanced_arrays"
        GL extension "GL_NV_instanced_arrays"
    
    The problem is that etnaviv offers GLSL 140 on GL 2.1 and glamor
    rendering assumes that glVertexAttribDivisor() is always available on
    GLSL>=130, which is not the case here. Forcing GLSL 120 makes glamor
    work fine again on this platform. After chatting with ajax in
    #xorg-devel, the following solution was proposed.
    
    This is my first time of submitting a patch, so please excuse me and
    advise if I'm doing it wrong ;)
    
    Cheers
    Lukas (mntmn)
    Reviewed-by: Eric Anholt <eric at anholt.net>
    
    (cherry picked from commit 7437b6dbdee050f8ebb3a79b9077d051c91880c3)

commit 590374bd9213091b51679887d473d1a3067c99b5
Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date:   Sun May 13 15:31:37 2018 +0200

    DRI2: Sync radeonsi_pci_ids.h from Mesa
    
    Fixes DRI2 client driver name mapping for newer AMD GPUs with the
    modesetting driver, allowing the DRI2 extension to initialize.
    
    Fixes using GL with the modesetting driver for me.
    
    Seems we were way behind on this one, time to look into something
    more scalable?
    
    Signed-off-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
    (cherry picked from commit 3ab32a537840c6e6d6228b4ba62f98fbf5224f8a)

commit 5407be2c516fa23c505e7ba254367b5739399960
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date:   Sun May 13 19:36:05 2018 +0100

    meson: don't put literal 'PACKAGE_STRING' and 'XORG_MAN_PAGE' in man pages
    
    Instead, substitute the same values as autotools does
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Jon Turney <jon.turney at dronecode.org.uk>
    (cherry picked from commit 27eff10bfa1a02da7338a82e2312d2080e3e5876)

commit acd881e271419a2fc08cfc34ed9845346cee9e84
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date:   Sun May 13 19:36:04 2018 +0100

    meson: don't install xorg wrapper manpages if suid-wrapper isn't being used
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Jon Turney <jon.turney at dronecode.org.uk>
    (cherry picked from commit 47321bb455b1226c04711241496e62667eea34ea)

commit c09c78298cdb4cdd8383e252d8fe68adae1f3c54
Author: Jon Turney <jon.turney at dronecode.org.uk>
Date:   Sun May 13 19:36:03 2018 +0100

    meson: install xwinclip and Xwinrc man pages
    
    Omitted from a1e8dc05
    
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    Signed-off-by: Jon Turney <jon.turney at dronecode.org.uk>
    (cherry picked from commit 08a3583b5b2f812cc7f039aebd74ff9b1cb0dbcd)



More information about the xorg-commit mailing list