Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

zext-screencopy-unstable-v1 #3320

Draft
wants to merge 188 commits into
base: master
Choose a base branch
from
Draft

Commits on Nov 1, 2021

  1. ci: add .gitlab-ci.yml

    This is a glue file to allow integration with builds.sr.ht.
    emersion committed Nov 1, 2021
    Configuration menu
    Copy the full SHA
    d1b7567 View commit details
    Browse the repository at this point in the history
  2. s/GitHub/GitLab/

    emersion committed Nov 1, 2021
    Configuration menu
    Copy the full SHA
    8bc1086 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2021

  1. render: completely disable gles2 if requested but libEGL is found

    For `required` to disable search the value needs to be of `feature` type.
    Checking `gles2` via `in` keyword returns a `bool` but `required: false`
    makes the dependency optional instead of disabled.
    jbeich authored and emersion committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    760e166 View commit details
    Browse the repository at this point in the history
  2. xwayland: add support for -noTouchPointerEmulation

    This allows compositors to handle touch pointer emulation manually,
    instead of having Xwayland do it [1].
    
    [1]: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/691
    emersion committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    3e801d6 View commit details
    Browse the repository at this point in the history
  3. backend/session: introduce wlr_device_change_event

    This struct contains additional information for session device
    change events, such as the DRM connector ID that has changed.
    emersion committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    2ff4e11 View commit details
    Browse the repository at this point in the history
  4. backend/drm: handle per-connector hotplug events

    When a connector ID is specified in a hotplug event, don't scan all
    connectors. Only scan the connector that has changed.
    emersion committed Nov 2, 2021
    Configuration menu
    Copy the full SHA
    e13f3f8 View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2021

  1. Configuration menu
    Copy the full SHA
    8634dd3 View commit details
    Browse the repository at this point in the history
  2. CONTRIBUTING.md: add CoC section

    Kirill Primak committed Nov 6, 2021
    Configuration menu
    Copy the full SHA
    fc1ed72 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2021

  1. Configuration menu
    Copy the full SHA
    eb5f23d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e326b76 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2021

  1. Configuration menu
    Copy the full SHA
    f20c49d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fa77aeb View commit details
    Browse the repository at this point in the history
  3. output: drop wlr_output_export_dmabuf

    Callers can access output->front_buffer instead.
    emersion committed Nov 8, 2021
    Configuration menu
    Copy the full SHA
    76bab68 View commit details
    Browse the repository at this point in the history
  4. text-input: fix type of send_preedit_string() args

    The protocol uses a signed integer here, which is also what the
    wlr_input_method_v2_preedit_string struct provides to compositors from
    the input method protocol. Sway currently just passes those int32_t
    values directly to this function leading to an implicit conversion.
    ifreund authored and emersion committed Nov 8, 2021
    Configuration menu
    Copy the full SHA
    ab16861 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2021

  1. Configuration menu
    Copy the full SHA
    02a1ae1 View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2021

  1. Configuration menu
    Copy the full SHA
    3a685b1 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2021

  1. util/token: don't leak /dev/urandom fd to children

    Closes #3324.
    raphaelr committed Nov 14, 2021
    Configuration menu
    Copy the full SHA
    4a8e681 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2021

  1. backend/headless: unlink input device on destroy

    Removing an input device requires unlinking it from the list of all headless
    input devices. For that implement a destroy function.
    romangg committed Nov 15, 2021
    Configuration menu
    Copy the full SHA
    8274c85 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2021

  1. linux-dmabuf-v1: properly validate flags

    We were send a protocol error if INTERLACED or BOTTOM_FIRST was
    set. This is incorrect for the zwp_linux_dmabuf_params.create
    code-path because this kills the client without allowing it to
    gracefully handle the error.
    
    We should only send a protocol error if the client provides a bit
    not listed in the protocol definition.
    emersion authored and bl4ckb0ne committed Nov 17, 2021
    Configuration menu
    Copy the full SHA
    9a4e109 View commit details
    Browse the repository at this point in the history
  2. Remove support for DMA-BUF flags

    They are never used in practice, which makes all of our flag
    handling effectively dead code. Also, APIs such as KMS don't
    provide a good way to deal with the flags. Let's just fail the
    DMA-BUF import when clients provide flags.
    emersion authored and bl4ckb0ne committed Nov 17, 2021
    Configuration menu
    Copy the full SHA
    a04cfca View commit details
    Browse the repository at this point in the history
  3. Improve wlr_drm_format documentation

    A wlroots user can easily get confused and think that `cap` refers to
    wlroots buffer capabilities, not array capacity.
    DemiMarie authored and bl4ckb0ne committed Nov 17, 2021
    Configuration menu
    Copy the full SHA
    b5d4bc3 View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2021

  1. output: add wlr_output_init_render

    Co-authored-by: Simon Zeni <[email protected]>
    emersion and bl4ckb0ne committed Nov 18, 2021
    Configuration menu
    Copy the full SHA
    142d10e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6d6e70b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a6538ce View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0c76aef View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    6dc6af1 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    d07c87f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    5a98eae View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    5f11198 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    a143093 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    42549a1 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    d1ebd52 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    fdf3169 View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2021

  1. docs: mention WLR_RENDERER=vulkan.

    This option was added with commit
    8e34692.
    ericonr authored and bl4ckb0ne committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    e736ebc View commit details
    Browse the repository at this point in the history
  2. output: fix renderer buffer cap sanity check in wlr_output_init_render

    The backend and renderer don't directly interact together, so there's
    no point in checking that their buffer caps intersect. What we want to
    check is that:
    
    - The backend and allocator buffer caps are compatible, because the
      backend consumes buffers to display them.
    - The renderer and allocator buffer caps are compatible, because the
      renderer imports buffers to sample them or render to them.
    
    For instance, when running with the DRM backend and the Pixman renderer,
    the (backend & renderer) check will fail because backend = DMABUF and
    renderer = DATA_PTR.
    emersion committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    33eba90 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    25bb92f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c0fd60b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ee21075 View commit details
    Browse the repository at this point in the history
  6. output: lift up output format fallback logic

    This makes it possible for the two functions using output_pick_format
    (output_pick_cursor_format and output_create_swapchain) to select
    different buffer formats.
    mstoeckl authored and emersion committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    7508f87 View commit details
    Browse the repository at this point in the history
  7. output: use XRGB8888 format instead of ARGB8888

    Most (and possibly all) compositors using wlroots only ever render
    fully opaque content. To provide better performance, this change
    switches the default format used by wlr_output buffers from
    ARGB8888 to the opaque XRGB8888.
    
    Compositors like mutter, kwin, and weston already default to
    XRGB8888, so this change is unlikely to expose any new bugs in
    underlying drivers and hardware.
    
    This does not affect the hardware cursor's buffer format, which is
    still ARGB8888 by default.
    
    As part of this change, the X11 backend (which does not support
    changing format at runtime) now picks a true color, 24 bit depth
    visual (i.e. XRGB8888) instead of a 32 bit depth (ARGB8888) one.
    mstoeckl authored and emersion committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    3d7d6ec View commit details
    Browse the repository at this point in the history
  8. output: Add function to set preferred render format

    This change introduces new double buffered state to the wlr_output,
    corresponding to the buffer format to render to.
    
    The format being rendered to does not control the bit depth of colors
    being sent to the display; it does generally determine the format with
    which screenshot data is provided. The DRM backend _may_ sent higher
    bit depths if the render format depth is increased, but hardware and
    other limitations may apply.
    mstoeckl authored and emersion committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    e879d56 View commit details
    Browse the repository at this point in the history
  9. output: remove XRGB8888 cursor fallback format

    All graphics drivers supporting cursor planes support ARGB8888,
    the default cursor format, so this fallback is almost certainly
    unused.
    
    Essentially all cursor themes use alpha transparency to make it
    clearer where relative to the screen content the cursor hotspot is.
    It is better to fall back to a slightly slower software cursor than
    it is to fall back to the opaque square that is a hardware cursor
    without an alpha channel.
    mstoeckl authored and emersion committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    d0bb7df View commit details
    Browse the repository at this point in the history
  10. Introduce WLR_DEVICE_LEASE events

    This will allow the DRM backend to reload its lessee list.
    emersion authored and bl4ckb0ne committed Nov 19, 2021
    Configuration menu
    Copy the full SHA
    a37f538 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    86f5ecf View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    6bb8973 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    e656697 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    52c34e8 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    d70d74a View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2021

  1. linux-dmabuf-v1: hide wlr_linux_buffer_params_v1

    The parameters are used when the client is in the process of
    building a buffer. There's no reason why this internal
    implementation detail should be exposed in our public header.
    emersion committed Nov 22, 2021
    Configuration menu
    Copy the full SHA
    3d73b89 View commit details
    Browse the repository at this point in the history
  2. backend/wayland: report parent presentation clock

    There's no guarantee that the parent Wayland compositor uses
    CLOCK_MONOTONIC for reporting presentation timestamps, they could
    be using e.g. CLOCK_MONOTONIC_RAW or another system-specific clock.
    
    Forward the value via wlr_backend_impl.get_presentation_clock.
    
    References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3254#note_1143061
    emersion committed Nov 22, 2021
    Configuration menu
    Copy the full SHA
    3b93da7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c9ba9e8 View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2021

  1. input-device: remove wlr_input_device.link

    This field's ownership is unclear: it's in wlr_input_device, but
    it's not managed by the common code, it's up to each individual
    backend to use it and clean it up.
    
    Since this is a backend implementation detail, move it to the
    backend-specific structs.
    emersion authored and bl4ckb0ne committed Nov 23, 2021
    Configuration menu
    Copy the full SHA
    1d9c1bc View commit details
    Browse the repository at this point in the history
  2. render/vulkan: quiet glslangValidator

    This suppresses the output filename printed to stdout. Errors and
    warnings should still be printed to stderr as usual.
    emersion authored and bl4ckb0ne committed Nov 23, 2021
    Configuration menu
    Copy the full SHA
    5332935 View commit details
    Browse the repository at this point in the history
  3. render/vulkan: Optimize vertex shader

    This ends up being a horrible global load:
    
      s_getpc_b64   s[4:5]                                  // 000000000000: BE841C80
      v_add_u32     v0, s2, v0                              // 000000000004: 68000002
      v_sub_co_u32  v1, vcc, 0, v0                          // 000000000008: 34020080
      v_max_i32     v1, v0, v1                              // 00000000000C: 1A020300
      v_and_b32     v1, 3, v1                               // 000000000010: 26020283
      v_cmp_lt_i32  s[0:1], v0, 0                           // 000000000014: D0C10000 00010100
      v_sub_co_u32  v0, vcc, 0, v1                          // 00000000001C: 34000280
      v_cndmask_b32  v0, v1, v0, s[0:1]                     // 000000000020: D1000000 00020101
      v_lshlrev_b32  v1, 3, v0                              // 000000000028: 24020083
      v_mad_u32_u24  v0, v0, 8, 4                           // 00000000002C: D1C30000 02111100
      v_min_u32     v1, 32, v1                              // 000000000034: 1C0202A0
      v_min_u32     v0, 32, v0                              // 000000000038: 1C0000A0
      s_getpc_b64   s[0:1]                                  // 00000000003C: BE801C00
      s_add_u32     s0, s0, 0x0000003c                      // 000000000040: 8000FF00 0000003C
      s_addc_u32    s1, s1, 0                               // 000000000048: 82018001
      global_load_dword  v1, v[1:2], s[0:1]                 // 00000000004C: DC508000 01000001
      global_load_dword  v0, v[0:1], s[0:1]                 // 000000000054: DC508000 00000000
      v_mov_b32     v2, 0                                   // 00000000005C: 7E040280
      v_mov_b32     v3, 1.0                                 // 000000000060: 7E0602F2
      s_waitcnt     vmcnt(0)                                // 000000000064: BF8C0F70
      exp           pos0, v1, v0, v2, v3 done               // 000000000068: C40008CF 03020001
      exp           param0, off, off, off, off              // 000000000070: C4000200 00000000
      s_endpgm                                              // 000000000078: BF810000
      v_cndmask_b32  v0, s0, v0, vcc                        // 00000000007C: 00000000
      v_cndmask_b32  v0, s0, v0, vcc                        // 000000000080: 00000000
      v_add_f16     v192, s0, v0                            // 000000000084: 3F800000
      v_cndmask_b32  v0, s0, v0, vcc                        // 000000000088: 00000000
      v_add_f16     v192, s0, v0                            // 00000000008C: 3F800000
      v_add_f16     v192, s0, v0                            // 000000000090: 3F800000
      v_cndmask_b32  v0, s0, v0, vcc                        // 000000000094: 00000000
      v_add_f16     v192, s0, v0                            // 000000000098: 3F800000
      v_cndmask_b32  v0, s0, v0, vcc                        // 00000000009C: 00000000
    
    With some bit magic, we can get something much nicer:
    
      v_add_u32     v0, s2, v0                              // 000000000000: 68000002
      v_add_u32     v1, 1, v0                               // 000000000004: 68020081
      v_and_b32     v1, 2, v1                               // 000000000008: 26020282
      v_cvt_f32_i32  v1, v1                                 // 00000000000C: 7E020B01
      v_mul_f32     v1, 0.5, v1                             // 000000000010: 0A0202F0
      v_and_b32     v0, 2, v0                               // 000000000014: 26000082
      v_cvt_f32_i32  v0, v0                                 // 000000000018: 7E000B00
      v_mul_f32     v0, 0.5, v0                             // 00000000001C: 0A0000F0
      v_mov_b32     v2, 0                                   // 000000000020: 7E040280
      v_mov_b32     v3, 1.0                                 // 000000000024: 7E0602F2
      exp           pos0, v1, v0, v2, v3 done               // 000000000028: C40008CF 03020001
      exp           param0, off, off, off, off              // 000000000030: C4000200 00000000
      s_endpgm                                              // 000000000038: BF810000
    
    The above output was based on just shoving it in ShaderPlayground -- I was not able to use pipeline feedback as I was unable to get RenderDoc working due to the EXT_physical_device_drm requirement.
    
    I additionally considered using >> 1 instead of * 0.5, but AMD has dedicated modifiers to merge a * 0.5, * 2.0, etc in a single instruction. (Albeit, not taken advantage of in the code above, but might with ACO)
    
    Signed-off-by: Joshua Ashton <[email protected]>
    misyltoad authored and bl4ckb0ne committed Nov 23, 2021
    Configuration menu
    Copy the full SHA
    f132d66 View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2021

  1. docs/env_vars: drop WLR_DIRECT_TTY

    The direct session is gone, so this env var isn't looked up
    anymore.
    emersion committed Nov 24, 2021
    Configuration menu
    Copy the full SHA
    bcefb71 View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2021

  1. render: pick DRM FD in autocreate

    If the backend hasn't picked a DRM FD but supports DMA-BUF, pick
    an arbitrary render node. This will allow removing the DRM device
    selection logic from the headless backend.
    emersion authored and bl4ckb0ne committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    bf57825 View commit details
    Browse the repository at this point in the history
  2. render/allocator: fallback to renderer DRM FD in autocreate

    If the backend doesn't have a DRM FD, fallback to the renderer's.
    This accomodates for the situation where the headless backend hasn't
    picked a DRM FD in particular, but the renderer has picked one.
    emersion authored and bl4ckb0ne committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    e4f748c View commit details
    Browse the repository at this point in the history
  3. backend/headless: stop picking a DRM FD

    Sometimes the headless backend is used standalone with the Pixman
    renderer, sometimes it's used together with another backend which
    has already picked a DRM FD. In both of these cases it doesn't make
    sense to pick a DRM FD.
    
    Broadly speaking the headless backend doesn't really care which DRM
    device is used for the buffers it receives. So it doesn't really
    make sense to tie it to a particular DRM device.
    
    Let the backend users (e.g. wlr_renderer_autocreate) open an arbitrary
    DRM FD as needed instead.
    emersion authored and bl4ckb0ne committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    f29abe4 View commit details
    Browse the repository at this point in the history
  4. render: introduce WLR_RENDER_DRM_DEVICE

    This env var allows to override the DRM node used by the GLES2 and
    Vulkan renderers. It's especially useful to select a DRM node when
    running with the headless backend.
    
    References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/2656
    emersion authored and bl4ckb0ne committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    2e33139 View commit details
    Browse the repository at this point in the history
  5. backend/headless: drop wlr_headless_backend_create_with_renderer

    The headless backend no longer needs a parent renderer: it no longer
    needs to return it in wlr_backend_impl.get_renderer, nor does it
    need to return its DRM FD in wlr_backend_impl.get_drm_fd. Drop this
    function altogether since it now behaves exactly like
    wlr_headless_backend_create.
    emersion committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    b234edc View commit details
    Browse the repository at this point in the history
  6. backend: remove noop backend

    bl4ckb0ne authored and emersion committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    1d3dd7f View commit details
    Browse the repository at this point in the history
  7. scene: add wlr_scene_xdg_surface_create

    This allows compositors to easily add an xdg_surface to the
    scene-graph while retaining the ability to unconstraint popups
    and decide their final position.
    
    Compositors can handle new popups with the wlr_xdg_shell.new_surface
    event, get the parent scene-graph node via wlr_xdg_popup.parent.data,
    create a new scene-graph node via wlr_scene_xdg_surface_tree_create,
    and unconstraint the popup if they want to.
    emersion committed Nov 25, 2021
    Configuration menu
    Copy the full SHA
    585a908 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2021

  1. Configuration menu
    Copy the full SHA
    d78cb80 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    affe9ed View commit details
    Browse the repository at this point in the history
  3. backend/drm: fail on explicit modifier in drmModeAddFB2

    drmModeAddFB2 doesn't support explicit modifiers. Only accept INVALID
    which indicates an implicit modifier and LINEAR which may indicate
    that GBM_BO_USE_LINEAR has been used.
    emersion authored and bl4ckb0ne committed Nov 26, 2021
    Configuration menu
    Copy the full SHA
    e163a7c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d5df8d5 View commit details
    Browse the repository at this point in the history
  5. render/drm_format_set: remove special LINEAR case

    This was used to make the intersection of INVALID and LINEAR result
    in LINEAR. We can now just require LINEAR to be in both lists.
    emersion authored and bl4ckb0ne committed Nov 26, 2021
    Configuration menu
    Copy the full SHA
    98f2efd View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ef1669d View commit details
    Browse the repository at this point in the history
  7. render: add DMA-BUF docs

    Document some of the assumptions for DMA-BUF buffer sharing and
    modifiers.
    emersion authored and bl4ckb0ne committed Nov 26, 2021
    Configuration menu
    Copy the full SHA
    83d78f9 View commit details
    Browse the repository at this point in the history
  8. scene: add support for viewporter

    If the surface has a source box set, use that.
    
    Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3172
    emersion authored and Kirill Primak committed Nov 26, 2021
    Configuration menu
    Copy the full SHA
    254ab89 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2021

  1. linux-dmabuf-v1: filter out LINEAR if implicit

    If only INVALID and LINEAR are valid modifiers, we need to filter out
    LINEAR since Xwayland won't be able to allocate a BO with the explicit
    linear modifier on hardware that does not support explicit modifiers.
    The addition of LINEAR is an internal implementation detail which
    simplifies the wlroots architecture for now.
    
    Evntually Xwayland should be fixed to filter out modifiers that are not
    supported by the GBM implementation, see [1]. This could be done by
    querying EGL for the supported modifiers.
    
    [1]: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1166
    Emantor committed Nov 27, 2021
    Configuration menu
    Copy the full SHA
    d37eb5c View commit details
    Browse the repository at this point in the history

