wlroots 0.19.0

Alexander Orezechowski (6):
      damage_ring: Add notes about damage being in buffer local coordinates
      scene: Apply damage ring as buffer local coordinates
      scene: Factor scaling into output transform function
      scene: Only accept buffer coordinates for damage
      scene: Rename some functions
      output: Change wlr_output_add_software_cursors_to_render_pass to take buffer coordinates

Alexander Orzechowski (31):
      wlr_scene: Force blend mode to PREMULTIPLIED if calculate visibility is disabled
      util/box: Introduce wlr_box_contains_box
      wlr_scene: Store update box in update data
      wlr_scene: Ensure scene_node_update is updating entire node.
      wlr_scene: Transparently restack xwayland surfaces
      wlr_scene: Improve wlr_scene_surface_create documentation
      wlr_scene: Funnel all damage operations through scene_output_damage
      wlr_scene: Immediately apply pending output commit damage
      wlr_scene: Inline output_state_apply_damage
      wlr_scene: Don't special case swapchain buffers
      wlr_scene: Fix WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT when output is transformed
      Revert "wlr_scene: Ensure scene_node_update is updating entire node."
      wlr_scene: Extract function to get xwayland surface from node
      wlr_scene: Ensure we restack all xwayland surfaces to the bottom when scene node is disabled
      wlr_scene: Introduce wlr_scene_output_needs_frame
      wlr_scene: Introduce wlr_scene_set_gamma_control_manager_v1
      output/render: Drop buffer age from wlr_output_begin_render_pass
      swapchain, damage_ring: Drop buffer age
      wlr_scene: Assert wlr_scene_rect has nonnegative dimensions
      render/color: Invert ownership model of color_transform types.
      scene: Use wlr_output_transformed_resolution
      scene: Don't rely on return value of wlr_damage_ring_add
      wlr_damage_ring: Clamp damage region to buffer size
      damage_ring: Remove return value of wlr_damage_ring_add/wlr_damage_ring_add_box
      damage_ring: Stop using ring->{width, height}
      damage_ring: Remove wlr_damage_ring_set_bounds
      wlr_scene: Add notes about wlr_scene_rect taking premultiplied colors
      scene: Assert all signals are clear when destroying
      render/drm_syncobj: Add a callback when ready
      render/drm_syncobj: Remove the ready signal from timeline_waiter
      ext_data_control: Add protocol implementation

Alistair Buxton (1):
      Fix Meson version required for C23 support

BiRD (3):
      tinywl: Edit Makefile for bmake compatibility
      ci: Remove package 'gmake'
      tinywl: Update .gitignore

Bill Li (1):
      ci: use package x11-servers/xwayland instead of x11-servers/xwayland-devel

Chris Ever (1):
      fix comment typo in wlr_text_input_v3.h

Consolatis (11):
      xwm: expose individual axis for _set_maximized()
      xwm: add request_close signal
      xwm: supply wlr_xwayland pointer to user_event_handler callback
      ext-foreign-toplevel-list: use correct interface and add missing handler
      dnd: ensure internal dnd handlers are unlinked on xwm_destroy()
      xwayland: fix xdg->xwayland drag-and-drop
      xwm: add missing NET_WM_STATE states
      wlr-foreign-toplevel: slight refactor
      wlr-foreign-toplevel: convert to stack backed states array
      wlr-foreign-toplevel: version guard fullscreen state
      backend/drm: make drm_lease implementation follow docs

David Turner (9):
      Support direct scanout with src crop and dst boxes
      scene: Apply output offset for direct scanout
      scene: Transform coordinates for direct scanout
      Declare struct wlr_surface in a less weird place
      Fix includes of wlr_output.h
      single-pixel-buffer: Add try_from_buffer() function
      scene: Optimize rendering of single-pixel buffers
      scene: Move single-pixel buffer things to scene_buffer
      backend/drm: Fix segfault in libliftoff startup

Dudemanguy (1):
      backend/drm: fix a use-after-free

