1. 19 Feb, 2019 2 commits
  2. 18 Feb, 2019 6 commits
  3. 17 Feb, 2019 2 commits
  4. 16 Feb, 2019 1 commit
    • Brian Ashworth's avatar
      wlr_output: do not modeset to current mode · 3c9f791d
      Brian Ashworth authored and emersion's avatar emersion committed
      There is no point in modesetting an output to a mode that it is already
      set to. Modesetting will cause the output to briefly flicker which is
      undesirable for a noop. This prevents modesetting any wlr_output,
      regardless of the backend, to it's currently set mode.
      3c9f791d
  5. 15 Feb, 2019 6 commits
  6. 14 Feb, 2019 4 commits
  7. 13 Feb, 2019 2 commits
  8. 12 Feb, 2019 1 commit
  9. 10 Feb, 2019 1 commit
    • Ivan Molodetskikh's avatar
      data-control: add primary selection support · 9e49ceb1
      Ivan Molodetskikh authored and emersion's avatar emersion committed
      data-control: separate out a data_offer struct
      
      This is a prerequisite to adding primary selection support.
      
      data-control: separate out data_control_source
      
      This is a prerequisite to adding primary selection support, since that
      doesn't use wlr_data_source, but rather wlr_primary_selection_source.
      
      Update the data-control protocol
      
      data-control: add primary selection support
      
      Merge create_offer and create_primary_offer
      
      Extract code into data_control_source_destroy()
      
      Fix pointer style
      
      Move resource neutralization to destructor
      
      Store wl_resource in the data_offer
      
      Extract data_offer destruction into a function
      9e49ceb1
  10. 09 Feb, 2019 2 commits
  11. 06 Feb, 2019 1 commit
  12. 05 Feb, 2019 3 commits
  13. 04 Feb, 2019 6 commits
    • Scott Anderson's avatar
      Merge pull request #1526 from VincentVanlaer/cursor-dmabuf · b2f56ad4
      Scott Anderson authored
      Allow cursor render surface to be used as fb
      b2f56ad4
    • Vincent Vanlaer's avatar
      Allow cursor render surface to be used as fb · 7bc43413
      Vincent Vanlaer authored
      In order for a surface to be used as a cursor plane framebuffer, it
      appears that requiring the buffer to be linear is sufficient.
      
      GBM_BO_USE_SCANOUT is added in case GBM_BO_USE_LINEAR isn't sufficient
      on untested hardware.
      
      Fixes #1323
      
      Removed wlr_drm_plane.cursor_bo as it does not serve any purpose
      anymore.
      
      Relevant analysis (taken from the PR description):
      
      While trying to implement a fix for #1323, I found that when exporting
      the rendered surface into a DMA-BUF and reimporting it with
      `GBM_BO_USE_CURSOR`, the resulting object does not appear to be valid.
      After some digging (turning on drm-kms debugging and switching to legacy
      mode), I managed to extract the following error: ```
      [drm:__setplane_check.isra.1 [drm]] Invalid pixel format AR24
      little-endian (0x34325241), modifier 0x100000000000001 ``` The format
      itself refers to ARGB8888 which is the same format as
      `renderer->gbm_format` used in master to create the cursor bo. However,
      using `gbm_bo_create` with `GBM_BO_USE_CURSOR` results in a modifier of
      0. A modifier of zero represents a linear buffer while the modifier of
      the surface that is rendered to is  `I915_FORMAT_MOD_X_TILED` (see
      https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/uapi/drm/drm_fourcc.h?h=v4.20.6#n263).
      In order to fix this mismatch in modifier, I added the
      `GBM_BO_USE_LINEAR` to the render surface and everything started to work
      just fine. I wondered however, whether the export and import is really
      necessary. I then decided to test if the back buffer of the render
      surface works as well, and at least on my hardware (Intel HD 530 and
      Intel UHD 620) it does. This is the patch in this PR and this requires
      no exporting and importing.
      
      I have to note that I cheated in order to import DMA_BUFs into a cursor
      bo when doing the first tests, since on import the Intel drivers check
      that the cursor is 64x64. This is strange since cursor sizes other than
      64x64 have been around for quite some time now
      (https://lists.freedesktop.org/archives/mesa-commit/2014-June/050268.html).
      Removing this check made everything work fine. I later (while writing
      this PR) found out that `__DRI_IMAGE_USE_CURSOR` (to which
      `GBM_BO_USE_CURSOR` translates) has been deprecated in mesa
      (https://gitlab.freedesktop.org/mesa/mesa/blob/master/include/GL/internal/dri_interface.h#L1296),
      which makes me wonder what the usecase of `GBM_BO_USE_CURSOR` is. The
      reason we never encountered this is that when specifying
      `GBM_BO_USE_WRITE`, a dumb buffer is created trough DRM and the usage
      flag never reaches the Intel driver directly. The relevant code is in
      https://gitlab.freedesktop.org/mesa/mesa/blob/master/src/gbm/backends/dri/gbm_dri.c#L1011-1089
      . From this it seems that as long as the size, format and modifiers are
      right, any surface can be used as a cursor.
      7bc43413
    • Connor E's avatar
      Add build-*/ to gitignore. · 721a810f
      Connor E authored and emersion's avatar emersion committed
      721a810f
    • Connor E's avatar
      Make popup inert when destroyed. · c1d0729d
      Connor E authored and emersion's avatar emersion committed
      c1d0729d
    • Scott Anderson's avatar
      Merge pull request #1524 from mnussbaum/user-unit-wip · 841b4fd9
      Scott Anderson authored
      Allow compositors to run as systemd user units
      841b4fd9
    • Michael Nussbaum's avatar
      Allow compositors to run as systemd user units · c138da23
      Michael Nussbaum authored and Michael Nussbaum's avatar Michael Nussbaum committed
      When a wlroots compositor runs as a systemd user unit there is no
      session associated with the compositor process. Instead we need to
      attach to an active and graphical user session.
      
      This change first looks for an available session for the process, and if
      there isn't one falls back to display in the oldest available graphical
      session.
      
      This work was modeled after a similar change to mutter -
      https://gitlab.gnome.org/GNOME/mutter/merge_requests/150.
      c138da23
  14. 03 Feb, 2019 3 commits