Commits on Nov 28, 2021

  1. Configuration menu
    Copy the full SHA
    0fb479c View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2021

  1. Insert new outputs at the end of the list

    This prevents auto-configuring a new output from changing the
    position of existing outputs.
    
    (v2: simplify insert-at-end logic)
    jlindgren90 authored and John Lindgren committed Nov 29, 2021
    Configuration menu
    Copy the full SHA
    bff5b2c View commit details
    Browse the repository at this point in the history
  2. backend/drm: poison buffers which cannot be scanned out

    Rather than repeatedly trying to import DMA-BUFs which cannot be
    scanned out, mark the failed ones with a special "poison" marker.
    Inspired from [1].
    
    [1]: https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/731
    emersion authored and bl4ckb0ne committed Nov 29, 2021
    Configuration menu
    Copy the full SHA
    fbaefd9 View commit details
    Browse the repository at this point in the history
  3. linux-dmabuf-v1: fix implicit check

    The implicit check to filter out LINEAR for dmabuf checked for INVALID
    twice instead of checking for INVALID & LINEAR. Fix this.
    
    Fixes: d37eb5c ("linux-dmabuf-v1: filter out LINEAR if implicit")
    Reported-by: Dawid Czeluśniak <[email protected]>
    Emantor committed Nov 29, 2021
    Configuration menu
    Copy the full SHA
    6bfb930 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2021

  1. output: destroy swapchain when disabled

    This avoids consuming GPU memory when an output is disabled.
    emersion authored and bl4ckb0ne committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    456b971 View commit details
    Browse the repository at this point in the history
  2. output: don't leave dangling cursor_front_buffer

    Sometimes we were calling wlr_output_impl.set_cursor with a NULL
    buffer, but we weren't clearing wlr_output.cursor_front_buffer.
    Avoid leaving a dangling buffer behind.
    
    Introduce a helper function output_set_hardware_cursor which calls
    wlr_output_impl.set_cursor and keeps cursor_front_buffer in sync.
    emersion authored and bl4ckb0ne committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    2540de4 View commit details
    Browse the repository at this point in the history
  3. output: fix typo in wlr_output_impl.get_primary_formats docs

    The buffer capabilities indicate whether the formats returned are
    for DMA-BUFs or shared memory buffers.
    emersion committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    e934350 View commit details
    Browse the repository at this point in the history
  4. output: add wlr_output_get_primary_formats

    This allows compositors to get primary formats without manually
    calling wlr_output_impl.get_primary_formats.
    
    For example, the Sway patch for linux-dmabuf feedback [1] needs
    this.
    
    [1]: swaywm/sway#6313
    emersion committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    697a1cd View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    dd84c5a View commit details
    Browse the repository at this point in the history
  6. scene: add wlr_scene_get_scene_output

    This allows getting a wlr_scene_output from a wlr_output. Since an
    output can only be added once to a scene-graph there's no ambiguity.
    
    This is useful for compositors using wlr_scene_attach_output_layout:
    the output layout integration automatically creates a scene-graph
    output for each wlr_output added to the layout.
    emersion authored and ifreund committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    ba974a4 View commit details
    Browse the repository at this point in the history
  7. tinywl: use wlr_scene

    ifreund committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    a44b2af View commit details
    Browse the repository at this point in the history
  8. backend/wayland: improve wayland input device name

    Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3332
    This makes input device names include it's type name
    OctopusET authored and emersion committed Nov 30, 2021
    Configuration menu
    Copy the full SHA
    611b9ca View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2021

  1. Fix uninitialized variable errors in release mode

    When using `meson --buildtype=release`, `-Wextra -Werror` is passed.
    This includes `-Werror=maybe-uninitialized`, which complains about
    the instances fixed in this commit.
    quantum5 committed Dec 1, 2021
    Configuration menu
    Copy the full SHA
    812ab2e View commit details
    Browse the repository at this point in the history
  2. render/egl: store IMG_context_priority in wlr_egl

    The next commit will split extension lookup and context
    initialization.
    emersion committed Dec 1, 2021
    Configuration menu
    Copy the full SHA
    ffd4a27 View commit details
    Browse the repository at this point in the history
  3. render/egl: add wlr_egl_create_with_context

    This allows creating a wlr_egl from an already-existing EGL display
    and context. This is useful to allow compositors to choose the exact
    EGL initialization parameters.
    emersion committed Dec 1, 2021
    Configuration menu
    Copy the full SHA
    051d1ce View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2021

  1. render/pixman: advertise MOD_INVALID instead of MOD_LINEAR

    The backends and allocators use INVALID, but the renderer uses
    LINEAR. Running a compositor with WLR_RENDERER=pixman results in:
    
        00:00:00.744 [types/output/render.c:59] Failed to pick primary buffer format for output 'WL-1'
    emersion authored and bl4ckb0ne committed Dec 2, 2021
    Configuration menu
    Copy the full SHA
    de0bc78 View commit details
    Browse the repository at this point in the history
  2. render/egl: improve modifier support detection

    Support for EXT_image_dma_buf_import_modifiers doesn't necessarily
    indicate support for modifiers. For instance, Mesa will advertise
    EXT_image_dma_buf_import_modifiers for all drivers. This is a trick
    to allow EGL clients to enumerate supported formats (something
    EXT_image_dma_buf_import is missing). For more information, see [1].
    
    Add a new wlr_egl.has_modifiers flag which indicates whether
    modifiers are supported. It's set to true if any
    eglQueryDmaBufModifiersEXT query returned a non-empty list.
    
    Use that flag to figure out whether the buffer modifier should be
    passed to the EGL implementation on import.
    
    [1]: KhronosGroup/EGL-Registry#142
    emersion authored and bl4ckb0ne committed Dec 2, 2021
    Configuration menu
    Copy the full SHA
    1bf9676 View commit details
    Browse the repository at this point in the history
  3. output: fix modifier stripping

    DRM formats with an empty modifier list are invalid. Instead of
    emptying the list, reduce it to { INVALID }.
    
    Add a check to make sure the renderer and backend support implicit
    modifiers, so that we don't fallback on e.g. Vulkan.
    
    Closes: swaywm/sway#6692
    emersion authored and bl4ckb0ne committed Dec 2, 2021
    Configuration menu
    Copy the full SHA
    0d32118 View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2021

  1. Configuration menu
    Copy the full SHA
    92080b3 View commit details
    Browse the repository at this point in the history
  2. render/drm-format-set: add wlr_drm_format_set_intersect

    This intersects two DRM format sets. This is useful for implementing
    DMA-BUF feedback in compositors, see e.g. the Sway PR [1].
    
    [1]: swaywm/sway#6313
    emersion authored and bl4ckb0ne committed Dec 3, 2021
    Configuration menu
    Copy the full SHA
    7201aae View commit details
    Browse the repository at this point in the history
  3. output: add wlr_output_event_commit.buffer

    This allows output commit listeners to access the newly committed
    buffer. Currently wlr_output.front_buffer is used but it'll get
    removed in the next commit.
    emersion authored and bl4ckb0ne committed Dec 3, 2021
    Configuration menu
    Copy the full SHA
    f016eca View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    60b7267 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    45069fb View commit details
    Browse the repository at this point in the history
  6. output: drop front_buffer

    This lets backends immediately release committed buffers if they
    want to.
    emersion authored and bl4ckb0ne committed Dec 3, 2021
    Configuration menu
    Copy the full SHA
    efeb834 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2021

  1. Fix wlr_scene_node_lower_to_bottom

    Before this commit, it would keep the node at the top or make it second-
    topmost.
    tiosgz committed Dec 4, 2021
    Configuration menu
    Copy the full SHA
    ca1af81 View commit details
    Browse the repository at this point in the history