Guido Günther (5):
      renderer: Drop mention of wlr_renderer_begin_with_buffer
      buffer: Make wlr_buffer_is_opaque public
      buffer: Move wlr_buffer_is_opaque to public header
      seat: Don't forget to destroy touch points on touch up
      xwm: Handle NET_WM_WINDOW_OPACITY

Isaac Freund (9):
      wlr_surface: fix argument order consistency
      wlr_xwayland_surface: fix prefix of two functions
      wlr_output: remove dead function
      docs: update comments for wlr_output API changes
      backend/drm: don't set vsync present flag if page flip was async
      backend/headless: actually perform output test
      xdg-activation: make wl_global public
      tablet-v2: cleanup focused surface on tool destroy
      presentation-time: make version a uint32_t

James Ramsey (2):
      Implement updated version of ext-idle-notify protocol
      Bump required w-p version to 1.40

John Lindgren (5):
      xwayland: factor out xwm_set_focused_window()
      xwayland: add focus_in and grab_focus events
      xwayland: add wlr_xwayland_surface_offer_focus()
      xwayland: set focus to XCB_POINTER_ROOT rather than XCB_NONE
      xwayland: add wlr_xwayland_surface_has_window_type()

Kenny Levinsen (30):
      allocator/gbm: Log errno if gbm_bo_create fails
      allocator/gbm: Reset errno before gbm_bo_create
      linux-drm-syncobj-v1: Skip release if there is no timeline
      backend/drm: Remove call to CRTC realloc on scan
      backend/multi: Advance index on backend_commit
      backend/drm: Skip plane props if buffer is not committed
      backend/drm: Store viewport with framebuffer
      backend/drm: Remove automatic reset on VT switch
      backend/drm: Remove reset from interface
      backend/drm: Store only a single plane viewport
      tablet-v2: Event time should be milliseconds
      wlr_keyboard_group: Use get_current_time_msec
      util/time: Move NSEC_PER_SEC to header
      render/vulkan: Garbage collect unused buffers
      backend/wayland: Account for shm buffer offset
      backend/drm: Set timeline support based on capability
      drm_format_set: Add wlr_drm_format_set_remove
      backend/drm: Ensure renderer is set to NULL on error
      backend/drm: Bail if renderer cannot import DMA-BUFs
      backend/drm: Check for mgpu_renderer instead of parent
      backend/drm: Move mgpu renderer setup to function
      backend/drm: Allow proceeding with render-less mgpu
      backend/drm: Remove redundant error logs
      scene: Only unwrap client buffer when underlying buffer is held
      scene/surface: Do not use buffer dimensions for clip
      xwayland: Reset signal mask and handlers before exec
      wlr_scene: Debounce dmabuf feedback on scanout
      compositor: Clean up surface current_outputs last
      scene: Fix scanout log to respect SCANOUT_SUCCESS
      wlr-foreign-toplevel-management-v1: Simply leave and destroy code

