wlroots 0.19.0-rc1
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 (8):
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
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 (6):
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
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 (27):
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
Kirill Primak (67):
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
Leonardo Hernández Hernández (1):
linux-drm-syncobj-v1: actually use the requested version
M Stoeckl (1):
wlr_cursor: use default shape if requested shape missing
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 (2):
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.
Simon Ser (120):
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
Thomas Frans (1):
git: fix incorrect subprojects ignore in `.gitignore`
Tycho Andersen (1):
xwayland: don't fail on SIGCHLD
YaoBing Xiao (9):
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
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 (1):
wlr_keyboard: don't emit key event for duplicated keycodes
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