Commits on Dec 6, 2021

  1. surface: fix damage transformation

    Kirill Primak authored and emersion committed Dec 6, 2021
    Configuration menu
    Copy the full SHA
    c9f3c2b View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2021

  1. render: add wlr_renderer_init_wl_shm

    This allows compositors to initialize wl_shm without initializing
    other globals like linux-dmabuf.
    emersion committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    77d811a View commit details
    Browse the repository at this point in the history
  2. linux-dmabuf-v1: implement v4

    Implement a basic version of linux-dmabuf-unstable-v1 version 4.
    Only default hints are implemented.
    
    The new wlr_linux_dmabuf_feedback_v1 data structure will allow
    compositors to define their own custom hints in the future. This
    data structure makes it easy to describe feedback metadata.
    
    It's converted to a "compiled" form suitable for marshalling over
    the Wayland socket via feedback_compile.
    emersion committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    1d83407 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c50c4fc View commit details
    Browse the repository at this point in the history
  4. build: move wayland-client dep to backend/wayland/

    wayland-client isn't really used by wlroots core, so let's move the
    dep to where it's needed in the Wayland backend.
    emersion committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    ad28490 View commit details
    Browse the repository at this point in the history
  5. examples/layer-shell: remove wlroots dependency

    This is a client example, it shouldn't use a compositor library
    like wlroots.
    emersion committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    83bdb3a View commit details
    Browse the repository at this point in the history
  6. examples: remove unnecessary wlroots deps for clients

    These clients don't need wlroots.
    emersion committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    90e9d32 View commit details
    Browse the repository at this point in the history
  7. examples: remove unnecessary partial_dependency() call

    The definition of the "drm" dep already calls it.
    emersion committed Dec 7, 2021
    Configuration menu
    Copy the full SHA
    1fbd13e View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2021

  1. output: introduce wlr_output_set_name

    wlroots picks names for all outputs, but it might be desirable for
    compositor to override it.
    
    For instance, Sway will use a headless output as a fallback in
    case no outputs are connected. Sway wants to clearly label the
    fallback output as such and label "real" headless outputs starting
    from HEADLESS-1.
    emersion committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    36a2b19 View commit details
    Browse the repository at this point in the history
  2. Fix incorrect %zd formatting directives

    %zd is for ssize_t. For size_t we should use %zu.
    emersion committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    818fc4a View commit details
    Browse the repository at this point in the history
  3. subsurface: simplify and fix parent commit handling

    Kirill Primak authored and emersion committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    f463ca6 View commit details
    Browse the repository at this point in the history
  4. subsurface: apply position change at the right moment

    Subsurface position is considered to be a part of the parent surface's
    state, therefore it should be modified when the parent is committed.
    Kirill Primak authored and emersion committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    df7d280 View commit details
    Browse the repository at this point in the history
  5. surface: fix non-buffer damage handling

    This commit fixes the way the damage that doesn't come directly from the
    client is handled.
    Kirill Primak authored and emersion committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    7964bda View commit details
    Browse the repository at this point in the history
  6. subsurface: don't add to parent list immediately

    Kirill Primak authored and emersion committed Dec 9, 2021
    Configuration menu
    Copy the full SHA
    0fcc842 View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2021

  1. output: add support for protocol interface version 4

    Two new events are added: name and description. The name is
    immutable. The description can be updated on-the-fly.
    emersion committed Dec 13, 2021
    Configuration menu
    Copy the full SHA
    e3fefda View commit details
    Browse the repository at this point in the history
  2. backend: fix return value of attempt_drm_backend

    The multi backend was returned instead of the primary DRM backend.
    neon64 authored and emersion committed Dec 13, 2021
    Configuration menu
    Copy the full SHA
    f6d3efb View commit details
    Browse the repository at this point in the history
  3. backend/drm: add wlr_drm_backend_monitor

    This helper is responsible for listening for new DRM devices and
    create new child DRM backends as necessary.
    neon64 authored and emersion committed Dec 13, 2021
    Configuration menu
    Copy the full SHA
    d8ca494 View commit details
    Browse the repository at this point in the history
  4. scene: send surface enter/leave output events

    Co-authored-by: Simon Ser <[email protected]>
    ifreund and emersion committed Dec 13, 2021
    Configuration menu
    Copy the full SHA
    0215dff View commit details
    Browse the repository at this point in the history
  5. scene: add primary output to wlr_scene_surface

    This allows compositors to avoid sending multiple frame done events
    to a surface that is rendered on multiple outputs at once. This may
    also be used in the same way for presentation feedback.
    ifreund authored and emersion committed Dec 13, 2021
    Configuration menu
    Copy the full SHA
    fb1f613 View commit details
    Browse the repository at this point in the history
  6. scene: add wlr_scene_send_frame_done()

    ifreund authored and emersion committed Dec 13, 2021
    Configuration menu
    Copy the full SHA
    fecde72 View commit details
    Browse the repository at this point in the history
  7. tinywl: use wlr_scene_send_frame_done()

    ifreund authored and emersion committed Dec 13, 2021
    Configuration menu
    Copy the full SHA
    ad01cdf View commit details
    Browse the repository at this point in the history
  8. scene: fix wlr_scene_send_frame_done() API

    This doesn't work if scene outputs are not used as the primary output of
    scene surfaces will always be NULL.
    
    Therefore, take a wlr_scene_output instead of separate wlr_scene and
    wlr_output arguments and rename the function to
    wlr_scene_output_send_frame_done().
    
    The actual behavior of the function is unchanged.
    ifreund committed Dec 13, 2021
    Configuration menu
    Copy the full SHA
    1c3e081 View commit details
    Browse the repository at this point in the history

