wlroots 0.16.0
Release highlights:
- Support for the new ext-session-lock-v1, idle-notify-v1 and
single-pixel-buffer-v1 protocols has been added.
- The scene-graph API has many new features and optimizations.
- CPU readback for Vulkan renderer is now implemented. The Vulkan renderer
should be more stable.
- The input device API has been reworked.
- A new `wlr_damage_ring` helper supersedes wlr_output_damage without being
as invasive.
- Minor version 5 of xdg-shell has been implemented, adding support for popup
repositioning, configure bounds and WM capabilities.
- High-res scroll wheel events are now supported.
- Minor version 4 of wlr_output_management-v1 has been implemented, adding
support for managing adaptive sync (VRR).
- Internal refactoring of the wl_surface and DRM backend code.
Full commit history below.
Alexander Orzechowski (84):
scene_graph: use wlr_scene_output_send_frame_done
scene_graph: remove unused outputs list
scene_graph: Simplify computation for offset of new surfaces. This became possible after the usage of wlr_surface_send_frame_done.
xdg-foreign: Fix crash on destroy of degenerate surface
wlr_output_damage: Use wlr_output_damage_add for wlr_output_damage_add_box
wlr_output_damage: Don't schedule a new frame if damage region does not intersect with output
types/wlr_output: Handle subpixel hints through output commits
seat: Don't finish wlr_keyboard if server was never started
wlr_scene: Allow buffer in wlr_scene_buffer to be NULL
wlr_scene: Add setter for buffer of a wlr_scene_buffer
wlr_scene_output: Send output leave events before destroying the output
wlr_scene: Add output_enter/output_leave signals
wlr_scene: Fix missing calls to scene_node_update_outputs
wlr_scene: Make wlr_scene_render_output private
wlr_scene: Add presentation signal for wlr_scene_buffer
wlr_scene: Add primary_output property to wlr_scene_buffer
wlr_scene: Add frame_done signal for wlr_scene_buffer
wlr_scene: Add a way to choose when input interactions happen on a buffer
wlr_scene: Add a function to also specify damage when applying a buffer to wlr_scene_buffer
wlr_scene: Make scene_buffer_from_node public
wlr_scene: Pull scene_node_get_root into a private header
wlr_scene: Change out surface specific iterator functions
wlr_scene: Make presentation object public
wlr_scene: Introduce addons to scene nodes
wlr_scene: Refactor wlr_scene_surface to be a helper on top of wlr_scene_buffer
wlr_scene: Parse out WLR_SCENE_DEBUG_DAMAGE
wlr_scene: Hook up RERENDER logic
wlr_scene: Hook up HIGHLIGHT logic
wlr_scene: Refactor wlr_scene (the root element) to encase a wlr_scene_tree
wlr_scene: Only allow parenting on a wlr_scene_tree
wlr_scene: Inline wlr_scene_node_state
wlr_scene: Move children list from wlr_scene_node to wlr_scene_tree
wlr_scene_buffer: Call output enter/leave after primary_output calculation
wlr_scene_buffer: Update primary_output on output destroy
wlr_output_commit_state: Make sure to clear the back buffer
dmabuf: Don't leak file descriptors on error path
wlr_scene: Use direct assignment for damage indicator timestamps
wlr_scene: Maintain damage highlight regions per output
wlr_scene: Add option to disable direct scanout
wlr_scene: Introduce scene_nodes_in_box
wlr_scene: Damage scene on node destroy by disabling node
wlr_scene: Add per scene node visibility
wlr_scene: Rework damage handling
wlr_scene_set_buffer_with_damage: Only damage the visible parts of the node
wlr_scene: Only send frame done events for visible buffers
wlr_scene: Don't render non visible parts of textures/rects
wlr_scene: Rewrite direct scan out logic to rely on visibility
wlr_scene: Introduce buffer opaque region metadata
wlr_scene/surface: Hook through opaque metadata
wlr_scene: Calculate output intersections based on node visibility
wlr_scene: Account for occlusion by other scene nodes when calculating visibility
wlr_scene: Remove unused typedef
util/box: Introduce wlr_box_equal
util/box: Introduce wlr_fbox_equal
wlr_scene: Use wlr_fbox_equals
wlr_scene: Use wlr_box_equal
Use wl_signal_emit_mutable
Remove wlr_signal_emit_safe
wlr_scene: Simplify calculate_visibilty option
wlr_scene: Only enable black rect optimization if culling is enabled
wlr_scene: Cull background
wlr_scene: Improve awkward code style
util: Introduce env helpers
Use env helpers
wlr_scene: Initialize region32 before trying to use it
wlr_compositor: Use wlr_fbox_equal
wlr_scene: Only consider visible parts of the node when culling background
wlr_scene: More sanity checking
wlr_scene: Don't leak a region32 when texture failed to upload
wlr_compositor: Don't leak region32 when calculating opaque region
wlr_scene: Consider screen position when culling background
wlr_scene: Clarify surface commit frame events
pixel_format: RGBA4444 and RGBA5551 have alpha components
wlr_scene: Be resilient against overflow conditions
wlr_scene: Fix not updating the scene node when setting a new buffer
wlr_scene: Ignore disabled outputs
wlr_scene: Apply source box translation
backend/drm/legacy: Fix whitespace
wlr_scene: use wl_container_of() instead of casts
wlr_scene: Destroy the texture when setting a new buffer.
xwayland: Simplify net_wm_edges_to_wlr
wlr_scene: Handle fractional scaling better
wlr_scene: Fix texture reuse
wlr_scene: Remove duplicate buffer check when submitting a new buffer
Antonin Décimo (1):
xcursor: check that XDG base directory path is absolute
Bernardo Meurer (1):
render/vulkan: fix memory type detection
Consolatis (4):
wlr_scene: Fix scaling with default source_box
scene/output_layout: Fix crash in scene_output_layout_output_destroy
wlr_virtual_pointer_v1: fix discrete scrolling
screencopy-v1: make sure wlr_buffer enum is visible
David96 (4):
types/wlr_tablet_tool: remove name ambiguity
render/vulkan: Implement vulkan_read_pixels
render/vulkan: implement vulkan_preferred_read_format
render/vulkan: add caching to vulkan_read_pixels
Dean (1):
Free drmDevice in get_egl_device_from_drm_fd()
Dominique Martinet (2):
Xwayland: rename notify pipe 'p' to notify_fd
Xwayland: use -displayfd instead of USR1
Ferdinand Bachmann (3):
types/wlr_pointer_gestures_v1: null-check both focused_surface and focused_client
types/wlr_pointer_gestures_v1.c: get client from seat client instead of resource
types/seat/wlr_seat.c: fix focused_client being null after seat_client recreation
Gentaiii (1):
Fixed false allocation failed
Guido Günther (4):
examples/input-method: Don't crash on NULL surrounding text
layer-shell: Make wlr_layer_surface_v1_from_resource public
xdg-activation: Deduplicate token creation code
seat: Allow to cancel touches
Isaac Freund (20):
layer-shell: fix type of margins
wlr_texture: remove wlr_texture_from_wl_drm() from header
tinywl: fix check whether client is focused or not
foreign-toplevel: send enter if needed on output bind
xdg-output: remove dead code
ext-session-lock-v1: new protocol implementation
wlr_cursor: constify map to region box arguments
wlr_switch: remove WLR_SWITCH_STATE_TOGGLE
backend/drm: fix check for no-op commits
backend/drm: fix NULL pointer deference due to typo
output: fix leak of empty back buffer lock
wlr_input_device: remove anon union field
Document NULL return value of foo_from_wlr_surface() functions
wlr-output-management: Implement version 3 release requests
wlr-output-management: fix broken asserts
output: clean up after modifierless test failure
backend/wayland: report adaptive sync as enabled
backend/x11: report adaptive sync as enabled
output: remove unknown adaptive sync state
wlr-output-management: implement adaptive sync
Johan Malm (1):
scene/layer_shell_v1.c: fix bug in width/height calculations
Johannes (1):
examples/egl_common: switch rgba format
John Lindgren (6):
Revert "Copy xcb_icccm structs into wlroots"
wlr_drm_lease_v1: Fix use-after-free in backend_destroy()
cursor: Add a more general check for infinite/NaN cursor position
cursor: Don't warp to (0,0) when last output is disconnected
backend/libinput: Fix SIGSEGV found in low-memory fuzzing
render/vulkan: Fix type-punned pointer warning/error
Joshua Ashton (1):
xwayland: Add support for -force-xrandr-emulation
José Expósito (8):
build: bump Wayland to v1.21
build: check if libinput supports high-res scroll
pointer: transform low-res to high-res axis events
backend/libinput: handle high-res scroll events
backend/libinput: code style consistency
backend/wayland: handle high-res scroll events
seat: support high-resolution clients
seat: support low-resolution clients
Keith Bowes (1):
Fixed compiling with FFmpeg 5.0
Kenny Levinsen (8):
scene: Add layer_shell_v1 helper
meson: soversion arg should be string
wlr_{keyboard,pointer,touch}: Update event docs
Set mapped before firing map/unmap events
xdg_shell: Destroy popups after unmap event
scene/layer_shell: Ignore unmapped exclusion zone
util/array: Add array_realloc for wl_array
wlr_scene: Convert render_list to wl_array
Kirill Chibisov (1):
meson: use target_machine instead of host_machine
Kirill Primak (103):
scene/subsurface_tree: fix handling subsurface destruction
subcompositor: split out from compositor
surface: introduce events.client_commit
surface: move impl to types/wlr_{sub,}compositor.c
surface: move decl to wlr_{sub,}compositor.h
surface: deprecate wlr_surface.h
surface: improve role precommit hook
compositor: damage the whole buffer on viewport src change
subsurface: unlock cached state on commit if desynced
output-layout: make wlr_output_layout_get_box() take a box as parameter
output-layout: remove useless types/fields
cursor: store mapped_box as value
cursor: ensure mapping box is always initialized
xdg-shell: rename surface role handlers
xdg-shell: fix create_xdg_popup() param type
xdg-toplevel: fix functions' main argument type
xdg-popup: fix functions' main argument type
xdg-shell: remove "xdg" from docs
xdg-shell: unify function arguments' names
xdg-toplevel: change parent type to xdg-toplevel
xdg-toplevel: change object type in event structs
xdg-shell: extract role-specific unmap logic
xdg-shell: fix potential use-after-free
xdg-popup: destroy popup-less grab
xdg-surface: minor consistency renaming
xdg-shell: drop wlr_xdg_toplevel_set_fullscreen_event
xdg-toplevel: fix `requested` doc
xdg-surface: avoid emitting signals with their owner object
xdg-popup: send invalid_positioner to the right resource
CONTRIBUTING.md: update construction/destruction functions' description
xdg-{toplevel,popup}: extract destructors
xdg-positioner: rename structs
xdg-positioner: rewrite unconstraining, untie from xdg-popup
xdg-positioner: fix sliding regression
tinywl: don't generate xdg-shell-protocol.c
tinywl: remove outdated non-feature from README.md
xdg-toplevel: treat unmapped parents as NULL
xdg-foreign-v1: treat unmapped parents as NULL
xdg-foreign-v2: treat unmapped parents as NULL
xdg-toplevel: don't schedule configures on state requests
scene/output-layout: fix scene destroy handler
backend/wayland/pointer: fix indentation
backend/wayland: zero out finished input devices
CONTRIBUTING.md: update init/finish description
backend/wayland: reset active pointer on destroy
examples/layer-shell: premultiply alpha
xdg-toplevel: store states on the stack
scene/output: check for NULL in destructor
util/addon: avoid calling finish() twice
xdg-popup: add proper configure flow
xdg-popup: use current/pending state pattern
xdg-positioner: add v3 parameters
xdg-popup: add reposition support
xdg-shell: bump version to 3
tinywl: use xdg-shell v3
scene/wlr_scene.h: fix indentation
scene: add wlr_scene_output.events.destroy
scene/output-layout: improve ownership logic
scene/output-layout: add initial outputs
xdg-shell: improve shell version check
subcompositor: consider map on creation
xdg-toplevel: post no memory on strdup() fail
xdg-popup: use configure fields
types: add wlr_damage_ring
scene: switch to wlr_damage_ring
scene: add missing output damage listener
seat/pointer: rework sending axis events
util/array: unclutter
util/set: overhaul
cursor: avoid uninitialized wlr_box fields
output-layout: avoid uninitialized wlr_box fields
output-layout: improve wlr_output_layout_output_in_direction()
xdg-foreign-v1: s/unmap/destroy
xdg-foreign-v2: s/unmap/destroy
subcompositor: move+rename subsurface_parent_commit()
subcompositor: consider mapping after adding
xdg-toplevel: validate resize_edge
foreign-toplevel-management: fix indentation
output-damage: fix setting pending_attach_render
output-damage: drop precommit listener
output-damage: drop unused pending_attach_render
output: add a swapchain NULL check in wlr_output_commit_state()
tablet-v2: fix event parameters
xdg-toplevel: send invalid_parent error
scene: fix buffer source box transforming
xdg-shell: fix geometry types
compositor: introduce wlr_surface_destroy_role_object()
layer-shell: use role object destroy handler
subcompositor: use role object destroy handler
session-lock: use role object destroy handler
input-method: use role object destroy handler
drag-icon: use role object destroy handler
xdg-shell: use role object destroy handler
xwayland/xwm: use role object destroy handler
compositor: drop role object NULL checks in handlers
compositor: enforce surface destruction order
tinywl: handle view unmap while grabbed
compositor: use the correct input region
scene: fix output damage expansion
render/pixman: apply source image cropping
Revert "render/pixman: apply source image cropping"
damage-ring: add missing headers
output-damage: deprecate
Leonardo Hernández Hernández (1):
seat: take wlr_keyboard in wlr_seat_set_keyboard()
Manuel Stoeckl (3):
render/gles: add support for some 16-bpc unsigned shm formats
screencopy-v1: Fix frame stride for formats with bpp != 32
render/gles2: simplify alpha depth check
Mark Bolhuis (1):
types/wlr_xdg_output_v1: Fix wl_output.done bug.
Moon Sungjoon (1):
xcursor: support XDG Base Directory Specification
Quantum (1):
seat/pointer: fix uninitialized variable warning
Roman Gilg (2):
output: clear buffer created for test
render: allow texture creation while rendering
Rouven Czerwinski (3):
relative_pointer: handle inert pointer objects
cursor: re-enable NULL buffer for cursor
meson: update default options for libdrm
Samuel Čavoj (1):
Pass O_CLOEXEC to drmModeCreateLease calls
Sebastian Krzyszkowiak (1):
wlr_output_layout_contains_point: handle outputs that aren't in the layout
Simon Ser (192):
build: bump to version 0.16.0
build: bump soversion
Remove wlr_box.h redirection
build: simplify Meson subproject fallbacks
backend: error out in autocreate without libinput support
scene: schedule an output frame on wl_surface.frame
readme: drop mention of the Sway project
render/vulkan: log physical device driver name
editorconfig: set max_line_length
subcompositor: document subsurface_from_resource
subcompositor: destroy subsurface with parent
scene: try to import buffers as textures before rendering
buffer: extract interface to separate header
Revert "scene: try to import buffers as textures before rendering"
util/addon: fix public include
Zero-initialize structs in init functions
Revert "backend/wayland: zero out finished input devices"
drm-lease-v1: skip device on wlr_drm_backend_get_non_master_fd failure
xwayland: add wlr_xwayland_server_options.terminate_delay
xwayland: terminate when no client is connected
backend/headless: allow variable refresh rate
tinywl: don't crash when there is no keyboard
backend/drm: fetch EDID manufacturer from udev_hwdb
util/shm: clear mode permission bits in allocate_shm_file_pair
xdg-shell: specify version in wlr_xdg_shell_create
xwayland: use dict to collect supported features
build: bump version to 0.16.0-dev
backend/drm: allow non-linear modifiers for multi-GPU
backend/drm: remove wlr_drm_surface.{width,height}
contributing: add section about documentation conventions
Reformat doc comments
render/egl: drop MESA_EGL_NO_X11_HEADERS
render/egl: add wlr_egl_get_{context,display}
render/egl: make wlr_egl struct opaque
render/egl: make wlr_egl_{make,unset,is}_current private
render/egl: document wlr_egl_create_with_context
backend/drm: fix crash in init_drm_surface
output: turn make/model/serial into char *
linux-dmabuf-v1: fix MOD_INVALID handling in feedback tranches
backend/x11: fix output model strdup call
docs/env_vars: fix case of WLR_SCENE_DEBUG_DAMAGE values
gitignore: remove unnecessary entries, add subprojects/
output: pass wlr_output_state to backend
output: pass wlr_output_state to output_pending_resolution
output: pass wlr_output_state to rendering functions
output: add wlr_output_test_state
output: add wlr_output_event_precommit.state
output: add output_state_{init,finish}
output: add wlr_output_commit_state
build: make GBM optional
relative-pointer-v1: remove unnecessary comments
relative-pointer-v1: remove unnecessary log messages
relative-pointer-v1: don't allocate when inert
backend/drm: improve atomic commit flag logging
output: remove noop backend check in wlr_output_cursor_set_image
output: introduce wlr_output_cursor_set_buffer
output: re-implement set_image with set_buffer
output: drop wlr_output_cursor.events.destroy
compositor: send WL_SURFACE_ERROR_INVALID_SIZE for non-cursor surfaces
xdg-shell: add support for v4
backend/drm: make commits without a buffer blocking
backend/drm: short-circuit no-op commits
examples/text-input: stop using strcpy/strcat
examples/screencopy-dmabuf: stop using strncpy
Remove remaining wl_signal_emit calls
backend/drm: unconditionally set "content type" to graphics
backend/drm: make serial optional
output: fix make/model/serial memory leak
util/global: fix memory leak on display destroy in wlr_global_destroy_safe
output: add output state setters
output: compare state before commit
output: use state setters in wlr_output_set_*
render/gles2: simplify flipped projection
matrix: remove wlr_matrix_projection()
gitignore: remove build dir entries
render/texture: drop wlr_texture_is_opaque
output-management-v1: add wlr_output_head_v1_state_apply()
backend/drm: remove unused CRTC count check
backend/drm: set "max bpc" to the max
render/gles2: check GBM is found
render: use internal_features to indicate EGL support
build: fix enabled GBM when allocators=auto and auto_features=disabled
output: fix missing buffer when using direct scanout
backend/drm: use drmModeGetConnectorTypeName
backend/drm: use drmModeConnectorGetPossibleCrtcs
xdg-shell: add support for v5
single-pixel-buffer-v1: new protocol implementation
backend/drm: remove unused WLR_DRM_CONN_CLEANUP
backend/drm: drop WLR_DRM_CONN_NEEDS_MODESET
backend/drm: drop enum wlr_drm_connector_status
backend/wayland: fix touch device not added on startup
render: replace wlr_texture_write_pixels with update_from_buffer
surface: add WLR_SURFACE_STATE_OFFSET
surface: implement wl_surface.offset
output: fail commits if adaptive sync cannot be enabled
compositor: fix wlr_surface_set_role return value docs
render/vulkan: drop ext params from vulkan_device_create()
render/vulkan: drop wlr_vk_device.extensions
render/vulkan: fix format features check for shm textures
render/vulkan: remove unnecessary casts
backend/wayland: drop output_set_custom_mode()
xdg-foreign-v1: return wlr_xdg_toplevel in verify_is_toplevel()
xdg-foreign-v2: return wlr_xdg_toplevel in verify_is_toplevel()
render/egl: improve DMA-BUF format/modifier logging
render/allocator/gbm: log human-readable format and modifier
output/render: log human-readable format
render/vulkan: improve format logging
output/cursor: downgrade error messages
buffer: split into multiple files
single-pixel-buffer-v1: fix header guard name
output: fix wlr_output_set_gamma() with zero size
render/egl: add support for EGL_KHR_display_reference
render/vulkan: add error handling for vulkan_find_mem_type()
output: inline output_attach_render()
output: drop back_buffer variable in wlr_output_commit_state()
output: rejigger attach/clear for back buffer
backend/drm: de-duplicate wlr_drm_mode creation
output: fix back buffer checks
output: add wlr_output_mode.picture_aspect_ratio
backend/drm: pass through mode picture aspect ratio
screencopy-v1: rename wlr_screencopy_frame_v1.{format,fourcc}
screencopy-v1: use DRM format code for shm buffers
screencopy-v1: rename wlr_screencopy_frame_v1.stride
screencopy-v1: use wlr_buffer APIs
render: drop trailing whitespace
output: add wlr_output_state.allow_artifacts
backend/drm: fix missing wlr_output_state.allow_artifacts
render/vulkan: use addon for wlr_vk_render_buffer
render/vulkan: use addon for wlr_vk_texture
output: fix typo in error message
render: don't automatically fall back to Vulkan
render: don't fall back to Pixman if we have a render node
render/pixman: advertise support for linear format modifier
render/allocator/drm_dumb: advertise LINEAR instead of INVALID modifier
render/allocator/drm_dumb: check modifier list
render/allocator/drm_dumb: get format info before allocating
render/allocator/drm_dumb: fix error handling
render/allocator/drm_dumb: drop finish_buffer()
backend/drm: don't unconditionally set desired_enabled
backend/drm: remove outdated TODO
screencopy-v1: fix frame_shm_copy() error path
screencopy-v1: simplify frame_dma_copy() error path
render: drop wlr_renderer_read_pixels() flags
build: alphabetically sort protocol lists
backend/drm: drop unnecessary wlr_drm_connector.crtc checks
backend/drm: nuke wlr_drm_connector.desired_enabled
output/render: early return in output_ensure_buffer()
output/render: make output_ensure_buffer() no-op when missing renderer
output: allocate swapchain on first commit
drm-lease-v1: fix error codepath
drm-lease-v1: send finished event on failure in submit request
drm-lease-v1: reject the lease request by default
backend/drm: drop drm_connector_set_mode()
render/gles2: assert that GL_OES_EGL_image_external is supported
output: fix crash in output_test_with_back_buffer()
render/vulkan: drop wlr_vk_instance.extensions
backend: use global output name counters
backend/drm: use wl_container_of() instead of casts for wlr_drm_mode
idle-notify-v1: new protocol implementation
backend/drm: use atomic API to fetch current connector's CRTC
backend/drm: extract connect_drm_connector() logic
backend/drm: extract current mode logic into separate function
backend/drm: fix EINVAL atomic commits after VT switch
backend/drm: log when restoring mode after VT switch fails
backend/drm: drop drm_crtc_page_flip()
backend/drm: log failures in drm_surface_blit()
render/vulkan: add missing entries in vulkan_strerror()
backend/drm: fetch current CRTC once on startup
xwyland/xwm: simplify unpaired_link handling
output: try to use fixed mode in wlr_output_set_custom_mode()
output: clarify custom modes warning
egl: add WLR_EGL_NO_MODIFIERS
render/gles2: remove stale gles2_texture_from_wl_drm() prototype
render/gles2: log error on shader compilation failure
render/gles2: move shaders to individual files
render/gles2: move color uniform from quad.vert to quad.frag
render/gles2: de-duplicate vertex shaders
backend/drm: extract create_drm_connector()
backend/drm: get possible CRTCs in create_drm_connector()
xwayland: split headers
render/vulkan: remove exts arg from vulkan_instance_create()
render/vulkan: drop outdated comments
render/vulkan: simplify extension checks
render/vulkan: use struct initializers
render/vulkan: simplify texture VkPipelineShaderStageCreateInfo
render/vulkan: fix and add missing wl_list comments
render/vulkan: use wl_array for wlr_vk_shared_buffer.allocs
scene: fix whitespace
scene: destroy addons before cleaning up internal state
Revert "backend/drm: fetch EDID manufacturer from udev_hwdb"
backend/drm: request page-flip event on modeset
build: bump to version 0.16.0
Simon Zeni (57):
backend/headless: remove unused wlr_headless_input_device
types/wlr_input_device: default vendor and product id to 0
interfaces/wlr_input_device: introduce wlr_input_device_finish
types/wlr_input_device: call the specialized input device destroy function on destroy
types/wlr_keyboard: add base wlr_input_device
types/wlr_pointer: add base wlr_input_device
types/wlr_switch: add base wlr_input_device
types/wlr_tablet_pad: add base wlr_input_device
types/wlr_tablet_tool: add base wlr_input_device
types/wlr_touch: add base wlr_input_device
types/wlr_tablet_pad: constify impl
types/wlr_switch: constify impl
backend/x11: remove wlr_input_device_impl
backend/wayland: remove wlr_input_device_impl
backend/libinput: remove wlr_input_device_impl
interfaces: remove wlr_input_device_impl
types/wlr_virtual_keyboard_v1: fix wlr_keyboard destroy sequence
types/wlr_virtual_pointer_v1: fix wlr_pointer destroy sequence
backend/libinput: add devices wl_list
backend/libinput: rework keyboard interface
backend/libinput: rework pointer interface
backend/libinput: rework switch interface
backend/libinput: rework touch interface
backend/libinput: rework tablet interface
backend/libinput: rework tablet_pad interface
backend/libinput: public API cleanup
interface/wlr_keyboard: rework destroy sequence
interface/wlr_pointer: rework destroy sequence
interface/wlr_switch: rework destroy sequence
interface/wlr_tablet_pad: rework destroy sequence
interface/wlr_tablet_tool: rework destroy sequence
interface/wlr_touch: rework destroy sequence
tinywl: destroy keyboard on wlr_input_device event
types/wlr_input_device: remove wlr_input_device_destroy
types/wlr_input_device: move init and finish function to private API
types/wlr_keyboard: remove destroy event
types/wlr_virtual_keyboard_v1: remove destroy event
types/wlr_virtual_pointer_v1: remove destroy event
tinywl: init cursor_mode
backend/wayland: give wlr_keyboard ownership to wlr_wl_seat
backend/wayland: give wlr_pointer ownership to wlr_wl_seat
backend/wayland: drop wlr_switch support
backend/wayland: give wlr_touch ownership to wlr_wl_seat
backend/wayland/tablet_v2: give wlr_tablet_* ownership to wlr_wl_seat
backend/wayland: remove wlr_wl_input_device
backend/wayland: remove wl_seat_listener from public API
types/wlr_input_device: move output_name field to wlr_pointer and wlr_touch
types/wlr_input_device: move width_mm and height_mm fields to wlr_tablet and wlr_touch
types/wlr_pointer: uniformize events name
types/wlr_keyboard: uniformize events name
types/wlr_switch: uniformize events name
types/wlr_tablet_pad: uniformize events name
types/wlr_tablet_tool: uniformize events name
types/wlr_touch: uniformize events name
tinywl: exit on backend, renderer or allocator creation failure
build: remove libkms option and disable tests for libdrm fallback
backend/drm: allocate connector CRTC on lease creation
Steven Newbury (1):
util: Fix infinite loop in recursive function
Tadeo Kondrak (1):
input_method_v2: improve mapping detection
Thomas Hebb (1):
render/gles2: don't constrain shm formats to ones that support reading
Vlad Zahorodnii (1):
xcursor: garbage collect XcursorLibraryLoadImages
bi4k8 (3):
render/vulkan/pixel_format: do not leak props->...
Add missing &
render/egl: don't leak memory on error return
fakechen (1):
egl: modify egl_init_display function definition
illiliti (2):
meson: replace join_paths() with / operator
backend/drm: use pnp.ids to fetch EDID data
nyorain (1):
vulkan: Fix imported image layout
tiosgz (1):
CONTRIBUTING.md: make forks public to let the CI run
vanfanel (2):
Initialize connectors current mode to the mode used by KMS on startup.
Only set max_bpc when full modesetting is being done.
vaxerski (1):
backend/drm: fix crash with null serial
xiaoyaobing (1):
tinywl/tinywl: clean up tinywl_output when wlr_output is gone
yiqiang (2):
wlr_scene: fix color value when filtering black boxes
scene/wlr_scene:fix judgment of invisible node
zccrs (2):
render/vulkan: fix undefined reference to wlr_texture_is_vk
render/vulkan: add some interfaces to allow compositors to integrate
zsugabubus (1):
xwayland: do not double free server on destroy