Kirill Primak (71):
      Rename wlr_surface_get_extends() to wlr_surface_get_extents()
      output-power-management: send zwlr_output_power_v1.failed on output destroy
      xwayland: remove stray empty line
      .mailmap: add myself
      seat/pointer: handle duplicate presses/releases correctly
      seat/pointer: reset pressed buttons on focus change
      xdg-foreign: clean up
      xdg-popup: don't set a role resource destroy handler
      pointer-constraints: don't init/finish current/pending states
      compositor: add surface role map hook
      xdg-surface: fix window geometry handling
      seat/pointer: reset pressed buttons on "grab-compatible" focus change
      linux-drm-syncobj: add missing decls in the header
      backend/wayland: process initial events from globals correctly
      backend/wayland: simplify wl_keyboard.{enter,leave} processing
      keyboard: simplify releasing keys on finish
      layer-shell: add v5 support
      layer-shell: introduce wlr_layer_surface_v1_get_exclusive_edge()
      drm-syncobj-v1: remove buffer release listener on signaller destroy
      scene: update output geom on commit after dropping pending damage
      scene: resize damage ring on geometry update
      tinywl: drop focused surface check for interactive ops
      pointer: release pressed buttons on destroy
      linux-dmabuf-v1: use static_assert
      ext-foreign-toplevel-list: add _from_resource()
      subcompositor: drop unused subsurface state
      scene: crop output buffer damage before adding
      Use WLR_PRIVATE for private fields
      Make all listeners private
      meson: fix file order
      xdg-system-bell-v1: add implementation
      seat: drop last_event
      tinywl: don't pass surface to focus_toplevel()
      meson: use kwargs for wayland deps
      meson: require wayland >=1.23.1
      tinywl: don't pass time to cursor mode motion handlers
      Add missing destroy events on automatically destroyed objects
      xdg-dialog-v1: add implementation
      seat: don't generate serial 0
      xwayland,render/vulkan: fix some size assertions
      buffer: introduce wlr_buffer_finish()
      output: introduce wlr_output_finish()
      backend/session: simplify udev event action matching
      session: drop unused wlr_session.vtnr
      backend: drop wl_display refs from docs
      text-input: fix wlr_text_input_manager_v3.text_inputs comment
      xdg-toplevel-icon-v1: add implementation
      xdg-dialog: add missing wm destroy signal
      Assert (almost all) signals have no attached listeners on destroy
      pointer-constraints: fix deactivating oneshot constraint on destroy
      compositor: add wlr_surface_synced commit hook
      pointer-constraints: rewrite doc comments
      pointer-constraints: use wlr_surface_synced.commit hook
      CONTRIBUTING.md: mention listener list assertions
      backend/wayland: remove syncobj waiter on buffer destroy
      drm-syncobj: return false instead of NULL
      backend/wayland: don't send request_state when enabling an output
      backend/output: extract backend to a variable in output_commit()
      backend/wayland: use a separate event queue for busy loops
      xdg-shell,layer-shell: assert that configure events are only sent to initialized surfaces
      scene: don't always round scaled regions up
      scene: don't mention damage in region-scaling functions
      fullscreen-shell: remove
      meson: add a missing src file
      Drop region.h
      ext-data-control: add missing listener list assertion
      xdg-system-bell-v1: set proper global/resource user data
      xdg-surface: ensure that the effective geom is not empty
      Fix/cleanup includes a bit
      xdg-surface: don't disconnect clients for bad effective geom yet
      xdg-surface: fix geom for surfaces that don't set it explicitly

Leonardo Hernández Hernández (1):
      linux-drm-syncobj-v1: actually use the requested version

M Stoeckl (2):
      wlr_cursor: use default shape if requested shape missing
      color-management-v1: implement surface_feedback_v1::get_preferred_parametric

Olivier Tilloy (1):
      seat/keyboard: optimize wlr_seat_set_keyboard to send the keymap only if it has changed

Peng Liu (1):
      backend/x11: delete xcb conn check NULL

Philipp Kaeser (3):
      wlr_scene: Add documentation to wlr_scene_create about how to destroy the allocated resources.
      wlr_scene: Add 'struct' to comment in wlr_scene_create() to permit auto-linkify.
      output_layout: Fixes docstring for wlr_output_layout_add[_auto].