Commits on Dec 14, 2021

  1. seat: Only resend keyboard/pointer enter to focused clients

    Otherwise it will send enter events to clients that already
    have keyboard/pointer focus.
    Notably Qt applications warns about this.
    nowrep committed Dec 14, 2021
    Configuration menu
    Copy the full SHA
    3191492 View commit details
    Browse the repository at this point in the history
  2. xdg-activation: Allow to submit tokens

    Allows the compositor to submit tokens to the pool of
    currently active tokens. This can be useful when the
    launcher doesn't use or support xdg-activation-v1 by
    itself - e.g. when it is X11 based or use gtk_shell1.
    agx committed Dec 14, 2021
    Configuration menu
    Copy the full SHA
    4c59f7d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4377b55 View commit details
    Browse the repository at this point in the history
  4. backend/drm: use drmModeFormatModifierBlobIterNext

    This avoids open-coding our own logic. The resulting code is more
    readable.
    
    References: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/146
    emersion authored and bl4ckb0ne committed Dec 14, 2021
    Configuration menu
    Copy the full SHA
    a15c327 View commit details
    Browse the repository at this point in the history
  5. backend/drm: use drmCloseBufferHandle

    This has been added in [1] and allows us to close buffer handles
    without manually calling drmIoctl.
    
    [1]: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/192
    emersion committed Dec 14, 2021
    Configuration menu
    Copy the full SHA
    bedfec9 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    c0b120a View commit details
    Browse the repository at this point in the history
  7. scene: add wlr_scene_set_presentation()

    This helper automates sending presentation feedback to clients based on
    the primary output of scene surfaces.
    ifreund committed Dec 14, 2021
    Configuration menu
    Copy the full SHA
    07ccc6e View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2021

  1. layer-shell: don't set committed flag if the property didn't change

    This fixes configure loop in Sway when clients re-send same properties
    on every configure event.
    
    Original issue: https://todo.sr.ht/~mil/sxmo-tickets/413
    Stacy Harper authored and Kirill Primak committed Dec 15, 2021
    Configuration menu
    Copy the full SHA
    8e566f7 View commit details
    Browse the repository at this point in the history
  2. backend/wayland: add basic linux-dmabuf feedback support

    This patch makes it so we bind to zwp_linux_dmabuf_v1 version 4 and
    we use it to grab the main device. v4 sends supported formats via a
    table so we need to handle this as well.
    
    v4 allows wlroots to remove the requirement for Mesa's internal
    wl_drm interface.
    emersion authored and Kirill Primak committed Dec 15, 2021
    Configuration menu
    Copy the full SHA
    9f41627 View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2021

  1. Configuration menu
    Copy the full SHA
    7360810 View commit details
    Browse the repository at this point in the history
  2. layer-shell: fix type of margins

    These currently use uint32_t while they are an int32_t in the protocol.
    ifreund authored and Kirill Primak committed Dec 17, 2021
    Configuration menu
    Copy the full SHA
    92d137c View commit details
    Browse the repository at this point in the history
  3. build: bump soversion

    According to [1] this should be done at each release with breaking ABI
    changes.
    
    [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/wikis/Core-contributor-guide#releasing-a-new-version
    
    Fixes: 7360810 ("build: bump to version 0.16.0")
    emersion committed Dec 17, 2021
    Configuration menu
    Copy the full SHA
    562b24b View commit details
    Browse the repository at this point in the history
  4. Remove wlr_box.h redirection

    Compositors should've all been updated to use the new header by now.
    emersion committed Dec 17, 2021
    Configuration menu
    Copy the full SHA
    93e050c View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2021

  1. build: simplify Meson subproject fallbacks

    All of these projects use meson.override_dependency() so we can
    stop referencing their internal variable name to grab the
    depndencies we need.
    emersion committed Dec 19, 2021
    Configuration menu
    Copy the full SHA
    b5a019d View commit details
    Browse the repository at this point in the history

Commits on Dec 20, 2021

  1. backend: error out in autocreate without libinput support

    The libinput backend is now optional. However, this means that a
    user building wlroots without the correct libinput dependencies
    will end up with a compositor which doesn't respond to input events.
    
    wlr_backend_autocreate is supposed to return a sensible setup, so in
    this case let's just error out and explain what happened. Users can
    suppress the check by setting WLR_LIBINPUT_NO_DEVICES=1 (already used
    to suppress the zero input device case inside the libinput backend).
    
    Compositors which really want to create a bare DRM backend can easily
    create it manually instead of using wlr_backend_autocreate.
    emersion authored and bl4ckb0ne committed Dec 20, 2021
    Configuration menu
    Copy the full SHA
    ec28457 View commit details
    Browse the repository at this point in the history
  2. wlr_texture: remove wlr_texture_from_wl_drm() from header

    This function was already removed in e5b5592 but it was forgotten to
    remove it from the header.
    ifreund committed Dec 20, 2021
    Configuration menu
    Copy the full SHA
    823476e View commit details
    Browse the repository at this point in the history

Commits on Dec 23, 2021

  1. scene: schedule an output frame on wl_surface.frame

    Some clients (e.g. mpv, Firefox) request a new wl_surface.frame
    callback without damaging their surface. When this happens,
    schedule a new output frame.
    
    Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3350
    emersion committed Dec 23, 2021
    Configuration menu
    Copy the full SHA
    812951f View commit details
    Browse the repository at this point in the history

Commits on Dec 26, 2021

  1. Configuration menu
    Copy the full SHA
    9988eb3 View commit details
    Browse the repository at this point in the history

Commits on Jan 5, 2022

  1. render/gles2: don't constrain shm formats to ones that support reading

    commit 44e8451 ("render/gles2: hide shm formats without GL
    support") added the is_gles2_pixel_format_supported() function to
    render/gles2/pixel_format.c, whose stated purpose is to "check whether
    the renderer has the needed GL extensions to read a given pixel format."
    It then used that function to filter the pixel formats returned by
    get_gles2_shm_formats().
    
    The result of this change is that RGB formats are no longer reported for
    GL drivers that don't implement EXT_read_format_bgra, even when those
    formats are supported for rendering (which they have to be for
    wlr_gles2_renderer_create() to succeed). This is a pretty clear
    regression, since wlr_renderer_init_wl_shm() fails when either of
    WL_SHM_FORMAT_ARGB8888 or WL_SHM_FORMAT_XRGB8888 are missing.
    
    To fix the regression, change is_gles2_pixel_format_supported() to
    accept all pixel formats that support rendering, regardless of whether
    we can read them or not, and move the check for EXT_read_format_bgra
    back into gles2_read_pixels(). (There's already a check for this
    extension in gles2_preferred_read_format(), so we're not breaking any
    abstraction that wasn't already broken.)
    
    Tested on the NVIDIA 495.46 proprietary driver, which doesn't support
    EXT_read_format_bgra.
    
    Fixes: 44e8451 ("render/gles2: hide shm formats without GL support")
    tchebb committed Jan 5, 2022
    Configuration menu
    Copy the full SHA
    59b9518 View commit details
    Browse the repository at this point in the history

Commits on Jan 8, 2022

  1. scene/subsurface_tree: fix handling subsurface destruction

    This commit renames map/unmap listeners to clarify that they handle
    subsurface events, and ensures the node is always destroyed before
    the subsurface.
    
    Without this patch, wl_list_remove() would operate on listener links in
    already freed memory. glibc is usually lenient to bugs like this, but
    musl isn't.
    vyivel authored and emersion committed Jan 8, 2022
    Configuration menu
    Copy the full SHA
    83ab505 View commit details
    Browse the repository at this point in the history

Commits on Jan 9, 2022

  1. readme: drop mention of the Sway project

    wlroots has historically been started as a Sway project, but these
    days many wlroots contributors are working on other compositors.
    wlroots now also has its own namespace on gitlab.freedesktop.org.
    
    Let's remove the mention about Sway in the README, to make it clearer
    that Sway isn't treated in a special manner when it comes to wlroots
    development.
    emersion committed Jan 9, 2022
    Configuration menu
    Copy the full SHA
    6cdf843 View commit details
    Browse the repository at this point in the history

Commits on Jan 13, 2022

  1. subcompositor: split out from compositor

    vyivel authored and emersion committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    b6f43ab View commit details
    Browse the repository at this point in the history
  2. surface: introduce events.client_commit

    wlr_surface.events.client_commit is fired when wl_surface.commit
    request is received.
    vyivel authored and emersion committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    4ec683a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    36b5d58 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e94e16b View commit details
    Browse the repository at this point in the history
  5. surface: deprecate wlr_surface.h

    vyivel authored and emersion committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    617eb4f View commit details
    Browse the repository at this point in the history
  6. surface: improve role precommit hook

    Now the role precommit hook is called before the commit, not on
    wl_surface.commit request, and takes a state which is to be applied.
    vyivel committed Jan 13, 2022
    Configuration menu
    Copy the full SHA
    50827ed View commit details
    Browse the repository at this point in the history

Commits on Jan 14, 2022

  1. tinywl: fix check whether client is focused or not

    Currently this check is too strict and denies the move/resize request
    if a subsurface of the client has pointer focus.
    ifreund authored and emersion committed Jan 14, 2022
    Configuration menu
    Copy the full SHA
    89dc9a4 View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2022

  1. input_method_v2: improve mapping detection

    Detect NULL commits before the surface is actually committed, allowing
    the surface to be properly damaged on unmap.
    tadeokondrak committed Jan 16, 2022
    Configuration menu
    Copy the full SHA
    5091118 View commit details
    Browse the repository at this point in the history

Commits on Jan 17, 2022

  1. foreign-toplevel: send enter if needed on output bind

    Currently the output enter event is never sent if the client has not
    yet bound the output, which happens every time the compositor creates a
    new output.
    
    To fix this, listen for the output bind event and inform clients as
    if needed.
    ifreund committed Jan 17, 2022
    Configuration menu
    Copy the full SHA
    1bd0ea3 View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2022

  1. Configuration menu
    Copy the full SHA
    8656c77 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1bc6f7f View commit details
    Browse the repository at this point in the history
  3. scene_graph: Simplify computation for offset of new surfaces.

    This became possible after the usage of wlr_surface_send_frame_done.
    Nefsen402 committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    c22ea3e View commit details
    Browse the repository at this point in the history
  4. render/vulkan: log physical device driver name

    This can be useful to figure out why a required feature is missing,
    e.g. as in [1].
    
    We check VK_EXT_physical_device_drm availability after printing
    the driver name.
    
    [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3358
    emersion committed Jan 19, 2022
    Configuration menu
    Copy the full SHA
    d8d3046 View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2022

  1. editorconfig: set max_line_length

    See [1]. CONTRIBUTING.md says:
    
    > Try to keep your lines under 80 columns, but you can go up to 100 if it
    > improves readability.
    
    [1]: https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties#max_line_length
    emersion committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    cfba4c6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7ce966a View commit details
    Browse the repository at this point in the history
  3. subcompositor: destroy subsurface with parent

    When the parent surface is destroyed, also destroy the child
    wl_subsurface. No need to handle the wlr_subsurface.parent == NULL
    case anymore.
    
    Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/1709
    emersion authored and vyivel committed Jan 20, 2022
    Configuration menu
    Copy the full SHA
    1d1b845 View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2022

  1. compositor: damage the whole buffer on viewport src change

    wp_viewporter protocol doesn't seem to say anything about damage, but
    Firefox assumes that wp_viewport::set_source alone is enough to damage
    the whole surface, and that assumption kinda makes sense, so let's do
    that.
    vyivel committed Jan 22, 2022
    Configuration menu
    Copy the full SHA
    da2491d View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2022

  1. subsurface: unlock cached state on commit if desynced

    wl_subsurface::set_desync description states: "If cached state exists when
    wl_surface.commit is called in desynchronized mode, the pending state is
    added to the cached state, and applied as a whole."
    
    This commit reintroduces an implementation of said behavior, previously
    removed in 7daf6da.
    
    Strictly speaking, this logic isn't fully correct, as the cached state
    and the pending state are applied individually instead, if the cached
    state isn't locked by anything else. However, the end result is still
    the same.
    
    This commit fixes the issue with Firefox permission popups.
    vyivel committed Jan 25, 2022
    Configuration menu
    Copy the full SHA
    7795196 View commit details
    Browse the repository at this point in the history

Commits on Jan 28, 2022

  1. xdg-output: remove dead code

    wlroots current requires wayland-protocols 1.24, so this if is no longer
    needed and hasn't been for a while.
    ifreund committed Jan 28, 2022
    Configuration menu
    Copy the full SHA
    2c59435 View commit details
    Browse the repository at this point in the history

Commits on Jan 30, 2022

  1. Configuration menu
    Copy the full SHA
    0fce935 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    47914da View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c5d89e4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1f870d0 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    71f31df View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    dc3b44b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    cf30866 View commit details
    Browse the repository at this point in the history
  8. Revert "examples: screencopy: Add option to capture cursor"

    This reverts commit 4fe62d0.
    any1 committed Jan 30, 2022
    Configuration menu
    Copy the full SHA
    6c4bcdd View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    c7ee875 View commit details
    Browse the repository at this point in the history
  10. Remove the cursor stuff

    any1 committed Jan 30, 2022
    Configuration menu
    Copy the full SHA
    0f6fedd View commit details
    Browse the repository at this point in the history
  11. Put buffer into into a struct

    any1 committed Jan 30, 2022
    Configuration menu
    Copy the full SHA
    f89a834 View commit details
    Browse the repository at this point in the history
  12. Add back cursor stuff

    any1 committed Jan 30, 2022
    Configuration menu
    Copy the full SHA
    f4cead0 View commit details
    Browse the repository at this point in the history
  13. Implement more cursor stuff

    any1 committed Jan 30, 2022
    Configuration menu
    Copy the full SHA
    1e5b077 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    962adc9 View commit details
    Browse the repository at this point in the history
  15. Fix a whoopsie

    any1 committed Jan 30, 2022
    Configuration menu
    Copy the full SHA
    38cd115 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    176710d View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    f311c00 View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2022

  1. Configuration menu
    Copy the full SHA
    1a89d0d View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2022

  1. Work on cursor capturing

    any1 committed Feb 3, 2022
    Configuration menu
    Copy the full SHA
    eaf5b69 View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2022

  1. Configuration menu
    Copy the full SHA
    93b2b01 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2022

  1. Configuration menu
    Copy the full SHA
    08e92cd View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2022

  1. Configuration menu
    Copy the full SHA
    689b04c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3912693 View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2022

  1. Configuration menu
    Copy the full SHA
    1967c12 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    731e94b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    454216e View commit details
    Browse the repository at this point in the history

Commits on Feb 14, 2022

  1. Configuration menu
    Copy the full SHA
    1ae99b1 View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2022

  1. Configuration menu
    Copy the full SHA
    cf51cde View commit details
    Browse the repository at this point in the history

Commits on Feb 16, 2022

  1. Configuration menu
    Copy the full SHA
    2fa0951 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1f57e45 View commit details
    Browse the repository at this point in the history