Tags give the ability to mark specific points in history as being important
-
0.20.0-rc4
2d391661 · ·wlroots 0.20.0-rc4 Diego Viola (1): treewide: fix typos Kenny Levinsen (1): scene/layer_shell_v1: Add support for exclusive_edge Simon Ser (7): render/vulkan: introduce buffer_import_sync_file() render/vulkan: take render pass in vulkan_sync_render_buffer() render/vulkan: fix missing DMA-BUF implicit read fence for textures render/vulkan: introduce buffer_export_sync_file() render/vulkan: add "acquire" to vulkan_sync_foreign_texture() render/vulkan: fix missing DMA-BUF implicit write fence for render buffer build: bump version to 0.20.0-rc4 Wang Yu (1): xwayland: fix memory leak on pipe() failure YaoBing Xiao (1): render/gles: use optimized clears for unblended rects liupeng (1): screencopy: simplify capture error handling -
0.20.0-rc3
7be5e368 · ·wlroots 0.20.0-rc3 Isaac Freund (1): backend/x11: reject shm buffers with non-min strides Kenny Levinsen (1): backend/drm: Close non-master drm fd on failure Simon Ser (2): backend/libinput: guard against new enum entries build: bump version to 0.20.0-rc3 hrdl (1): CONTRIBUTING.md: update git host -
0.20.0-rc2
910fd264 · ·wlroots 0.20.0-rc2 Aleksei Bavshin (2): backend/libinput: fix build with libinput 1.31 backend/libinput: add support for LIBINPUT_SWITCH_KEYPAD_SLIDE Simon Ser (2): xwayland: try flushing immediately in xwm_schedule_flush() build: bump version to 0.20.0-rc2 Steve Williams (6): render/pixel-format: add function to determine YCbCr from drm fourcc vulkan: make use of new pixel_format_is_ycbcr function color_representation: ensure encoding/range/drm formats compatibility color-representation: add support for identity+full types/wlr_buffer: add buffer_get_drm_format helper function color-representation-v1: fix condition in surface commit YaoBing Xiao (2): xwayland: fix wl_array rollback when adding selection targets output/cursor: fix missing newline at end of file liupeng (2): render/drm_syncobj: drop unnecessary drmSyncobjTimelineWait() arg render/drm_syncobj: fix function name in drmSyncobjTimelineWait() error log rewine (4): types: Simplify wlr_keyboard_group_destroy wlr_cursor: add comments for signal parameters wlr_cursor: fix event type in handle_tablet_tool_button ext_image_capture_source_v1: remove unused variable -
0.20.0-rc1
4477ca7d · ·wlroots 0.20.0-rc1 Alexander Orzechowski (5): wlr_scene: Make restack_xwayland_surface_below generic wlr_scene: Don't recurse when disabling scene node if a child is already disabled wlr_scene: Update outputs when node is disabled wlr_scene: Only do disable cleanup when explicit damage is given wlr_scene: Add documentation to scene_node_update() Andri Yngvason (1): ext-image-capture-source: output: Apply transform to cursor Christopher Snowhill (2): color_management_v1: set output color properties color-representation-v1: Fix missing destroy signal init Consolatis (2): wlr_text_input_v3: remove event arguments from header transient_seat: initialize seat destroy listener Dale Turner (1): Add "const" to eliminate "error: initialization discards ‘const’ qualifier from pointer target type" David Turner (8): Change all timespec pointers in events to owned xwayland: Remove has_utf8_title field scene: Block damage on single-pixel buffer textures util/mem: Move memdup to new util/mem.c file color-representation-v1: new protocol color-representation-v1: Add wlr enums + converters color-representation-v1: Actually set supported_*_len xwm: Fix double-close David96 (1): wlr_virtual_pointer: Set axis source on all axis DreamMaoMao (1): render/pass: Ensure the precision is consistent during comparison Furkan Sahin (2): input-method-v2: Destroy keyboard grab before input method backend/session: use device `boot_display` Félix Poisot (21): scene: fix output transfer functions render: introduce Gamma 2.2 color transform scene, render: use Gamma 2.2 TF as default drm: save edid color characteristics in wlr_output cursor: apply output image description when preparing texture output/state: add missing unref for color_transform render/vulkan: fix single-pass linear path render/color: add wlr_color_primaries_transform_absolute_colorimetric render/vulkan: apply "matrix" color transforms in shader scene: always apply user gamma after scene color transform render: remove buffer primaries from pass options scene: don't rebuild color transforms each frame output: don't rebuild cursor color transform for each update render/color: make wlr_color_primaries_from_named public render/color: introduce color_transform_compose render/color: assert that wlr_color_transform_pipeline contains no NULLs meson: bump minimum wayland-protocols version color_management_v1: relax restrictions on maxCLL and maxFALL color_management_v1: use 64bit image description identities color_management_v1: new enum value for 'srgb' transfer function render: don't infer luminance multipliers from color TF Guido Günther (4): text-input-v3: Name new text input event correctly text-input-v3: Use `NULL` when emitting signals input-method-unstable-v2: There are no enable / disable events input-method-unstable-v2: surrounding text sends surrounding text Ilia Bozhinov (2): drag: destroy data source on touch_up seat: add wlr_seat_touch_notify_clear_focus Isaac Freund (2): util/box: set dest to empty if boxes don't intersect xwayland: add set_size_hints signal Jens Peters (1): backend/libinput: expose libinput_tablet_tool Jesper Jensen (1): output/cursor: Fix double cursor bug JiDe Zhang (1): xwayland: fix assertion failure in wlr_xwayland_shell_v1 John Lindgren (1): render/allocator: add missing wlr_buffer_finish() in destroy impls Kenny Levinsen (3): render/vulkan: Handle multi-descriptor sets output-swapchain-manager: Reject zero resolution ext_image_copy_capture_v1: Only render scene source on damage Kirill Primak (6): cursor-shape-v1: use generated enum validator cursor-shape-v1: bump to version 2 xdg-shell: add support for v7 fixes: add implementation Avoid including generated headers publicly where possible compositor: use wl_resource_post_error_vargs() Martin Rys (1): Add support for XKB_LED_NAME_COMPOSE and XKB_LED_NAME_KANA USB HID LEDs Requires xkbcommon 1.8.0 Peter Kaplan (2): wlr_ext_image_copy_capture_v1: new_session event image_capture_source: wlr_output_try_from_ext_image_capture_source_v1() Robin Ebert (1): wlr_ext_image_copy_capture_v1: Fix segmentation fault when using cursor session Rémi Bernon (2): xwayland: Create a dummy no_focus_window to use for non-X window focus xwayland: Activate no_focus_window when a Wayland window is activated Simon Ser (128): build: bump version to 0.20.0-dev output: don't send make/model idle_notify_v1: drop trailing spaces xwayland: require xcb-xfixes 1.15 render/allocator/gbm: require GBM 21.1 swapchain: assert that size is not empty at creation time ext_image_capture_source_v1: add support for foreign toplevels ext_image_capture_source_v1: add helper to capture scene nodes scene: ignore outputs with too small intersection with nodes scene: configure clients with the highest output scale scene: filter frame_done primary output in surface handler scene: use output with highest refresh rate for frame pacing scene: send surface preferred transform alongside DMA-BUF feedback render/color: add wlr_color_transform_init() render/color: use variable instead of type in sizeof() render/color: replace COLOR_TRANSFORM_LUT_3D with COLOR_TRANSFORM_LCMS2 render/color: introduce COLOR_TRANSFORM_LUT_3X1D output: add color transform to state backend/drm: add support for color transforms wlr_gamma_control_v1: use color transforms output: drop gamma LUT from state render/vulkan: add color transformation matrix render/vulkan: use output_pipe_srgb for non-NULL sRGB color transform render/vulkan: rename mat3_to_mat4() to encode_proj_matrix() render/vulkan: use array declaration in encode_proj_matrix() render, render/vulkan: add primaries to wlr_buffer_pass_options output: add color primaries to output state backend/drm: add support for color primaries render/vulkan: add PQ inverse EOTF to output shader render/color, render/vulkan: add support for PQ transfer function output: add transfer function to image description backend/drm: add support for image description transfer function render/vulkan: add luminance multipler for output shader render/vulkan: fix multiplication order for output color matrix render/color, render/vulkan: add EXT_LINEAR to enum wlr_color_transfer_function color-management-v1: add EXT_LINEAR render/pass: add wlr_render_texture_options.transfer_function render/vulkan: fix typo in wlr_vk_texture.views comment render/vulkan: add support for texture transfer functions scene: add transfer function support for wlr_scene_buffer scene: add support for color-management-v1 transfer functions render/vulkan: prepare texture shader for new transforms render/vulkan: introduce wlr_vk_frag_texture_pcr_data render/vulkan: add texture color transformation matrix render/vulkan: add support for PQ for textures render, render/vulkan: add primaries to wlr_render_texture_options render/vulkan: add luminance multiplier for texture shader scene: add primaries support to wlr_scene_buffer scene: add support for color-management-v1 primaries output: shorten output enabled checks output: add wlr_output.image_description output: add output_pending_image_description() scene: grab image description from output state output: add full HDR metadata to wlr_output_image_description backend/drm: relay full HDR metadata render/egl: fix software rendering check xdg-toplevel-tag-v1: new protocol color_management_v1: add helpers to convert TF/primaries enums scene: use helpers to convert TF/primaries enums ext_image_capture_source_v1: advertise fallback {A,X}RGB8888 formats backend, output: send commit events after applying all in wlr_backend_commit() color-management-v1: handle inert outputs in get_output tinywl: stop generating xdg-shell header render/vulkan: fix VkPushConstantRange for wlr_vk_frag_texture_pcr_data render/vulkan: remove hardcoded counts build: add wayland-protocols to dependencies array output/cursor: fix missing second cursor scene/surface: simplify single-pixel-buffer check in surface_reconfigure() scene/surface: fix NULL deref when source buffer is destroyed cursor: use source buffer to signal release timeline point render/vulkan: rename plain to two_pass render/vulkan: use sRGB image view when color transform is set render/vulkan: rename vulkan_setup_srgb_framebuffer() for linear render/vulkan: introduce wlr_vk_render_buffer_out render/vulkan: add wlr_vk_render_pass.render_setup render/vulkan: add wlr_vk_render_pass.render_buffer_out render/vulkan: replace wlr_vk_render_pass.srgb_pathway with two_pass render/vulkan: add linear single-subpass Add release script color_management_v1: drop duplicated enum converters color_management_v1: make from_wlr enum converters public color_management_v1: add destroy event to manager scene: send color_management_v1 surface feedback render/color: fix bounds check in lut_1d_get() backend/wayland: log when getting disconnected from remote display backend/wayland: continue reading on hangup backend/drm: avoid error message when EDID is missing backend/session: fix crash on udev device remove event Revert "wlr_scene: fix tf/prim comparison for scanout attempt" ci: fix VKMS lookup after faux bus migration linux_drm_syncobj_v1: fix use-after-free in surface_commit_destroy() render/color: add wlr_color_transform_eval() render/color: add wlr_color_transform_pipeline output: check for color transform no-op changes gamma_control_v1: add wlr_gamma_control_v1_get_color_transform() gamma_control_v1: introduce fallback_gamma_size scene: add software fallback for gamma LUT render/color: turn enum wlr_color_encoding into a bitfield render: add color encoding and range to wlr_render_texture_options render/vulkan: add suport for color encoding and range color_representation_v1: make supported_alpha_modes const scene: add support for color encoding and range scene: add support for color-representation-v1 coeffs and range color_representation_v1: add helper to create global from renderer render/color: introduce wlr_color_transform_matrix color_management_v1: add helpers to get supported TFs/primaries tinywl: fix duplicate object files passed to linker render/pixman: add support for ABGR16161616 color_management_v1: add BT.1886 to TF-from-renderer helper scene: don't assign outputs to invisible nodes scene: constify pixman_region32_t render: add new 16- and 32-bits-per-component pixel formats render/gles2: add BGR161616F and BGR161616 render/vulkan: add new 16- and 32-bits-per-component pixel formats scene: keep last preferred configuration when leaving last output render: drop <linux/dma-buf.h> compat defines ext_image_capture_source_v1/scene: fix stop for parallel captures scene/surface: don't cache frame pacing output scene: add knob to turn off Xwayland surface restacking render/gles2: skip glslang check when shaders are unchanged xcursor: add shared helper to create a wlr_xcursor_image xcursor: introduce wlr_xcursor_image_get_buffer() cursor: use wlr_xcursor_image_get_buffer() xwayland: take wlr_buffer in wlr_xwayland_set_cursor() ext_image_copy_capture_v1: replace schedule_frame with request_frame ext_image_capture_source_v1: wait for capture client before sending frame event color_representation_v1: send chroma_location protocol error build: bump version to 0.20.0-rc1 Simon Zeni (2): types: deprecate wlr-screencopy-unstable-v1 drm-lease-v1: remove connector active_lease & lease connectors Stephane Fontaine (1): xwm: don't leak msg in case of realloc failure YaoBing Xiao (1): render/vulkan: destroy vulkan instance when drm phdev mismatch Yixue Wang (2): types/color_representation: correctly cleanup in manager create types/color_management: check on invalid image description liupeng (3): cursor: update output cursor even if output is disabled drm_lease_v1: initialize device resource link during abnormal exit backend/session: respond to event hangup or error llyyr (9): meson: bump minimum wayland-protocols version wlr_scene: fix tf/prim comparison for scanout attempt wlr_scene: return scene_direct_scanout_result instead of bool render: introduce bt.1886 transfer function wlr_scene: fix direct scanout for gamma2.2 buffers render/vulkan: clip negative values before applying transfer function color_representation_v1: don't leak supported_* on display destroy render/vulkan: normalize luminance range in bt.1886 formula xwayland: lock new buffer instead of the old one qaqland (1): tinywl: fix cursor disappears when focused window is closed rewine (4): ext_image_capture_source_v1: remove unused struct definition wlr_ext_data_control_v1: Make all listeners private docs: deprecate legacy wlr_data_control_v1 interface protocols: sync with wlr-protocols, apply non-breaking updates and doc improvements sunzhguy (1): session: simplify libudev unref handling tokyo4j (8): backend/libinput: don't leak udev_device xwm: add support for _NET_WM_ICON input-method: rename input_method event to new_input_method input-method: use `NULL` when emitting signals util/box.c: use 1/256 instead of 1/65536 in wlr_box_closest_point() wlr-foreign-toplevel: avoid wl_resource_find_for_client() Add wlr_version_get_{major,minor,micro}() ext-workspace-v1: add implementation xurui (5): render/allocator/gbm: insert buffer after export gbm bo wlr_xdg_toplevel_icon_v1: check the correct resource wlr_drag: drag motion signal also needs to be sent types/wlr_input_device: name maybe NULL xwayland/selection/dnd: fix parameter type -
0.18.3
f0ae9dff · ·wlroots 0.18.3 Alistair Buxton (1): Fix Meson version required for C23 support DreamMaoMao (1): render/pass: Ensure the precision is consistent during comparison Guido Günther (1): seat: Don't forget to destroy touch points on touch up Kenny Levinsen (1): scene/surface: Do not use buffer dimensions for clip M Stoeckl (1): wlr_cursor: use default shape if requested shape missing Simon Ser (4): backend/drm: handle custom modes in connect_drm_connector() backend/drm: fix enabling an output with a custom mode set ci: fix VKMS lookup after faux bus migration build: bump version to 0.18.3 liupeng (1): screencopy-v1: drop output_enable listener tokyo4j (2): Revert "wlr_keyboard: don't emit key event for duplicated keycodes" wlr_keyboard_group: fix leak of wlr_keyboard_group->keys -
0.19.2
8c9e6b7c · ·wlroots 0.19.2 David Turner (1): xwm: Fix double-close JiDe Zhang (1): xwayland: fix assertion failure in wlr_xwayland_shell_v1 Simon Ser (5): backend, output: send commit events after applying all in wlr_backend_commit() backend/session: fix crash on udev device remove event linux_drm_syncobj_v1: fix use-after-free in surface_commit_destroy() ci: fix VKMS lookup after faux bus migration build: bump version to 0.19.2 tokyo4j (1): util/box.c: use 1/256 instead of 1/65536 in wlr_box_closest_point() -
0.19.1
9b42c190 · ·wlroots 0.19.1 Andri Yngvason (1): ext-image-capture-source: output: Apply transform to cursor Consolatis (1): transient_seat: initialize seat destroy listener David Turner (1): scene: Block damage on single-pixel buffer textures DreamMaoMao (1): render/pass: Ensure the precision is consistent during comparison Isaac Freund (1): util/box: set dest to empty if boxes don't intersect Jesper Jensen (1): output/cursor: Fix double cursor bug Kenny Levinsen (1): render/vulkan: Handle multi-descriptor sets Simon Ser (6): render/egl: fix software rendering check output/cursor: fix missing second cursor scene/surface: simplify single-pixel-buffer check in surface_reconfigure() scene/surface: fix NULL deref when source buffer is destroyed cursor: use source buffer to signal release timeline point build: bump version to 0.19.1 Simon Zeni (1): drm-lease-v1: remove connector active_lease & lease connectors liupeng (2): cursor: update output cursor even if output is disabled drm_lease_v1: initialize device resource link during abnormal exit tokyo4j (1): backend/libinput: don't leak udev_device -
0.19.0
13a62a23 · ·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 -
0.19.0-rc3
156d47c8 · ·wlroots 0.19.0-rc3 Isaac Freund (3): xdg-activation: make wl_global public tablet-v2: cleanup focused surface on tool destroy presentation-time: make version a uint32_t Simon Ser (2): Revert "xwayland: Reset signal mask and handlers before exec" build: bump version to 0.19.0-rc3 YaoBing Xiao (1): backend/drm: rename conn_name to conn_type_name for clarity tokyo4j (2): Revert "wlr_keyboard: don't emit key event for duplicated keycodes" wlr_keyboard_group: fix leak of wlr_keyboard_group->keys -
0.19.0-rc2
b9d3ee9a · ·wlroots 0.19.0-rc2 Kenny Levinsen (2): compositor: Clean up surface current_outputs last scene: Fix scanout log to respect SCANOUT_SUCCESS Kirill Primak (4): 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 M Stoeckl (1): color-management-v1: implement surface_feedback_v1::get_preferred_parametric Philipp Kaeser (1): output_layout: Fixes docstring for wlr_output_layout_add[_auto]. Simon Ser (1): build: bump version to 0.19.0-rc2 YaoBing Xiao (1): backend/drm: add DRM object and property IDs to error Yixue Wang (1): wlr_client_buffer: add get_shm implementation -
0.19.0-rc1
7161bcfa · ·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 -
0.18.2
cda69b69 · ·wlroots 0.18.2 Consolatis (2): dnd: ensure internal dnd handlers are unlinked on xwm_destroy() xwayland: fix xdg->xwayland drag-and-drop Isaac Freund (1): backend/headless: actually perform output test Kenny Levinsen (1): backend/wayland: Account for shm buffer offset Simon Ser (9): backend/drm: check whether clipped damage is empty output-management-v1: only create custom mode object for enabled heads backend/drm: check buffer format for multi-GPU backend/drm: fix drmModePageFlip() when disabling CRTC on legacy uAPI 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 build: bump version to 0.18.2 tokyo4j (1): wlr_keyboard: don't emit key event for duplicated keycodes -
0.18.1
5bc39071 · ·wlroots 0.18.1 Alexander Orzechowski (6): wlr_scene: Force blend mode to PREMULTIPLIED if calculate visibility is disabled 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 Bill Li (1): ci: use package x11-servers/xwayland instead of x11-servers/xwayland-devel Consolatis (1): ext-foreign-toplevel-list: use correct interface and add missing handler Dudemanguy (1): backend/drm: fix a use-after-free Isaac Freund (3): 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 Kirill Primak (7): output-power-management: send zwlr_output_power_v1.failed on output destroy xdg-popup: don't set a role resource destroy handler pointer-constraints: don't init/finish current/pending states linux-drm-syncobj: add missing decls in the header backend/wayland: process initial events from globals correctly scene: update output geom on commit after dropping pending damage scene: resize damage ring on geometry update Leonardo Hernández Hernández (1): linux-drm-syncobj-v1: actually use the requested version Simon Ser (3): backend/drm: use CRTCs in-order render/vulkan: use non-coherent memory for read_pixels() build: bump version to 0.18.1 chenyongxing (1): render/vulkan: Fix draw rect clip region invalid in blend none mod project-repo (2): Fix memory leak in drm.c Fix memory leak in xwayland.c zhoulei (1): xwayland/xwm: listen shell destroy signal -
0.18.0
4666996b · ·wlroots 0.18.0 Alexander Orzechowski (54): output: Drop transform matrix render/gles2: Don't track has_alpha in pixel_format renderer: Drop wlr_renderer_begin output: Drop wlr_output_attach_render output: Drop back_buffer render: Drop rendering_with_buffer render/gles2: Lazily create buffer fbo renderer/gles2: Bail rendering to external buffers when binding them render/gles2: Destroy textures first render/gles2: Don't double import dmabuf render/gles2: Don't track image in texture render/gles2: Don't attach texture as buffer addon render/gles2: Inline texture invalidation wlr_texture: Introduce wlr_texture_read_pixels wlr_texture: Introduce wlr_texture_read_pixels_options helpers render/pixman: Implement texture_read_pixels render/gles2: Implement texture_read_pixels render/vulkan: Implement texture_read_pixels wlr_texture: Introduce wlr_texture_preferred_read_format render: Implement texture_preferred_read_format backend/x11: Use wlr_texture_read_pixels screencopy_v1: Use new read pixels API render: Nuke old read pixels API renderer: Drop buffer binding swapchain: Add wlr_swapchain_has_buffer wlr_scene: Track output damage separately wlr_scene: Use wlr_damage_ring_rotate_buffer() wlr_scene: Don't damage whole damage ring when exiting direct scanout wlr_scene: Apply output damage once wlr_scene: fix transformed outputs backend damage clearing wlr_damage_ring: Fix inverted conditional output: Drop pending state wlr_damage_ring: Replace wlr_damage_ring_rotate_buffer with original list impl backend/drm: Init connector after we try to allocate a crtc for it backend/drm: Remove dead code backend/drm: Ensure a primary fb is available when configuring an output wlr_scene: Call surface enter scale events on surface create wlr_scene: Assert that buffer returned from swapchain is the right size wlr_scene: Decide when to commit output damage with buffers in damage ring wlr_scene: Add support for custom swapchains wlr_scene: Fix crash when committing NULL buffer wlr_scene: Track damage of null textures screencopy: Remove dead code screencopy: Add some logging wlr_scene: Fix WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT output damage wlr_scene: Schedule new frame for WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT in output commit handler wlr_scene: Set `wlr_damage_ring_set_bounds` earlier wlr_scene: Add WLR_SCENE_HIGHLIGHT_TRANSPARENT_REGION env docs: Add notes about WLR_SCENE_DISABLE_VISIBILITY effectively disabling direct scanout. wlr_scene: send preferred buffer transform wlr_scene: Drop map/unmap listeners from xdg_shell wlr_scene: Drop map/unmap listeners from drag_icon wlr_scene: Drop map/unmap listeners from layer_shell_v1 wlr_scene: Don't disable scene nodes at creation time Andri Yngvason (1): Create & implement transient seat protocol Austin Shafer (2): allocator: remove backend parameter in allocator_autocreate_with_drm_fd linux_dmabuf_v1: allow callbacks for checking dmabuf import Biswapriyo Nath (1): render/vulkan: Fix clang compiler error in 32 bit ARM Android Chloé Vulquin (1): xcursor: catch theme inheritance loops Consolatis (2): scene: do not reset scene_buffer state on buffer release xwayland: remove saved_{width,height} David Turner (6): render/pixman: fix flipped transforms render/pixman: Fix source crop render/pixman: Improve transform performance render/pixman: half-pixel shift to match GPUs render/pixman: Remove half-pixel shift render/pixman: Fix non-uniform scale with rotation Félix Poisot (1): render/vulkan: correct sRBG gamma expansion in shader Grigory Kirillov (1): xwayland: add support for _NET_WM_WINDOW_TYPE_DESKTOP atom Guido Günther (2): input-method: Simplify resetting of input state gles2: Avoid crash when glGetInteger64vEXT is missing He Yong (1): tinywl: destroy wlr_renderer, wlr_allocator and wlr_cursor Ian Forbes (1): drm/backend: add support for cursor hotspots Ilia Bozhinov (2): seat: add serials to touch up events xwayland: add a size-safe wrapper for xcb_send_event Isaac Freund (14): keyboard: fix type of wlr_keyboard_modifiers.group input-device: unconfuse tablet naming wlr_tablet_v2: fix destroy listener name mailmap: map Isaac's old email to the new one cursor-shape-v1: expose tablet tool in event tablet_v2: destroy tablet seats on manager destroy wlr_shm: make wl_global public idle-notify: make wl_global public single-pixel-buffer: make wl_global public security-context: constify lookup_client() scene: constify subsurface_tree_set_clip() touch: make cancel functions take a wlr_seat_client scene: ensure layer surface usable area >0 wlr_surface: update get_root_surface() docs JiDe Zhang (1): output: reset hardware_cursor on failure John Lindgren (4): xwayland: add map_request signal util: fix non-linear behavior of wlr_box_closest_point() vulkan: perform sRGB-to-linear conversion correctly for premultiplied values util: let wlr_box_closest_point() be within 1/65536 of right/bottom edge Kenny Levinsen (22): backend/drm: Free current_modeinfo on error backend/drm: Remove erroneous free drm-lease-v1: Free the wlr_drm_lease_v1 on error xwayland/xwm: Avoid zero-size allocaiton xwayland/xwm: Allocate to the right variable render/drm_format_set: Clean up on union failure render/vulkan: Avoid double-free on calloc error gamma-control-v1: Remove dead variable assignment xwayland/xwm: Initialize client_id_cookie wlr_gamma_control: Store gamma size when creating control backend/drm: Skip multi-gpu outputs in backend tests backend/drm: Free drm device name on error wlr_scene: Skip direct scanout on color transform editorconfig: Unset maximum line length for .git wlr_output: Add adaptive_sync_supported backend/drm: Use cached vrr support flag render/vulkan: Recycle memory maps for stage spans render/vulkan: Unmap span before freeing memory render/vulkan: Use new span map handling for 3dlut render/vulkan: Unref color transform on pass submit render/vulkan: Fix 3dlut stage span map offset render/vulkan: vkMapMemory stage spans up front Kirill Primak (63): input-inhibitor: drop xdg-{shell,decoration}: improve events layer-shell: emit new_surface event at the proper time subcompositor: don't map unadded subsurfaces subcompositor: emit new_subsurface immediately output: fix display destroy listener double removal compositor: deprecate wlr/types/wlr_region.h Revert "subcompositor: emit new_subsurface immediately" backend/x11: check buffer format in output_test() backend/x11: don't send ConfigureRequest with the same size xwm: don't do anything except mapping on MapRequest tinywl: don't send configures to uninitialized xdg_surfaces tinywl: check initialized instead of initial_commit tinywl: depend on the server xdg-shell header render/vulkan: fix possible double free render/drm_format_set: fix possible leak on realloc error backend/x11: handle touchpoint allocation failure xwayland: close pipe fds on set_cloexec() error security-context-v1: fix possible leaks on wl_client_create() and state copying errors single-pixel-buffer: send wl_buffer.release layer-shell: forbid set_size with values ≥INT32_MAX xwayland/xwm: associate even on xcb_get_property() failure compositor: introduce wlr_surface_reject_pending() compositor: don't get buffer from pending buffer resource too early backend/drm: use wlr_drm_backend.name for fd cloning cursor: fix and simplify region mapping compositor: drop wlr_surface.external_damage compositor: don't handle size or viewport src change in surface_update_damage() xdg-shell: drop automatic surface configuration pointer-constraints: handle inert pointer resources correctly ext-foreign-toplevel-list-v1: improve/fix update_state() backend/drm: set adaptive_sync_status again viewporter: fix "has buffer" check viewporter: fix outdated docs Avoid using wayland-{client,server}.h alpha-modifier-v1: add a missing NULL check in wlr_alpha_modifier_v1_get_surface_state() scene: fix double scaling of opaque region for blend mode optimization xdg-toplevel: allow edge_none for resizing output: extract hardware cursor disabling logic output: disable hardware cursor when falling back to software render/vulkan: fix texture clip region leak render/vulkan: free pipeline layouts on destroy render/vulkan: free render format setups on destroy render/vulkan: don't free a descriptor set from an already destroyed lut3d dummy pool backend/x11: send correct keyboard layout fullscreen-shell: deprecate backend/drm: add libliftoff log handler backend/drm: avoid "maybe uninitialized" warning backend/wayland: store output xdg_toplevel title backend/wayland: don't request a state too early backend/wayland: don't ack a configure event too early backend/wayland: commit null buffer only on unmap backend/wayland: improve/fix xdg_toplevel (re-)initialization backend/wayland: don't ack outdated configures xdg-popup: don't emit parent's new_popup signal too early xdg-popup: validate positioner on reposition request input-method: unmap popup surfaces on deactivate backend/wayland: dispatch remote display when waiting for a configure event backend/wayland: destroy ignored tablet proxies backend/drm: store drm prop lists as structs backend/wayland: introduce wlr_wl_output_set_app_id() Fix __VA_OPT__ macro invocations meson: bump wayland dep version to 1.23 Leo Li (2): render/pixel-format: Move has_alpha into it's own array render/gles2: Fixup dropping has_alpha from pixel_format Leonardo Hernández Hernández (4): add an option to enable/disable libliftoff tinywl: don't try to remove xdg-shell-protocol.c tinywl: split compilation into two steps tinywl: allow specify pkg-config binary Manuel Stoeckl (13): xdg-toplevel: check that title provided actually is UTF-8 render/vulkan: track and use _UNORM variants of _SRGB formats render/vulkan: extract shm texture format query into function render/vulkan: detect which _UNORM formats support _SRGB views render/vulkan: create VkImage with option for _SRGB view, if possible render/vulkan: constify vulkan_format_props_find_modifier render/vulkan: use _SRGB image view when possible render/vulkan: add dummy 3d lookup table to output shader render/vulkan: add lut3d output shader option render/vulkan: create plain framebuffers on demand render/vulkan: add support for output color transforms wlr_scene: add color transform argument for rendering renderer: add field to indicate color transform support MaxVerevkin (1): fix outdated comment in wlr_output.h Paul Cercueil (1): Add more POSIX compliance macros to fix uClibc support Roman Gilg (1): render/pixman: add wlr_pixman_renderer_get_buffer_image() Sarunas Valaskevicius (1): Fix disappearing menus in QT apps Sergei Trofimovich (1): backend: fix build against upcoming `gcc-14` (`-Werror=calloc-transposed-args`) Simon Ser (213): tinywl: fix wlroots dependency constraint in Makefile build: bump version to 0.18.0-dev render: drop legacy render pass output/cursor: drop legacy rendering API render/gles2: drop legacy rendering API render/pixman: drop legacy rendering API render/vulkan: drop legacy rendering API render: drop legacy rendering API util/transform: move over wl_output_transform helpers util/transform: add wlr_output_transform_coords() backend/session: take wl_event_loop instead of wl_display output-layout: take wl_display in constructor output: take wl_display in wlr_output_create_global() output: setup display destroy listener in wlr_output_create_global() output: take wl_event_loop in wlr_output_init() Cleanup wlr_matrix.h includes matrix: deprecate viewporter: rename state var in viewport_handle_surface_commit() viewporter: listen to client_commit viewporter: fix src buffer bounds check render/vulkan: drop current_command_buffer render/egl: fallback to GBM FD if EGLDevice is not available backend/drm: use DRM_IOCTL_MODE_CLOSEFB instead of RMFB render/gles2: check external-only flag in get_or_create_buffer() damage_ring: add wlr_damage_ring_rotate_buffer() backend/drm: split wlr_drm_fb related functions into separate file backend/drm: move drm_plane_finish_surface() to drm.c backend/drm: remove wlr_drm_renderer.backend render/gles2: reword wlr_gles2_texture comments output: drop stale references to wlr_output_attach_render() render/gles2: document EGL context gotchas render/gles2: save/restore context when creating/submitting a render pass output: replace wlr_render_timer arg with wlr_buffer_pass_options render: disable linux-dmabuf without DRM FD cursor: send surface scale events compositor: drop surface precommit event render/gles2: add wlr_gles2_renderer_get_buffer_fbo() build: automatically compute soversion ci: drop stale dependencies backend/drm: add wlr_drm_backend_get_parent() linux-dmabuf-v1: ignore scanout output for secondary DRM backends backend/drm: return secondary backend DRM FD cursor: fix initial cursor position for new outputs cursor: drop unnecessary commented code xcursor: fix duplicate cursor check check in load_callback() input-method-v2: drop unnecessary variable and cast output-layout: fix missing global for outputs with a custom mode compositor: reset wlr_surface.current.committed on commit pointer-constraints-v1: add cursor_hint.enabled pointer-constraints-v1: reset committed on commit compositor: adjust surface_state_move() comment compositor: remove unnecessary wlr_surface.has_buffer compositor: fix wlr_surface_has_buffer() doc comment compositor: add wlr_surface_state_has_buffer() compositor: add wlr_surface_synced compositor: add wlr_surface_role.client_commit xdg-shell: use wlr_surface_synced for wlr_xdg_surface xdg-shell: use wlr_surface_synced for toplevel xdg-shell: use wlr_surface_synced for popups presentation-time: use wlr_surface_synced subcompositor: use wlr_surface_synced xdg-decoration: use wlr_surface_synced for toplevel layer-shell-v1: use wlr_surface_synced pointer-constraints-v1: use wlr_surface_synced content-type-v1: use wlr_surface_synced session-lock-v1: drop negative buffer size checks session-lock-v1: use wlr_surface_synced tearing-control-v1: synchronize state with surface presentation-time: drop wlr_presentation arg scene: drop wlr_scene_set_presentation() backend/drm: save current refresh rate region: add docs for wlr_region_scale_xy() and wlr_region_confine() wl_drm: add deprecation notice render: stop auto-creating wl_drm Fix bool return types xdg-shell: assert that configure events carry positive or zero sizes pointer: add support for axis relative direction seat/pointer: add support for axis_relative_direction event backend/libinput: populate pointer axis relative direction backend/wayland: populate pointer axis relative direction backend/multi: emit destroy signal before destroying child backends backend: make attempt_drm_backend() return the primary backend backend: destroy multi backend when primary backend is backend: stop calling wl_display_terminate() backend/headless: take wl_event_loop instead of wl_display backend/libinput: drop wl_display argument backend/wayland: take wl_event_loop instead of wl_display backend/x11: take wl_event_loop instead of wl_display backend/drm: drop wl_display argument backend/multi: take wl_event_loop instead of wl_display backend: take wl_event_loop instead of wl_display in wlr_backend_autocreate() scene: release shm buffers once uploaded backend/drm: add support for atomic tearing page-flips linux-dmabuf-v1: fix include guard name linux-dmabuf-v1: switch to stable linux-dmabuf-v1: bump to v5 backend/session: add docs switch: add docs backend/drm: drop unnecessary _XOPEN_SOURCE backend/drm: fix fb_damage_clips_arr memory leak backend/drm: add drm_page_flip_create() backend/drm: drop wlr_drm_backend arg from create_mode_blob() backend/drm: add destroy_blob() backend/drm: use early return in handle_session_active() backend/drm: extract logic to build current connector state backend/drm: call get_drm_connector_props() when creating connector backend/drm: atomically reset state after VT switch backend/drm: move restore logic to drm.c backend/drm: fix typo in restore_drm_device() comment backend/drm: skip reset after VT switch if possible util/log: drop unnecessary _XOPEN_SOURCE Define _POSIX_C_SOURCE globally scene: ignore duplicate wlr_scene_output_layout_add_output() calls buffer: add single-pixel-buffer-v1 special case in buffer_is_opaque() backend/drm: fix broken link to KMS property docs backend/drm: don't destroy previous DRM master blobs render/egl: add save_context parameter to wlr_egl_make_current() render/egl: drop wlr_egl_save_context() render/egl: drop wlr_egl_is_current() backend/drm: use output_pending_enabled() output: use output_pending_enabled() in output_basic_test() backend/drm: fix primary FB check backend/drm: move primary FB check after pending buffer logic backend/drm: improve CRTC reallocation pretty printing backend/drm: use CRTC pointers instead of indices in realloc_crtcs() input-device: add doc comments pointer: drop enum wlr_axis_source pointer: use enum wl_pointer_button_state pointer: drop enum wlr_axis_relative_direction pointer: drop enum wlr_axis_orientation backend/libinput: use NULL to indicate missing device name tablet-v2: only send id event is vendor is set input-device: fix WLR_INPUT_DEVICE_TABLET_TOOL doc comment cursor: use switch for input device type backend/x11: add error logging to query_dri3_drm_fd() backend/drm: fix queued cursor FB overwritten with NULL backend/drm: clear pending cursor FB in drm_connector_set_cursor() backend/drm: add drm_fb_copy() backend/drm: track cursor FB in wlr_drm_connector_state tinywl: fix wlr_seat use-after-free on exit backend/drm: ensure CRTC is set up in drm_connector_state_init() cursor-shape-v1: handle inert tablet tool client tablet-tool: add usb_vendor_id and usb_product_id to wlr_tablet tablet-v2: use wlr_tablet.usb_{vendor,product}_id input-device: drop wlr_input_device.{vendor,product} backend/libinput: check bus type before setting tablet USB IDs scene: simplify scene_node_update() condition when setting buffer compositor: handle renderer destroy compositor: use compositor to get renderer compositor: add wlr_compositor_set_renderer() buffer: listen to renderer destroy in wlr_client_buffer output: listen to renderer destroy in wlr_output_cursor scene: add scene_buffer_set_texture() scene: listen to renderer destroy in wlr_scene_buffer backend/drm: add wlr_drm_connector_state.connector backend/drm: extract post-commit logic into functions backend/drm: drop VRR debug message backend/drm: track pending atomic state in wlr_drm_connector_state backend/drm: add infrastructure for device-wide commits backend/drm: rework struct wlr_drm_page_flip for multiple connectors backend: add wlr_backend_{test,commit}() backend/multi: implement wlr_backend_impl.{test,commit} output-management-v1: add wlr_output_configuration_v1_build_state() backend/drm: unify connector test and commit codepaths backend/drm: drop drm_device_state_init_single() backend/drm: move post-commit disable logic to drm_connector_apply_commit() backend/drm: add drm_connector_prepare() backend/drm: fix adaptive sync no-op changes backend/drm: implement wlr_backend_impl.{test,commit} output-swapchain-manager: new helper backend/libinput: drop outdated gesture cap logging backend/libinput: drop stray space examples: send xdg_toplevel configure events tablet-tool: document event data xwayland: add a few docs render: unify getter for texture formats render: drop wlr_renderer_get_dmabuf_texture_formats() renderer: replace get_render_buffer_caps() with struct field render/color: introduce wlr_color_transform backend/drm: handle errors when fetching DRM name/version render/color: split off lcms2 code ci: convert last remnant from "meson setup" migration alpha-modifier-v1: new protocol implementation scene/surface: add support for alpha-modifier-v1 render/vulkan: don't use UNDEFINED layout for imported DMA-BUFs render/allocator: document struct wlr_allocator seat/keyboard: drop unnecessary check in handle_keyboard_keymap() build: override versioned name backend/drm: add support for libliftoff v0.5.0 render/color: add fallback stub when LCMS2 is disabled ci: add debugoptimized GCC build render/drm_syncobj: introduce wlr_drm_syncobj_timeline render/drm_syncobj: add wlr_drm_syncobj_timeline_import() render/drm_syncobj: add helpers to wait for timeline points linux-drm-syncobj-v1: new protocol implementation backend/session: log when loading WLR_DRM_DEVICES backend/session: use "KMS" instead of "DRM" in log messages build: check eglext.h header version Switch to stable tablet-v2 protocol render/color: fix return value type backend/drm: fix return value type in create_drm_connector() backend/drm: fix swapped calloc() arguments in get_or_create_layer() Use standard __VA_OPT__ instead of GNU's ##__VA_ARGS__ build: build with C23 if supported build: require libinput v1.19 shm: add support for wl_shm version 2 backend/wayland: use wl_shm.release if available render: init wl_shm version 2 build: use auto_features=disabled for libdrm subproject backend/drm: add support for SIZE_HINTS property ci: use tinywl built by Meson scene: only skip bottom-most black rects with fractional scaling build: bump version to 0.18.0 Simon Zeni (4): types/output: emit destroy event before destroying global xcursor/wlr_xcursor: properly clean xcursor in case of realloc failure in load_callback backend/libinput: avoid potential NULL access in wlr_libinput_get_device_handle backend/x11: don't exit on dri3 DRM FD query failure Vaxry (2): xwayland: add wlr_xwayland_get_xwm_connection types/text-input-v3: assert on invalid _leave() and _enter() calls Violet Purcell (2): Version pkgconfig, headers, and library for parallel installation tinywl: update for versioned pkg-config file columbarius (1): ext-foreign-toplevel-list-v1: new protocol implementation groveer (2): wlr_pointer_gestures_v1: init destroy signal wlr_pointer_gestures_v1: emit destroy signal in destroy function nerdopolis (1): backend/libinput: Fix call of handle_libinput_readable() when WLR_LIBINPUT_NO_DEVICES is set novenary (2): xwm: avoid restacking managed surfaces above OR surfaces xwm: ensure stack list only contains mapped managed surfaces pastel raschke (2): input-method-v2: free current strings on commit input-method-v2: validate commit serial -
0.17.4
a2d2c38a · ·wlroots 0.17.4 David Turner (2): render/pixman: Improve transform performance render/pixman: Fix non-uniform scale with rotation Isaac Freund (1): wlr_surface: update get_root_surface() docs JiDe Zhang (1): output: reset hardware_cursor on failure Kirill Primak (12): scene: fix double scaling of opaque region for blend mode optimization xdg-toplevel: allow edge_none for resizing output: extract hardware cursor disabling logic output: disable hardware cursor when falling back to software render/vulkan: fix texture clip region leak render/vulkan: free pipeline layouts on destroy render/vulkan: free render format setups on destroy backend/x11: send correct keyboard layout xdg-popup: don't emit parent's new_popup signal too early xdg-popup: validate positioner on reposition request input-method: unmap popup surfaces on deactivate backend/wayland: destroy ignored tablet proxies Simon Ser (3): backend/drm: add support for libliftoff v0.5.0 render/vulkan: don't use UNDEFINED layout for imported DMA-BUFs build: bump version to 0.17.4 groveer (2): wlr_pointer_gestures_v1: init destroy signal wlr_pointer_gestures_v1: emit destroy signal in destroy function nerdopolis (1): backend/libinput: Fix call of handle_libinput_readable() when WLR_LIBINPUT_NO_DEVICES is set -
0.17.3
bc73e507 · ·wlroots 0.17.3 Alexander Orzechowski (1): wlr_scene: Schedule new frame for WLR_SCENE_DEBUG_DAMAGE_HIGHLIGHT in output commit handler Biswapriyo Nath (1): render/vulkan: Fix clang compiler error in 32 bit ARM Android Chloé Vulquin (1): xcursor: catch theme inheritance loops David Turner (2): render/pixman: fix flipped transforms render/pixman: Fix source crop Guido Günther (1): gles2: Avoid crash when glGetInteger64vEXT is missing Ilia Bozhinov (1): xwayland: add a size-safe wrapper for xcb_send_event Isaac Freund (2): tablet_v2: destroy tablet seats on manager destroy scene: ensure layer surface usable area >0 John Lindgren (2): vulkan: perform sRGB-to-linear conversion correctly for premultiplied values util: fix non-linear behavior of wlr_box_closest_point() Kenny Levinsen (2): wlr_gamma_control: Store gamma size when creating control render/vulkan: Avoid double-free on calloc error Kirill Primak (1): viewporter: fix "has buffer" check Simon Ser (1): build: bump version to 0.17.3 -
0.17.2
6dce6ae2 · ·wlroots 0.17.2 Félix Poisot (1): render/vulkan: correct sRBG gamma expansion in shader Kirill Primak (6): tinywl: depend on the server xdg-shell header layer-shell: forbid set_size with values ≥INT32_MAX xwayland/xwm: associate even on xcb_get_property() failure backend/drm: use wlr_drm_backend.name for fd cloning cursor: fix and simplify region mapping pointer-constraints: handle inert pointer resources correctly MaxVerevkin (1): fix outdated comment in wlr_output.h Sarunas Valaskevicius (1): Fix disappearing menus in QT apps Sergei Trofimovich (1): backend: fix build against upcoming `gcc-14` (`-Werror=calloc-transposed-args`) Simon Ser (5): backend/drm: save current refresh rate backend/drm: fix fb_damage_clips_arr memory leak backend/drm: fix queued cursor FB overwritten with NULL cursor-shape-v1: handle inert tablet tool client build: bump version to 0.17.2 -
0.17.1
3f2aced8 · ·wlroots 0.17.1 Kirill Primak (2): backend/x11: don't send ConfigureRequest with the same size backend/x11: check buffer format in output_test() Simon Ser (12): tinywl: fix wlroots dependency constraint in Makefile viewporter: rename state var in viewport_handle_surface_commit() viewporter: listen to client_commit viewporter: fix src buffer bounds check render/egl: fallback to GBM FD if EGLDevice is not available render: disable linux-dmabuf without DRM FD cursor: send surface scale events cursor: fix initial cursor position for new outputs xcursor: fix duplicate cursor check check in load_callback() input-method-v2: drop unnecessary variable and cast output-layout: fix missing global for outputs with a custom mode build: bump vesion to 0.17.1 Simon Zeni (1): types/output: emit destroy event before destroying global pastel raschke (2): input-method-v2: free current strings on commit input-method-v2: validate commit serial -
0.17.0
767eedd3 · ·wlroots 0.17.0 Alexander Orzechowski (146): wlr_scene: Add drag icon helper output: Initialize request_state wlr_scene: Don't cull the entire output when entering direct scanout wlr_scene: Expand damage cull region with fractional scales wlr_texture: Expose owning renderer output_init_render: Allow re-initialization wlr_drm: Add missing wlr_buffer import addon: Add more logging addon: Remove extra newline from logging tinywl: Nuke view->{x, y} subcompositor: Clarify comment on subsurface mapped consideration subcompositor: Clean up subsurface_consider_map wlr_scene: Send intersecting list of scene outputs for outputs_update signal wlr_scene: Rename wlr_scene_surface_from_buffer wlr_scene: Cleanup header includes wlr_scene: Extract considering logic for direct scanout wlr_scene: Add dmabuf_feedback helper wlr_scene: Skip direct scanout if there is no damage output: Drop output_is_direct_scanout wlr_scene: Send presentation event before direct scanout output commit wlr_scene: Fix potential use-after-free in wlr_scene_buffer_set_buffer tinywl: Release everything before destroy linux_dmabuf_v1: Use wlr_drm_format_set_union drm_format_set: Mark as unstable wlr_compositer: Keep track if surface has committed a buffer before. wlr_compositor: Decide opacity from new has_buffer flag. drm_format_set_union: Require initialized dst and remove assert drm_format_set_intersect: Require initialized dst and remove assert wlr_cursor: Consider surface state when setting new cursor surface wlr_cursor: Don't multiply hotspot by scale^2 wlr_drm_format: Introduce drm_format_finish wlr_drm_format_set: Remove redundant text in comment for finish function wlr_drm_format: Make structure constant length wlr_drm_format: Don't take double pointer in wlr_drm_format_add wlr_drm_format: Change wlr_drm_format_create to init wlr_drm_format: Change wlr_drm_format_dup to copy wlr_drm_format: Rework wlr_drm_format_intersect wlr_drm_format_set: Store formats on array wlr_drm_format_set_intersect: Clear destination before trying to write to it output_pick_format: Fail if no format could be chosen wlr_{box, fbox}_equal: Handle NULL wlr_{box, fbox}_equal: Consider empty boxes NULL renderer/gles2: Interpret matrix as column major in shader renderer/gles2: Merge get_buffer and create_buffer renderer/gles2: Compute texture coordinates based off of vertex positions renderer/gles2: Implement render pass interface wlr_scene: Add documentation to wlr_scene_buffer_from_node wlr_scene: Make scene_tree_from_node public wlr_scene: Make scene_rect_from_node public wlr_scene: Introduce wlr_scene_buffer_set_opacity examples: Drop quads renderer: Don't pass NULL options render/gles2: Handle NULL timer wlr_seat_pointer: cursor surfaces are always mapped wlr_tablet_v2_tool: Tablet tool surfaces are always mapped output: introduce wlr_output_state_set_damage() scene: Don't rely on output current state during rendering scene: introduce wlr_scene_output_build_state() wlr_output_state: Consider buffer uninitialized if not committed wlr_output_state: Consider gamma_lut uninitialized if not committed wlr_scene: Don't use direct scanout if trying to commit a new render_format examples: Drop usage of wlr_output.pending tinywl: Drop usage of wlr_output.pending output: add documentation for wlr_output_state wlr_scene: Fix transforms with non 1 scale wlr_damage_ring_set_bounds: Ignore duplicate size requests wlr_scene: Reset damage ring bounds every frame wlr_scene: Clear damage ring on scale change wlr_scene: Clear damage ring on transform change render/vulkan: Dynamically handle pipeline creation for textures render/vulkan: Handle quad pipeline through generic pipeline path render/vulkan/pipeline_key: Add blending render/vulkan: Dynamically create pipeline layouts render/vulkan: Inline init_sampler render/vulkan: Dynamically create texture views output_state: Gamma lut should be freed only if committed renderer: Introduce wlr_scale_filter_mode pixman: Remove dead code render: Introduce wlr_render_texture_options.blend_mode backend/drm: Use texture blend_mode for multigpu blit render/vulkan: Initialize to fix compilation error wlr_scene: Introduce wlr_scene_buffer_set_filter_mode backend/drm: Fix typo render/vulkan: Don't compute texture.has_alpha until first... ...texture view is dynamically created output: Introduce wlr_output_state_copy() scene: Use wlr_output_state_copy for direct scanout path examples/tablet: Don't use new render API and old render API together wlr_scene: Add opaque region blend mode optimization backend/drm: Don't add pollute fixed modes list with custom modes backend/x11: Reject non 0 refresh rate mode sets backend/wayland: Reject non 0 refresh rate mode sets output: Set output mode during main commit wlr_scene_buffer: Publicize some state wlr_scene: Wrap render_list nodes in struct wlr_scene: Simplify direct scanout handling wlr_scene: Don't recompute node location during rendering wlr_scene: Fix buffer damage for output state wlr_scene: Fix damage tracking with non atomic opaque region configuration wlr_scene: Don't damage when setting opaque region screencopy_v1: Use new renderer API for gpu blit path screencopy_v1: Implement copy regions with gpu blit path renderer: Sanity check texture source bounds output: Extract common commit logic output: Add initialization state to wlr_output_init backend/x11: Use output state to set init custom mode backend/wayland: Use output state to set init custom mode backend/headless: Use output state to set init custom mode backend/drm: Move output variable up in connect_drm_connector backend/drm: Use output state to set init mode wlr_output: Make wlr_output_update_{custom,}_mode private output: Inline wlr_output_update_{custom,}_mode output: Schedule mode updates to happen with rest of output events wlr_output: Nuke wlr_output_update_enabled renderer/vulkan: Defer device lost signal until end of pass egl: Remove dead code egl: Don't assume display is owned when KHR_display_reference is unsupported wlr_output: Set current_mode during new custom mode backend/drm: Compute custom mode correctly output: Mutate frame_pending needs_frame when there is an explicit output commit render/pass: Introduce wlr_render_rect_options_get_box renderer: Use wlr_render_rect_options_get_box render/pass: Remove empty box early return cursor: Unset cursor image when there is not available xcursor theme cursor: Remove dead code cursor: Unset cursor if texture upload failed output_defer_present: Calloc right struct treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical renderer_autocreate_with_drm_fd: Ensure fd isn't bogus renderer: Don't crash when trying to fallback to pixman wlr_output: Add applied state to commit event output_event_commit: Remove committed and buffer scene_output_layout: Don't destroy output when output layout is destroyed scene/output_layout: Add assert for duplicate output insertion wlr_scene: Amend scene_buffer.point_accepts_input to take coordinate pointers wlr_scene_subsurface_tree: Addon to scene set_buffer_with_surface_state: Take whole surface struct wlr_scene_surface: Introduce scene_surface_set_clip wlr_scene: Introduce wlr_scene_subsurface_tree_set_clip wlr_scene: Update outputs when output scale/transform changes wlr_scene: Update outputs when primary output is changed wlr_scene: Update outputs if subpixel status changes backend/drm: Track page flips in list backend/drm: Destroy page flips on backend destroy screencopy: Define proper destination for dmabuf copy screencopy: Move frame bounds sanity check into common code screencopy: Use box size instead for shm copy Andri Yngvason (3): wlr_seat: Extract seat_client_create() function seat: Let client manage its own resources seat: Provide dummy resources for inert seats Austin Shafer (3): Add union function for format sets drm_plane_pick_render_format: return false if no format could be found dmabuf: Remove assumption that all mods are in fallback tranche Brett Ernst (6): vulkan: increase max stage size to support large buffers drm_format_set: fix realloc size add minimalist cairo example backend/wayland: log output test failure reasons backend/x11: log output test failure reasons renderer/vulkan: don't add two alphas together in blend func Brian J. Tarricone (1): Fix possible crash in server-decoration when surface destroyed Christopher Snowhill (1): xwayland: fix memory leak Clayton Craft (1): backend/drm: use panel_orientation if it is set Consolatis (2): xcursors: Alias existing cursor defaults to cursor-spec cursor names xdg-activation: accept pointer focus for new tokens Edgars Cīrulis (1): xcursor: Resolve warning in xcursor_build_theme_dir Eric Engestrom (1): render/egl: skip incompatible EGL devices Evyatar Stalinsky (1): util/log: fix buffer overflow Guido Günther (1): seat/pointer: Initialize low_res_value Isaac Freund (3): session-lock: send more protocol errors xdg-shell: improve validation of resize edges xdg-decoration: send missing protocol errors Jan Beich (1): vulkan: silence -Wint-conversion on 32-bit architectures JiDe Zhang (5): wlr_output_cursor: assert renderer isn't NULL wlr_output: update cursor when scale changed xwayland: fix double free wlr_xwayland_shell_v1 Fix output layers order error on wayland backend Remove unnecessary code Johan Malm (2): scene/layer_shell_v1.c: set exclusive zone correctly scene/layer_shell_v1.c: remove redundant comment John Lindgren (6): xwayland: Read and publish _NET_WM_STRUT_PARTIAL property xwayland: Send synthetic ConfigureNotify per ICCCM 4.1.5 wlr_gamma_control: add missing forward declarations wlr_scene: clarify wlr_scene_output ownership semantics xwayland: stop translating _NET_WM_STRUT_PARTIAL coordinates xwayland: add wlr_xwayland_set_workareas() Kenny Levinsen (6): addon: Allow NULL owner of addon wp-fractional-scale-v1: new protocol implementation scene: Add fractional scale handling gamma-control: Read ramps using pread output: allow_artifacts -> allow_reconfiguration backend/drm: Automatic non-blocking commits Kirill Primak (104): xwayland: fix wlr_xwayland_surface_from_wlr_surface() docs input-inhibitor: deprecate xdg-shell: send invalid_size errors Nuke deprecated include/wlr/types/wlr_surface.h scene: introduce wlr_scene_buffer.events.outputs_update scene: fix output damage expansion condition output-layout: fix function decl indentation output-layout: remove wlr_output_layout_output_state output-layout: improve API tinywl: handle wlr_output.events.request_state xdg-shell: use defunct_role_object error util/region: forbid "shrinking" a region with wlr_region_expand() xwayland/xwm: constify needles render/vulkan: remove NULL renderer check on texture destroy render/vulkan: always finish buffer addon on texture destroy util/addon: ensure the set is empty after finish xwayland/xwm: dissociate even if surface is NULL presentation-time: finish surface addon backend/x11: fix delta_discrete value output-layout: improve closest point for no outputs case xwayland/xwm: introduce wlr_xwayland_surface_try_from_wlr_surface() subcompositor: fix mapped parent check xwayland/shell: actually use wlr_xwayland_surface_v1.link layer-shell: forbid changing the existing popup parent tinywl: init server to zeros xwm: remove misleading comment xwm: make atom_map static xwm: emit new_surface/destroy on associate/dissociate xdg-shell: improve unmapping logic slightly subcompositor: simplify get_subsurface handler subcompositor: use bad_parent error compositor: use defunct_role_object error keyboard: use the new data in wlr_keyboard_set_keymap() util/box: simplify empty box case in wlr_box_intersection() util/box: always treat NULL boxes as empty util/box: transform empty boxes' origins Revert "xwm: emit new_surface/destroy on associate/dissociate" xwm: introduce associate/dissociate events compositor: introduce unified map logic subcompositor: use unified map logic xdg-shell: use unified map logic layer-shell: use unified map logic session-lock: use unified map logic input-method: use unified map logic drag: use unified map logic xwm: use unified map logic compositor: remove wlr_surface_role.precommit xwm: check for a buffer before mapping session-lock: remove unused wlr_session_lock_surface_v1.events.map session-lock: fix buffer check subcompositor: consider mapping on parent map compositor: notify subsurfaces about a commit in the rendering order compositor: unmap subsurfaces too on unmap Add some missing includes/declarations compositor: add a note about ignored input regions Clear input regions if they're ignored subcompositor: simplify subsurface_consider_map(), call on add cursor: fix applying hotspot offset drag: don't set icon's role_data subcompositor: set role_data with wlr_surface_set_role() compositor: improve role-specific documentation seat: remove a TODO comment about simulating keyboard events compositor: add wlr_surface_role.no_object compositor: fix wlr_surface_set_role() error messages compositor: introduce wlr_surface_set_role_object() compositor: don't call role unmap hook without an object fullscreen-shell: set surface role viewporter: check for an existing viewport subcompositor: don't remove inert role resource layer-shell: don't remove inert role resource session-lock: don't remove inert role resource xwayland-shell: don't remove inert role resource input-method-v2: don't remove inert role resource xdg-shell: update stale docs data-device: remove undefined grab interface decls xwayland/shell: don't listen to wlr_surface.events.destroy Unmap wlr_surface before making its role object inert compositor: add "mapped" flag doc xdg-shell: don't return anything from create_xdg_surface() Don't assume xdg_surface.{toplevel,popup} is non-NULL xdg-popup: avoid using wlr_surface_destroy_role_object() xdg-shell: rework roles Unify signal data docs xdg-popup: validate parent xdg-surface: assert that xdg_surface isn't inert xdg-surface: fix init state flow docs: replace the less commonly used "::" with "." seat: remove wlr_seat_validate_grab_serial() scene-output-layout: assert lo->output == so->output util/addon: make wlr_addon_set_finish() safer layer-shell: check for NULL in wlr_layer_surface_v1_destroy() xdg-shell: fix wlr_xdg_popup_destroy() docs Drop wl_client and user data assertions in bind handlers layer-shell: check the configured flag earlier compositor: add wlr_surface.unmap_commit layer-shell: don't use wlr_surface_role.unmap hook layer-shell: track surface init state xdg-shell: use wlr_surface.unmap_commit xdg-toplevel: don't send maximized if tiled is requested but not supported tinywl: fix xdg_toplevel_destroy() docs tinywl: don't use "I"/"my" in docs Add missing type declarations in headers xcursor: fix NULL deref on malloc() fail xcursor: don't store NULL xcursors Leo Li (1): wlr_scene: Use cached node coordinates where possible Leonardo Hernández Hernández (3): scene: send wl_surface.preferred_buffer_scale xdg-shell: add support for v6 xdg-decoration: store an xdg_toplevel instead of xdg_surface Manuel Stoeckl (13): render/vulkan: update shm texture data in one batch render/vulkan: add support for RGB565 texture format render/vulkan: align staging buffers for texture upload render/gles2: use byte-aligned rows for glReadPixels render/vulkan: increase next descriptor pool size render/vulkan: allow rendering to non-8-bit buffers screencopy-v1: fix logical->physical region transform render: ensure wlr_render_rect_options->box is nonempty render/vulkan: fix validation error with vkCmdBlitImage screencopy_v1: only bind, not render with, buffer in shm copy path util: add struct to track union of rectangles render/vulkan: constrain blend to output subpass to redrawn region render/vulkan: undo alpha premult for 8-bpc ARGB/ABGR Ronan Pigott (2): wlr_xdg_activation_v1: add new_token event scene: apply rounding when translating buffer damage Rose Hudson (14): examples/touch: fix incorrect event type backend/wayland: support touch cancel events examples/touch: support touch cancel events util: add timespec_to_nsec add render timer API render/gles2: implement timer API scene_output: optionally record and report timings export-dmabuf, screencopy: schedule_frame -> needs_frame output_layout: return wlr_output_layout_output when adding output scene_output_layout: make output adding explicit backend/drm: don't set frame_pending on modeset backend/drm: report !presented if session is inactive output: don't forbid multiple commits per frame output: defer fake present events until after commit Rouven Czerwinski (1): session-lock: add missing lock_surface_destroy Simon Ser (468): build: bump version to 0.17.0-dev render/vulkan: add helper to load command function pointer render/vulkan: switch to timeline semaphores render/vulkan: add a command buffer pool render/vulkan: use command buffer pool for stage render/vulkan: always wait for last stage to complete before rendering render/vulkan: wait for device to become idle in vulkan_destroy() render/vulkan: use initializer for VkBufferImageCopy backend/drm: ensure disconnected outputs are disabled after VT switch build: move udev dep to backend/ build: add subproject fallback for Pixman build: bump pixman version backend: remove const casts for pixman_region32_t util/region: constify render/texture: constify wlr_texture_update_from_buffer() buffer: constify wlr_client_buffer_apply_damage() damage-ring: constify wlr_damage_ring_add() output-damage: constify wlr_output_damage_add() output: constify damage APIs region: constify scene: constify region APIs layer-shell-v1: specify version in constructor backend/drm: log refresh rate in Hz backend/drm: log modesetting commits backend/drm: fix FPE when disabling output compositor: drop wlr_surface.{sx,sy} backend/drm: only request page-flip if active content-type-v1: new protocol implementation output: introduce request_state event backend/wayland: use request_state when toplevel is resized backend/x11: use request_state when window is resized content-type-v1: add version param to wlr_content_type_manager_v1_create() render: add docs for wlr_renderer render: make some wlr_renderer fields private render: allow wlr_renderer_impl.begin to fail render: make wlr_renderer_begin return a bool output: check wlr_renderer_begin return value scene: check wlr_renderer_begin return value render: add wlr_renderer.events.lost render/gles2: query glGetGraphicsResetStatusKHR render/egl: enable EGL_LOSE_CONTEXT_ON_RESET render/vulkan: detect device loss render/pixel_format: import pixel_format_info_check_stride() Introduce wlr_shm render: use wlr_shm in wlr_renderer_init_wl_shm() buffer: drop wlr_shm_client_buffer shm: allow accessing multiple shm mapping concurrently backend: return wlr_session in wlr_backend_autocreate() call backend: drop wlr_backend_get_session() backend: rename backend to multi in wlr_backend_autocreate() allocator/drm_dumb: use libdrm dumb buffer helpers output: call wlr_output_update_enabled() after commit backend/drm: don't damage output on CRTC change output: drop wlr_output_damage_whole() linux-dmabuf-v1: use resource interface wl-drm: use resource interface xwayland-shell-v1: new protocol implementation xwayland: add wlr_xwayland_shell_v1_set_client() xwayland: add wlr_xwayland_shell_v1_destroy() xwayland/server: add start signal xwayland/server: delay non-lazy startup xwayland/shell: add wlr_xwayland_shell_v1_surface_from_serial() xwayland/xwm: add support for xwayland-shell-v1 Relax 80 column limit render: stop pulling <wlr/backend.h> backend/session: drop unused <libudev.h> backend: stop pulling <wlr/backend/session.h> render/gles2, render/pixman: stop pulling <wlr/backend.h> backend/multi: stop pulling <wlr/backend/session.h> compsitor: document wlr_compositor_create() compositor: release current buffer after commit event compositor: make renderer optional shm: add create() function without a wlr_renderer backend/session: disable libseat examples for subproject by default backend: error out when missing DRM and libinput in wlr_backend_autocreate() util/time: use int64_t return value for get_current_time_msec() backend: use time helpers to implement timeouts backend/session: make optional scene: use wlr_output_state for direct scanout scene: set output damage during direct scan-out build: exclude <wlr/types/wlr_drm_lease_v1.h> without DRM backend render/vulkan: drop unused fields from wlr_vk_format_modifier_props render/vulkan: destroy textures after command buffer completes render/vulkan: release stage buffers after command buffer completes render/dmabuf: add dmabuf_import_sync_file render/vulkan: import semaphore to DMA-BUF instead of blocking linux-dmabuf-v1: add "_with_renderer" suffix to create() function linux-dmabuf-v1: add version arg to create() linux-dmabuf-v1: don't use wlr_renderer to sanity check DMA-BUFs linux-dmabuf-v1: don't use wlr_renderer to send legacy format list linux-dmabuf-v1: drop wlr_renderer field linux-dmabuf-v1: introduce wlr_linux_dmabuf_v1_create() scene: stop listening for output enable/mode events output-damage: stop listening for output mode events output-layout: stop listening for output mode events output: drop enable/mode events render/vulkan: drop "_format" in wlr_vk_format fields render/vulkan: explain format mapping with DRM render/pixel-format: add various new formats render/pixel-format: drop unnecessary fields in the table render/vulkan: add more 8 bits per channel formats render/vulkan: add more packed formats render/vulkan: add 64-bit UNORM and SFLOAT formats render/drm-format-set: add wlr_drm_format_set_copy() wl-drm: don't store wlr_renderer wl-drm: only advertise formats supporting implicit modifiers render/vulkan: extract DMA-BUF format query to separate function render/vulkan: simplify vulkan_format_props_query() render/vulkan: improve message on format prop error render/vulkan: check for barrier array alloc failure render/vulkan: make vulkan_format_props_find_modifier() return value const render/vulkan: make shm/dmabuf split clearer in wlr_vk_format_props render/vulkan: move VkDescriptorSetAllocateInfo down render/vulkan: fix missing pSignalSemaphores for stage CB render/vulkan: use initializers for VkImageMemoryBarrier render/vulkan: fix comma render/vulkan: fix vkCmdClearAttachments validation error render/vulkan: remove pre_cb in vulkan_end() render/vulkan: remove stage_cb conditional render/vulkan: use initializers for VkSubmitInfo compositor: document wlr_surface_{enter,leave,send_frame_done} xwayland/xwm: rename xwm_map_shell_surface() compositor: add wlr_surface.events.precommit xwayland/xwm: replace role with addon render/dmabuf: add dmabuf_export_sync_file() render/vulkan: wait for DMA-BUF fences render: simplify renderer_autocreate_with_drm_fd() util/env: add docs util/env: make env_parse_switch() return a size_t backend/wayland: ensure buffers are released on shutdown backend/x11: ensure buffers are released on shutdown build: use a configuration file for internal features xwayland: use internal_config xcursor: use internal_config render/allocator/gbm: use internal_config backend/libinput: use internal_config build: unify naming for HAVE_* defines backend/drm: fix VRR test backend/drm: simplify dealloc_crtc() commit backend/drm: stop using goto in set_plane_props() backend/drm: pass fb as arg in set_plane_props() backend/drm: use separate field to store pending cursor FB backend/drm: store pending FB in state xwayland: remove find_program() fallback when dep is not found xwayland: use HAVE_ prefix for xcb_xfixes_set_client_disconnect_mode render/pixman: skip mask for opaque texture rendering egl: consistently use EGLint for DMA-BUF format render/egl: stop advertising render support for external-only formats backend/drm: add drm_connector_status_str() backend/drm: print stringified connector status in realloc_crtcs() backend/drm: update wlr_drm_connnector.crtc in drm_connector_commit_state() backend/drm: clear pending cursor FB in drm_connector_commit_state() backend/drm: rename wlr_drm_backend.outputs to connectors backend/drm: refuse to switch CRTC for enabled connector backend/drm: prevent out-of-bounds array access on unknown subpixel backend/drm: drop unused arg in connector_get_current_mode() backend/drm: fetch fresh legacy CRTC in connector_get_current_mode() backend/drm: remove wlr_drm_crtc.legacy_crtc keyboard: improve documentation backend/drm: check return value of get_drm_{connector,crtc}_props() xwayland/xwm: assert that we're not overwriting when associating xwayland/xwm: remove unnecessary surface_id reset backend/x11: fix initial value of wlr_x11_buffer.n_busy tablet-tool: revert bitfield in enum wlr_tablet_tool_tip_state backend/drm: disable all CRTCs after VT switch render/vulkan: check that requested size is smaller than max tinywl: fix extra whitespace seat/keyboard: skip wl_array allocation seat/keyboard: constify wlr_seat_keyboard_send_modifiers() seat/keyboard: constify args in wlr_seat_keyboard_enter() seat/keyboard: constify wlr_seat_keyboard_notify_modifiers() seat/keyboard: constify wlr_seat_keyboard_notify_enter() backend/drm: set "max bpc" property based on pixel format xdg-shell: reset added/committed flag on unmap xdg-shell: remove unnecessary return xdg-shell: rename wlr_xdg_toplevel.added to sent_initial_configure xdg-shell: rename wlr_xdg_popup.committed to sent_initial_configure examples, tinywl: use "default" cursor instead of "left_ptr" examples: use NULL theme name instead of "default" xwayland/xwm: reset serial in xwayland_surface_dissociate() xdg-shell: convert to try_from input-method-v2: convert to try_from layer-shell-v1: convert to try_from ext-session-lock-v1: convert to try_from subcompositor: convert to try_from backend/wayland: don't cache next item when destroying buffers output: don't attach buffer on first commit if disabled backend/wayland: allow superseding a previous commit backend/wayland: update output mode after commit is done ci: install hwdata-dev on Alpine backend/drm: require hwdata pkg-config file backend/wayland: make destroy_wl_seats() handle a single seat backend/wayland: handle wl_registry.global_remove for wl_seat render/gles2: use correct type for shader type render/gles2: default to highp if available linux-dmabuf-v1: stop using const in feedback linux-dmabuf-v1: add basic helpers for feedback linux-dmabuf-v1: add wlr_linux_dmabuf_feedback_v1_init_with_options() linux-dmabuf-v1: use wlr_linux_dmabuf_feedback_v1_init_with_options() linux-dmabuf-v1: fix missing SCANOUT flag Switch IRC channel to #wlroots build: remove unnecessary pkgconfig arguments build: set pkgconfig URL build: enable subproject for libxkbcommon Add wlr_output_layer output: add wlr_output_set_layers() backend/wayland: implement output layers examples/output-layers: new example backend/drm: init wlr_drm_plane for all plane types backend/drm: add libliftoff interface backend/drm: add libliftoff composition layer backend/drm: add support for output layers output-layer: add feedback event backend/drm: send output layer feedback events linux-dmabuf-v1: add helper for output layer feedback events examples/output-layers: relay feedback events backend/drm: drop unnecessary pixman_region32_t casts screencopy-v1: drop unnecessary pixman_region32_t casts output: expose wlr_output_state_finish() output: expose wlr_output_state_set_buffer() backend/drm: drop wlr_drm_layer.pending_{width,height} backend/headless: unconditionally accept all output layers output-layer: document interactions with screen capture backend: create DRM backend monitor when WLR_BACKENDS is used backend: avoid adding NULL backend in attempt_backend_by_name() backend: disable DRM backend monitor when WLR_DRM_DEVICES is used render/swapchain: make public Switch to "meson setup" swapchain: remove allocator listener on destroy output: introduce wlr_output_configure_primary_swapchain() output: leverage wlr_output_configure_primary_swapchain() output: allow modeset with buffer while frame is pending backend: make wlr_backend_autocreate() fail when DRM is missing backend: move #ifdefs to nested functions examples/dmabuf-capture: fix frame_number deprecated in FFmpeg 6.0 render/vulkan: prefer render node for wlr_renderer_get_drm_fd() backend/drm: use libdisplay-info to parse EDID backend/drm: use libdisplay-info for CVT mode generation backend/wayland: destroy zwp_linux_buffer_params_v1 objects util/log: prefix WLR_REL_SRC_DIR with underscore backend/wayland: fix leak of some globals gamma-control-v1: fix handling of duplicate control gamma-control-v1: simplify get_gamma_control error handling output-layer: require all layers in wlr_output_state.layers backend/drm: log drm_connector_alloc_crtc() failures render/vulkan: avoid double-close on sync_file FD after semaphore import output-layer: cache current state backend/wayland: only re-order sub-surfaces when necessary backend/wayland: only update layer position when necessary backend/wayland: only unmap layers when necessary output-layer: add support for scaling buffers output: add wlr_output_is_direct_scanout_allowed() scene: check wlr_output_is_direct_scanout_allowed() output: drop direct scan-out check in output_basic_test() output-damage: drop xcursor: adjust style, use calloc() compositor: pass version in wlr_compositor_create compositor: add wlr_surface_set_preferred_buffer_scale() compositor: add wlr_surface_set_preferred_buffer_transform() xcursor: sync with libwayland render/vulkan: use full names for extension command fields render/vulkan: remove extra newline render/vulkan: use initializer in vulkan_change_layout_queue() render/vulkan: fix signedness of strcmp() return value output-layer: add cropping support Add a new renderer API render: add render pass helpers render/pass: add legacy render pass implementation output: add wlr_output_add_software_cursors_to_render_pass() scene: port to wlr_render_pass render/pixman: add begin_pixman_data_ptr_access() render/pixman: implement render pass API render/vulkan: use VK_KHR_synchronization2 render/pixman: fix scaling in render_pass_add_texture() render: introduce blend mode output/cursor: fix buffer size when nested and scaled render/vulkan: fix code style for function brackets xwayland: enable use of a xserver subproject render/vulkan: add support for NV12 output: add output_cursor_set_texture() cursor: add surface handling output: drop wlr_output_cursor_set_surface render/vulkan: improve logging when creating texture wlr-export-dmabuf-v1: handle output destroy render/vulkan: enable NV12 on big-endian render/vulkan: wait for idle queue before destroying render buffer seat/keyboard: allow no keymap keyboard: don't change current keymap on wlr_keyboard_set_keymap() error keyboard: add support for resetting the keymap linux-dmabuf-v1: fix wlr_drm_format_set leak in feedback_compile() render/pixel-format: add docs render/pixel-format: add support for block-based formats render/pixel-format: add YVYU and VYUY render/vulkan: drop unnecessary comments render/vulkan: fix YCbCr format check in vulkan_texture_from_pixels() render/vulkan: extract quad pipeline init to separate function render/vulkan: fix VkPipelineLayout when texturing NV12 render/vulkan: use identity swizzle for YCbCr formats render/vulkan: use VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE for default sampler render/vulkan: use same sampler params for RGBA and NV12 render/vulkan: introduce struct wlr_vk_pipeline_layout render/vulkan: add vulkan_get_pipeline_layout() render/vulkan: add init_{default,ycbcr}_pipeline_layout() render/vulkan: generalize YCbCr format support render/vulkan: check format support before creating YCbCr sampler render/vulkan: require support for linear filter for YCbCr render/vulkan: add more YCbCr formats render/vulkan: de-dup pipeline layout initialization render/egl: check for EGL_EXT_device_query in get_egl_device_from_drm_fd() render/vulkan: drop unused vulkan_change_layout_queue() render/vulkan: drop unused vulkan_has_extension() render/vulkan: document TEXTURE_TRANSFORM_* in shader output: use pending render format if any render/vulkan: add 10, 12, and 16-bit YCbCr formats render/vulkan: implement render pass API output: add wlr_output_begin_render_pass() backend/drm: use new rendering API examples: convert to new rendering API output/cursor: use new rendering API backend/drm: move forward decl up for drmModeModeInfo render/vulkan: handle vulkan_record_stage_cb() failures backend/drm: introduce wlr_drm_mode_get_info() render/vulkan: improve error handling in render_pass_submit() render/vulkan: improve error handling in vulkan_begin_render_pass() cursor: ignore wlr_cursor_set_surface() with same surface cursor: unset wlr_output_cursor.texture on surface destroy cursor: fix wl_pointer.set_cursor hotspot updates output/cursor: fix scale and transform backend/wayland: add scaling support for output layers backend/wayland: add support for cropping output layers examples/multi-pointer: drop presentation-time: constify wlr_presentation_feedback_send_presented() render/vulkan: rename tex_features to shm_tex_features render/vulkan: split off YCbCr texture features render/vulkan: de-duplicate texture VkImageView init render/vulkan: require format info for shm render/vulkan: fix bound pipeline check for output_pipe render/vulkan: fix blend subpass matrix render/vulkan: reset scissor before post-blend subpass gamma-control-v1: introduce set_gamma event gamma-control-v1: add wlr_gamma_control_manager_v1_get_control() output: add wlr_output_state_set_gamma_lut() gamma-control-v1: add wlr_gamma_control_v1_apply() gamma-control-v1: add wlr_gamma_control_v1_send_failed_and_destroy() gamma-control-v1: stop applying gamma LUTs implicitly render/vulkan: rename tex_usage to shm_tex_usage cursor: only reset the cursor when the surface changes backend/drm: clip FB damage examples/output-layers: fix layers not included in commit output: add wlr_output_state_set_layers() backend/libinput: ignore multiple events for same pointer button backend/libinput: use struct initializers for events examples: drop unnecessary include_directories build: drop proto_inc cursor: add wlr_cursor_set_xcursor() cursor: add wlr_cursor_unset_image() allocator: only use DRM auth if we are master output: attach buffer to state in output_ensure_buffer() output: stop using wlr_output.back_buffer in output_ensure_buffer() seat: fix keyboard/pointer/touch resource destroy output/swapchain: fix error return value types cursor: add support for animated XCursor xwayland: unset wlr_xwayland.server on destroy backend/drm: fix libliftoff_plane double-free input-method-v2: add popup_surface_from_resource() compositor: replace role_data with role_resource compositor: listen to role_resource destroy signal output: add wlr_output_state_init() backend/drm: remove duplicate needs_frame() in set_cursor() backend/wayland: unmap when output is disabled backend/x11: unmap when output is disabled backend/headless: only schedule a new frame if buffer was submitted backend/headless: add support for disabled outputs tinywl: enable new outputs examples: enable new outputs backend/wayland: mark new outputs as disabled backend/x11: leave new outputs disabled by default backend/headless: leave new outputs disabled by default contributing: add instructions for forking output-layer: add wlr_output_layer_state.damage backend/wayland: handle output layer damage backend/drm: handle output layer damage cursor: store wlr_cursor inline in wlr_cursor_state cursor: use wlr_cursor_unset_image() in wlr_cursor_set_surface() cursor: track surface globally, instead of per-output cursor: keep track of XCursor manager and name cursor: add cursor_update_outputs() cursor: set image for new outputs examples/pointer: use wlr_cursor_set_xcursor() cursor: stop using set_image() in wlr_cursor_unset_image() cursor: add wlr_cursor_set_buffer() xcursor-manager: drop wlr_xcursor_manager_set_cursor_image() cursor: remove wlr_cursor_set_image() cursor: remove usage of wlr_output_cursor_set_image() output: drop wlr_output_cursor_set_image() license: add copyright line for all contributors Use struct initializers instead of memset() xwayland: document associate/dissociate events xwayland: drop struct wlr_xwayland_move_event xwayland: document event data xwayland: use initializer for struct wlr_xwayland_resize_event xwayland: pass NULL as event data render/gles2: drop unnecessary cast Use wl_container_of() instead of casts render: constify struct wlr_buffer_pass_options render: document wlr_buffer_pass_options.timer render/gles2: wrap timer setup in push_gles2_debug() scene: rename output_present event to output_sample scene: add wlr_scene_output_sample_event presentation-time: add separate helper for zero-copy backend/drm: stop checking for wlr_client_buffer cursor, output: apply viewport to cursor cursor-shape-v1: new protocol implementation backend/drm: restore custom modes xwayland: avoid calling xwm_get_atom_name() when debug logs are off xwayland: drop wlr_xwayland_surface.events.set_pid Avoid using memcpy() to copy structs backend/wayland: take existing wl_display in wlr_wl_backend_create() backend/wayland: tag wl_surface backend/wayland: add wlr_wl_output_create_from_surface() examples/embedded: new example render: split render pass API into separate header backend/wayland: wait for xdg_surface.configure explicitly backend/headless: fix broken output frame events buffer: make wlr_client_buffer functions private compositor: drop wlr_surface_destroy_role_object() render: only open DRM render node if necessary output: trigger frame/present events on all commits on enabled output render/pass: ensure rect has positive size backend/drm: drop no-op shortcut tinywl: set minimum wlroots version in Makefile render/vulkan: de-duplicate VkImageUsageFlags backend/drm: restore pending page-flip check when tearing contributing: add safety section xdg-shell: document wlr_xdg_surface's initialized & initial_commit render/drm_format_set: use published kernel doc URL xwayland: batch property requests when handling new window xwayland: batch client ID request with other property requests render: log error when requested renderer is compile-time disabled render/allocator: log message when GBM is disabled Add GitLab issue template security-context-v1: new protocol implementation security-context-v1: add commit event docs: add architecture document xwayland/server: add ready flag xwayland: add wlr_xwayland_create_with_server() build: rename libdrm partial dep to be more explicit Revert "backend/drm: Automatic non-blocking commits" examples: split clients in separate repository render/vulkan: undo alpha premult before sRGB encoding/decoding examples: drop dead client code util/token: rename TOKEN_STRLEN to TOKEN_SIZE util/token: add docs backend: drop wlr_backend_get_presentation_clock() cursor: log missing XCursor xcursor: add fallbacks for legacy names ci: halt on UBSan error in smoke test xdg-shell: add wlr_xdg_{toplevel,popup}_try_from_wlr_surface() tinywl: fix crash when previously focused surface is not a toplevel tinywl: stop using the word "view" to refer to toplevels backend/drm: ensure plane surfaces are cleaned up on shutdown backend/drm: leave CRTCs on when shutting down backend/drm: introduce page-flip tracking struct backend/drm: fix pending page-flip check backend/drm: add wlr_drm_connector_state.nonblock backend/drm: drop unnecessary flags in legacy interface linux-dmabuf-v1: skip import check on split render/display SoCs build: bump version to 0.17.0 Simon Zeni (9): render/egl: fix uninitialized pointers in init_dmabuf_formats render/vulkan: remove hardcoded validation layers types/wlr_seat: finish keyboard_state during wlr_seat_destroy render/drm_format_set: fill dst in wlr_drm_format_set_copy Revert "render/egl: skip incompatible EGL devices" types/wlr_drm_lease_v1: downgrade DRM backend error message to debug types/wlr_tearing_control_v1: use safe list iteration on destroy drop KDE idle protocol support render/vulkan: remove unused queue_props in renderer Tobias Predel (2): wlr_drm_format_set_copy: Do not allocate heap backend_destroy: Similiar logic like DRM backend Vasyl Vavrychuk (1): fullscreen-shell: add release request handler Väinö Mäkelä (13): seat: Allow binding to inert seats data-device: Handle inert seats data-control: Handle inert seats tablet: Handle inert seats wlr_idle: Handle inert seats input-method: Handle inert seats keyboard-shortcuts-inhibit: Handle inert seats primary-selection: Handle inert seats text-input: Handle inert seats xdg-popup: Handle inert seats virtual-pointer: Handle inert seats virtual-keyboard: Handle inert seats wlr-output-management: Send custom modes to clients bi4k8 (2): wlr_seat: clear `drag->seat_client` when destroyed cursor: compare to scaled coords eri (4): buffer: convert to try_from References: wlroots/wlroots#884 drm: convert to try_from References: wlroots/wlroots#884 linux_dmabuf_v1: convert to try_from References: wlroots/wlroots#884 render/vulkan: use VK_KHR_global_priority References: #3386 fakechen (1): egl: remove eglQueryWaylandBufferWL define llyyr (1): render/vulkan: use correct source offset in read_pixels mfk530 (1): xwayland: fix user_event_handler novenary (1): xwayland: allow compositor to set withdrawn state ptrcnull (1): backend/x11: prevent segfault on empty DRI3 response q234rty (1): render/vulkan: use renamed glslang binary by default rewine (2): wlr_idle_inhibit_manager_v1: add comments for signal parameters wlr_output: add comments for signal parameters sunzhguy (2): wlr_cursor: update cursor when output enable and transform changed backend/drm: free fb later vaxerski (2): staging/tearing-control: Add protocol support backend/drm: Add async page flip support to legacy xiliuya (1): keyboard: only update LEDs when changed zccrs (2): render/vulkan: add wlr_vk_texture_has_alpha backend/wayland: fix undefined reference to wlr_wl_input_device_get_seat zhoulei (1): backend/drm: fix di_info memory leak -
0.16.2
0a32b5a7 · ·wlroots 0.16.2 Consolatis (2): xcursors: Alias existing cursor defaults to cursor-spec cursor names xdg-activation: accept pointer focus for new tokens Kirill Primak (2): xwayland/xwm: unpair even if surface is NULL backend/x11: fix delta_discrete value Simon Ser (11): backend/x11: fix initial value of wlr_x11_buffer.n_busy backend/drm: disable all CRTCs after VT switch render/vulkan: fix vkCmdClearAttachments validation error backend/drm: set "max bpc" property based on pixel format xdg-shell: reset added/committed flag on unmap backend/wayland: don't cache next item when destroying buffers output: don't attach buffer on first commit if disabled backend/wayland: allow superseding a previous commit backend/wayland: update output mode after commit is done render/gles2: default to highp if available build: bump version to 0.16.2 llyyr (1): render/vulkan: use correct source offset in read_pixels