Skip to content
Snippets Groups Projects
  1. Nov 23, 2021
    • Simon Ser's avatar
      unstable/linux-dmabuf: add wp_linux_dmabuf_feedback · 8a5cd28a
      Simon Ser authored
      
      On multi-GPU setups, multiple devices can be used for rendering. Clients
      need feedback about the device in use by the compositor. For instance,
      if they render on another GPU, then they need to make sure the memory is
      accessible between devices and that their buffers are not placed in
      hidden memory.
      
      This commit introduces a new wp_linux_dmabuf_feedback object. This
      object advertises a preferred main device, a set of preferred
      formats/modifiers and target devices.
      
      Each object is bound to a wl_surface and can dynamically update its
      feedback parameters. This enables fine-grained per-surface
      optimizations. For instance, when a surface is scanned out on a GPU the
      compositor isn't compositing with, the target device can be set to this
      GPU to avoid unnecessary roundtrips.
      
      A feedback object can also be standalone for clients that don't support
      per-surface feedback.
      
      Signed-off-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      Signed-off-by: default avatarLeandro Ribeiro <leandro.ribeiro@collabora.com>
      Reviewed-by: default avatarDaniel Stone <daniels@collabora.com>
      Closes: wayland#59
      8a5cd28a
  2. Nov 17, 2021
  3. Nov 10, 2021
  4. Nov 09, 2021
  5. Oct 13, 2021
  6. Oct 11, 2021
  7. Oct 04, 2021
    • Alexander Richardson's avatar
      tests: allow cross-compiling the tests · 78f654ed
      Alexander Richardson authored
      
      I am trying to cross-compile from macOS for FreeBSD and this is currently
      failing since the tests attempt to build a native binary that links
      against the wayland-client and wayland-server libraries for the FreeBSD
      system. I believe we should be building them for the target system and
      not the current host (especially since there is no way to build
      wayland-client and wayland-server for macOS, but I do want to check that
      the files build correctly for FreeBSD).
      
      Signed-off-by: default avatarAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>
      Reviewed-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      78f654ed
  8. Sep 19, 2021
  9. Sep 15, 2021
  10. Sep 13, 2021
    • Peter Hutterer's avatar
      pointer-gestures: add hold gestures · 824cea61
      Peter Hutterer authored and Simon Ser's avatar Simon Ser committed
      
      Hold gestures merely denote "there are fingers on the touchpad but they are
      not moving". As touchpad touches are generally fully abstracted, a client
      cannot currently know when a user is interacting with the touchpad without
      moving - no motion events will be sent in this case.
      
      The two use-cases here are:
      - hold-to-interact: where a hold gesture is active for some time
        a menu could pop up, or some object is selected, etc.
      - hold-to-cancel: where e.g. kinetic scrolling is currently active, the start
        of a hold gesture can be used to stop the scroll
      
      Since hold gestures by definition do not have movement, there is no need for
      an "update" stage in the gesture.
      
      Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      824cea61
  11. Sep 09, 2021
  12. Sep 01, 2021
  13. Aug 28, 2021
  14. Aug 06, 2021
    • Simon Ser's avatar
      readme: fix unformatted label references · 7dffa6f3
      Simon Ser authored
      
      The newlines prevent the labels from being properly formatted.
      Additionally, the second label reference has a typo (extra "s").
      
      Signed-off-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      7dffa6f3
    • Xaver Hugl's avatar
      staging/drm-lease: DRM lease protocol support · aa3df408
      Xaver Hugl authored and Simon Ser's avatar Simon Ser committed
      
      DRM leasing is a feature which allows the DRM master to "lease" a subset
      of its DRM resources to another DRM master via drmModeCreateLease, which
      returns a file descriptor for the new DRM master. We use this protocol
      to negotiate the terms of the lease and transfer this file descriptor to
      clients.
      
      In less DRM-specific terms: this protocol allows Wayland compositors to
      give over their GPU resources (like displays) to a Wayland client to
      exclusively control.
      
      The primary use-case for this is Virtual Reality headsets, which via the
      non-desktop DRM property are generally not used as desktop displays by
      Wayland compositors, and for latency reasons (among others) are most
      useful to games et al if they have direct control over the DRM resources
      associated with it. Basically, these are peripherals which are of no use
      to the compositor and may be of use to a client, but since they are tied
      up in DRM we need to use DRM leasing to get them into client's hands.
      
      Signed-off-by: default avatarMarius Vlad <marius.vlad@collabora.com>
      Signed-off-by: default avatarDrew DeVault <sir@cmpwn.com>
      Signed-off-by: default avatarXaver Hugl <xaver.hugl@gmail.com>
      Reviewed-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      Signed-off-by: default avatarDavid Edmundson <davidedmundson@kde.org>
      Reviewed-by: default avatarJonas Ådahl <jadahl@gmail.com>
      aa3df408
  15. Aug 04, 2021
  16. Jul 27, 2021
  17. Jul 21, 2021
    • Daniel Stone's avatar
      xdg-shell: Make xdg_surface fail when surface has role · 11fecf08
      Daniel Stone authored
      
      It is illegal for a surface to have more than one role. The only thing
      which can be done with an xdg_surface (apart from destroying it) is to
      assign the surface a role with the get_toplevel, get_popup, etc
      requests.
      
      On Mutter, calling get_xdg_surface on a surface which already has an
      assigned role generates the 'role' protocol error. Weston will not send
      an error, however it may later abort on a failed assert during cleanup.
      wlroots allows this case, and only sends the role error when assigning
      an explicit role through creating a toplevel or popup.
      
      On the grounds that it makes no sense to create an xdg_surface for a
      wl_surface which already has a role, make it explicitly illegal.
      
      cf. weston!559, weston!627
      
      Signed-off-by: default avatarDaniel Stone <daniels@collabora.com>
      11fecf08
  18. Jul 01, 2021
  19. Jun 25, 2021
    • Simon Ser's avatar
      readme: mention the DCO · 353ffc65
      Simon Ser authored
      
      We haven't mentionned the DCO anywhere, yet we were requiring all
      contributions to have a Signed-off-by line to accept it.
      
      Add a reference to the DCO in our README's "development procedure"
      section.
      
      Signed-off-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      353ffc65
  20. Jun 23, 2021
  21. Jun 07, 2021
  22. Jun 03, 2021
  23. May 18, 2021
    • Simon Ser's avatar
      members: add GitLab usernames · b4ecb55e
      Simon Ser authored
      
      Add GitLab usernames for all members, so that they can easily be
      mentionned in merge requests or issues.
      
      The only missing username is for Alan Griffiths, I don't think they
      have a GitLab account at the moment.
      
      Signed-off-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      b4ecb55e
  24. Apr 30, 2021
  25. Apr 14, 2021
    • Jonas Ådahl's avatar
      Replace `unstable` with `staging` · 5381e39b
      Jonas Ådahl authored and Simon Ser's avatar Simon Ser committed
      Time has told us that the effort going from `unstable` to `stable` is
      enough of a burdon meaning very few protocols are ever declared stable.
      
      To mitigate this, and thus avoid having protocols being "stuck" being
      "unstable" indefinitely, replace the "unstable" -> "stable" procedure
      with a "staging" -> "stable" procedure, where declaring a protocol
      stable does not involve any changes to any implementations.
      
      The only side effect of this is that version numbers are to forever be
      part of all interface names and protocol XML files.
      
      Closes: #30
      
      
      
      Signed-off-by: default avatarJonas Ådahl <jadahl@gmail.com>
      Reviewed-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      5381e39b
    • Simon Ser's avatar
      xdg-foreign: add error enums · b1670b4d
      Simon Ser authored
      
      The protocol states that the client must provide xdg_toplevel surfaces,
      but doesn't specify protocol error values that can be sent by the
      compositor.
      
      Signed-off-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      b1670b4d
  26. Apr 13, 2021
    • Peter Hutterer's avatar
      pointer-gestures: correct description of pinch · 17bef0ed
      Peter Hutterer authored
      
      This is being picky, but "pinch/spread" is the physical gesture, zoom and
      rotate is the effect that clients provide in response to that gesture.
      Let's use pinch only here since spread is more ambiguous in english, as anyone
      who's ever had butter on their bread would know.
      
      Also, everything else is referring to it as pinch anyway, so zoom/rotate here
      is the odd one out.
      
      Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      17bef0ed
  27. Apr 05, 2021
  28. Mar 31, 2021
    • Simon Ser's avatar
      linux-dmabuf: clarify what mixed valid/INVALID modifiers mean · 3683a5eb
      Simon Ser authored
      This commit makes it clear that compositors can send valid modifiers and
      DRM_FORMAT_MOD_INVALID for a given format. This means that the compositor
      supports both implicit and explicit modifiers. See the warning further
      down:
      
      > Warning: It should be an error if the format/modifier pair was not
      > advertised with the modifier event. This is not enforced yet because
      > some implementations always accept DRM_FORMAT_MOD_INVALID. Also
      > version 2 of this protocol does not have the modifier event.
      
      Xwayland already requires compositors to send DRM_FORMAT_MOD_INVALID
      for importing buffers with an implicit modifier [1].
      
      In a future protocol version, it would be nice to make it a protocol
      error (or at least a soft failure) to use any format/modifier pair that
      wasn't advertised. A use-case for this is Vulkan compositors: the Vulkan
      DMA-BUF extensions require an explicit modifier and cannot import
      buffers which have an implicit modifier.
      
      [1]: https://gitlab.freedesktop.org/xorg/xserver/-/blob/6c51818a0f55282cbe5a870f58ca82ca45ee472d/hw/xwayland/xwayland-glamor-gbm.c#L328
      
      
      
      Signed-off-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      3683a5eb
Loading