Simon Ser (127):
      build: bump version to 0.19.0-dev
      build: use fs.relative_to() instead of hand-rolled logic
      render: add explicit sync API
      render/egl: add support for explicit sync extensions
      render/gles2: implement explicit sync API
      output: add explicit sync API
      backend/drm: add support for explicit sync APIs
      render/drm_syncobj: add wlr_drm_syncobj_timeline_transfer()
      render/drm_syncobj: add wlr_drm_syncobj_timeline_export()
      scene: add wlr_scene_buffer_set_buffer_with_options()
      scene: add timeline point to wlr_scene_buffer_set_buffer() options
      linux-drm-syncobj-v1: add helper to signal on buffer release
      scene: add support for linux-drm-syncobj-v1
      scene: add explicit synchronization for rendered buffers
      cursor: add support for linux-drm-syncobj-v1
      render: add WLR_RENDER_NO_EXPLICIT_SYNC env var
      scene: use numbers instead of stars for doc refs
      scene: fix typo in wlr_scene_surface_create() docs
      render/gles2: check for DRM_CAP_SYNCOBJ_TIMELINE
      xdg-shell: document struct wlr_xdg_toplevel_configure
      xdg-shell: add wlr_xdg_toplevel_configure()
      backend/drm: use CRTCs in-order
      backend/drm: use more descriptive names for match_obj()
      backend/drm: drop match_connectors_with_crtcs() return value
      backend/drm: rename i param in match_connectors_with_crtcs_()
      backend/drm: drop SKIP in match_connectors_with_crtcs()
      render/vulkan: use non-coherent memory for read_pixels()
      render/color: return tranform in wlr_color_transform_ref()
      backend/drm: add explicit sync support to multi-GPU blits
      backend/drm: add explicit sync support to libliftoff interface
      backend/drm: improve doc comment for match_connectors_with_crtcs_()
      compositor: document surface events
      render/vulkan: log size when importing too-large DMA-BUF
      render/vulkan: check size when creating shm texture
      render/vulkan: make VK_KHR_external_semaphore_fd optional
      keyboard: add utilities for pointer keys
      xwayland/xwm: extract read loop to separate function
      xwayland/xwm: implement somewhat asynchronous request flushing
      backend: add timeline feature flag
      output: use backend-wide timeline feature flag
      scene: use backend-wide timeline feature flag
      output: drop output timeline flag
      backend/drm: fix timeline feature flag on multi-GPU setups
      backend/drm: check whether clipped damage is empty
      render/vulkan: add render_pass_destroy()
      render/vulkan: add support for explicit sync
      buffer: add more docs
      build: rename meson_options.txt to meson.options
      scene: unwrap wlr_client_buffer for direct scan-out
      backend/wayland: handle DMA-BUF import failures
      all: use public <wlr/render/allocator.h>
      backend/drm: use public wlr_allocator_autocreate()
      render/allocator: drop allocator_autocreate_with_drm_fd()
      render/drm_syncobj: de-duplicate drm_syncobj timeline init
      render/drm_syncobj: add addon set
      backend/wayland: add support for explicit sync
      output-management-v1: only create custom mode object for enabled heads
      scene: assert on bad wlr_scene_buffer params
      backend/drm: fix drmModePageFlip() when disabling CRTC on legacy uAPI
      render/drm_format_set: fix corruption in wlr_drm_format_set_remove()
      backend/drm: check buffer format for multi-GPU
      render/vulkan: fix crash on OOM
      xwayland: listen to drag focus destroy signal
      xwayland: remove loop to find drag focus surface
      data-device: reset focused surface when destroyed
      render/gles2: validate shaders at build time
      output: adjust warning when hardware cursors are unsupported
      build: add Meson wrap manifests for our dependencies
      render/allocator: add udmabuf allocator
      render/egl: accept negative DRM FD to select software rendering
      render/vulkan: accept negative DRM FD to select software rendering
      render: add WLR_RENDERER_FORCE_SOFTWARE env var
      render/allocator: use udmabuf allocator automatically
      backend: replace get_buffer_caps hook with a struct field
      backend: document that buffer_caps/features are mutable
      ext-image-capture-source-v1: add base interface
      ext-image-capture-source-v1: add source pointer cursors
      ext-image-copy-capture-v1: new protocol implementation
      ext-image-copy-capture-v1: add wlr_ext_image_copy_capture_frame_v1_copy_buffer()
      ext-image-capture-source-v1: add wlr_ext_image_capture_source_v1_set_constraints_from_swapchain()
      ext-image-capture-source-v1: add output source
      output: require commit after hardware cursor update
      ext-image-capture-source-v1: add output cursor source
      backend/headless: accept hardware cursors
      ext-image-capture-source-v1: add start/stop hooks
      ext-image-copy-capture-v1: implement PAINT_CURSORS flag
      Make wlr_matrix private API
      matrix: drop wlr_matrix_transpose()
      matrix: drop rotation
      matrix: move to util/
      util/matrix: remove unnecessary include
      render/pixman: drop cast for pixman_image_set_clip_region32()
      Remove all calls to pixman_region32_not_empty()
      backend/drm: log when creating multi-GPU renderer
      ci: generate and publish HTML documentation
      render/vulkan: unify alpha pre-multiplication in output shader
      ci: fetch gyosu from new upstream
      output/cursor: drop output_cursor_reset()
      xwayland/xwm: handle deleted properties
      xwayland/xwm: log when property type is invalid
      backend/drm: handle custom modes in connect_drm_connector()
      backend/drm: fix enabling an output with a custom mode set
      Document config.h
      scene/surface: use source buffer to signal release timeline point
      backend/drm: pass DRM_MODE_ATOMIC_NONBLOCK for test commits
      util/matrix: add matrix_invert()
      render/color: include public header from private one
      render/color: add wlr_color_primaries_to_xyz()
      render/color: introduce wlr_color_named_primaries
      render/color: introduce wlr_color_primaries_from_named()
      render/color: introduce enum wlr_color_transfer_function
      render/color: add wlr_color_transfer_function_get_default_luminance()
      color-management-v1: new protocol
      color-management-v1: add struct wlr_image_description_v1
      color-management-v1: add support for parametric image desc creator
      color-management-v1: add wlr_surface_get_image_description_v1_data()
      color-management-v1: add support for mastering display metadata
      color-management-v1: add setter for surface feedback
      ext-data-control-v1: fix types in wl_list/wl_signal comments
      build: bump version to 0.19.0-rc1
      build: bump version to 0.19.0-rc2
      Revert "xwayland: Reset signal mask and handlers before exec"
      build: bump version to 0.19.0-rc3
      render/vulkan: create binary semaphore when signal timeline is supplied
      render/vulkan: check binary semaphore in vulkan_sync_render_buffer()
      xwayland: handle unset _NET_WM_NAME
      build: bump version to 0.19.0

Thomas Frans (1):
      git: fix incorrect subprojects ignore in `.gitignore`

Tycho Andersen (1):
      xwayland: don't fail on SIGCHLD

YaoBing Xiao (14):
      render/egl: Release devices before return
      types/wlr_output: removing the useless pointer
      backend/drm: remove unnecessary semicolons
      gles2/pass: remove duplicate variable declarations
      tearing_control_v1: Free the wlr_tearing_control_v1 on error
      wlr_screencopy_v1: send fine-grained damage events
      x11/backend: Optimize query_version error handling
      wlr_linux_dmabuf_v1: log plane index in error messages for dma-buf
      ext_image_capture_source_v1: remove unused wlr_renderer include
      backend/drm: add DRM object and property IDs to error
      backend/drm: rename conn_name to conn_type_name for clarity
      backend/drm: assign plane_id from function parameter instead of drm_plane
      render/drm_syncobj: fix return type mismatch
      render/pixman: null check on newly created image

Yixue Wang (1):
      wlr_client_buffer: add get_shm implementation

chenyongxing (1):
      render/vulkan: Fix draw rect clip region invalid in blend none mod

liupeng (2):
      render/egl: attribs len could be equal to size
      screencopy-v1: drop output_enable listener

llyyr (5):
      input-method-v2: set no keymap format if no keymap is set
      presentation-time: bump protocol version to v2
      backend/multi: only consider backends with dmabuf cap for timeline
      wlr_drag: cleanup icon_destroy listener when destroying icon
      backend/drm: don't leak mgpu_formats

mmcomando (1):
      Consider using vulkan renderer in default configuration

project-repo (2):
      Fix memory leak in drm.c
      Fix memory leak in xwayland.c

sunzhguy (1):
      session: skip adding duplicate DRM device

tokyo4j (3):
      wlr_keyboard: don't emit key event for duplicated keycodes
      Revert "wlr_keyboard: don't emit key event for duplicated keycodes"
      wlr_keyboard_group: fix leak of wlr_keyboard_group->keys

xurui (7):
      xdg-toplevel: use enum_is_valid functions
      xdg-positioner: use enum_is_valid functions
      layer-shell-v1: use enum_is_valid functions
      wlr_linux_dmabuf_v1: use enum_is_valid functions
      wlr_output_management_v1: use enum_is_valid functions
      output-power-management-v1: use enum_is_valid functions
      xwayland/selection/dnd: always send finished event

yuiiio (1):
      output: don't update disabled cursor texture

zhoulei (1):
      xwayland/xwm: listen shell destroy signal