-
0.18.04666996b · ·
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.4a2d2c38a · ·
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.3bc73e507 · ·
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.26dce6ae2 · ·
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.13f2aced8 · ·
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.0767eedd3 · ·
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.20a32b5a7 · ·
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
-
0.16.10911a41f · ·
wlroots 0.16.1 Alexander Orzechowski (2): wlr_scene: Expand damage cull region with fractional scales wlr_drm: Add missing wlr_buffer import Guido Günther (1): seat/pointer: Initialize low_res_value Johan Malm (2): scene/layer_shell_v1.c: set exclusive zone correctly scene/layer_shell_v1.c: remove redundant comment Kirill Primak (2): xwayland: fix wlr_xwayland_surface_from_wlr_surface() docs scene: fix output damage expansion condition Simon Ser (11): backend/drm: only request page-flip if active backend/drm: log refresh rate in Hz backend/drm: log modesetting commits backend/drm: fix FPE when disabling output Revert "compositor: enforce surface destruction order" backend: error out when missing DRM and libinput in wlr_backend_autocreate() build: exclude <wlr/types/wlr_drm_lease_v1.h> without DRM backend backend/wayland: ensure buffers are released on shutdown backend/x11: ensure buffers are released on shutdown backend/drm: fix VRR test build: bump version to 0.16.1 Simon Zeni (2): render/egl: fix uninitialized pointers in init_dmabuf_formats types/wlr_seat: finish keyboard_state during wlr_seat_destroy bi4k8 (2): wlr_seat: clear `drag->seat_client` when destroyed cursor: compare to scaled coords
-
0.16.01712a7d2 · ·
wlroots 0.16.0 Release highlights: - Support for the new ext-session-lock-v1, idle-notify-v1 and single-pixel-buffer-v1 protocols has been added. - The scene-graph API has many new features and optimizations. - CPU readback for Vulkan renderer is now implemented. The Vulkan renderer should be more stable. - The input device API has been reworked. - A new `wlr_damage_ring` helper supersedes wlr_output_damage without being as invasive. - Minor version 5 of xdg-shell has been implemented, adding support for popup repositioning, configure bounds and WM capabilities. - High-res scroll wheel events are now supported. - Minor version 4 of wlr_output_management-v1 has been implemented, adding support for managing adaptive sync (VRR). - Internal refactoring of the wl_surface and DRM backend code. Full commit history below. Alexander Orzechowski (84): scene_graph: use wlr_scene_output_send_frame_done scene_graph: remove unused outputs list scene_graph: Simplify computation for offset of new surfaces. This became possible after the usage of wlr_surface_send_frame_done. xdg-foreign: Fix crash on destroy of degenerate surface wlr_output_damage: Use wlr_output_damage_add for wlr_output_damage_add_box wlr_output_damage: Don't schedule a new frame if damage region does not intersect with output types/wlr_output: Handle subpixel hints through output commits seat: Don't finish wlr_keyboard if server was never started wlr_scene: Allow buffer in wlr_scene_buffer to be NULL wlr_scene: Add setter for buffer of a wlr_scene_buffer wlr_scene_output: Send output leave events before destroying the output wlr_scene: Add output_enter/output_leave signals wlr_scene: Fix missing calls to scene_node_update_outputs wlr_scene: Make wlr_scene_render_output private wlr_scene: Add presentation signal for wlr_scene_buffer wlr_scene: Add primary_output property to wlr_scene_buffer wlr_scene: Add frame_done signal for wlr_scene_buffer wlr_scene: Add a way to choose when input interactions happen on a buffer wlr_scene: Add a function to also specify damage when applying a buffer to wlr_scene_buffer wlr_scene: Make scene_buffer_from_node public wlr_scene: Pull scene_node_get_root into a private header wlr_scene: Change out surface specific iterator functions wlr_scene: Make presentation object public wlr_scene: Introduce addons to scene nodes wlr_scene: Refactor wlr_scene_surface to be a helper on top of wlr_scene_buffer wlr_scene: Parse out WLR_SCENE_DEBUG_DAMAGE wlr_scene: Hook up RERENDER logic wlr_scene: Hook up HIGHLIGHT logic wlr_scene: Refactor wlr_scene (the root element) to encase a wlr_scene_tree wlr_scene: Only allow parenting on a wlr_scene_tree wlr_scene: Inline wlr_scene_node_state wlr_scene: Move children list from wlr_scene_node to wlr_scene_tree wlr_scene_buffer: Call output enter/leave after primary_output calculation wlr_scene_buffer: Update primary_output on output destroy wlr_output_commit_state: Make sure to clear the back buffer dmabuf: Don't leak file descriptors on error path wlr_scene: Use direct assignment for damage indicator timestamps wlr_scene: Maintain damage highlight regions per output wlr_scene: Add option to disable direct scanout wlr_scene: Introduce scene_nodes_in_box wlr_scene: Damage scene on node destroy by disabling node wlr_scene: Add per scene node visibility wlr_scene: Rework damage handling wlr_scene_set_buffer_with_damage: Only damage the visible parts of the node wlr_scene: Only send frame done events for visible buffers wlr_scene: Don't render non visible parts of textures/rects wlr_scene: Rewrite direct scan out logic to rely on visibility wlr_scene: Introduce buffer opaque region metadata wlr_scene/surface: Hook through opaque metadata wlr_scene: Calculate output intersections based on node visibility wlr_scene: Account for occlusion by other scene nodes when calculating visibility wlr_scene: Remove unused typedef util/box: Introduce wlr_box_equal util/box: Introduce wlr_fbox_equal wlr_scene: Use wlr_fbox_equals wlr_scene: Use wlr_box_equal Use wl_signal_emit_mutable Remove wlr_signal_emit_safe wlr_scene: Simplify calculate_visibilty option wlr_scene: Only enable black rect optimization if culling is enabled wlr_scene: Cull background wlr_scene: Improve awkward code style util: Introduce env helpers Use env helpers wlr_scene: Initialize region32 before trying to use it wlr_compositor: Use wlr_fbox_equal wlr_scene: Only consider visible parts of the node when culling background wlr_scene: More sanity checking wlr_scene: Don't leak a region32 when texture failed to upload wlr_compositor: Don't leak region32 when calculating opaque region wlr_scene: Consider screen position when culling background wlr_scene: Clarify surface commit frame events pixel_format: RGBA4444 and RGBA5551 have alpha components wlr_scene: Be resilient against overflow conditions wlr_scene: Fix not updating the scene node when setting a new buffer wlr_scene: Ignore disabled outputs wlr_scene: Apply source box translation backend/drm/legacy: Fix whitespace wlr_scene: use wl_container_of() instead of casts wlr_scene: Destroy the texture when setting a new buffer. xwayland: Simplify net_wm_edges_to_wlr wlr_scene: Handle fractional scaling better wlr_scene: Fix texture reuse wlr_scene: Remove duplicate buffer check when submitting a new buffer Antonin Décimo (1): xcursor: check that XDG base directory path is absolute Bernardo Meurer (1): render/vulkan: fix memory type detection Consolatis (4): wlr_scene: Fix scaling with default source_box scene/output_layout: Fix crash in scene_output_layout_output_destroy wlr_virtual_pointer_v1: fix discrete scrolling screencopy-v1: make sure wlr_buffer enum is visible David96 (4): types/wlr_tablet_tool: remove name ambiguity render/vulkan: Implement vulkan_read_pixels render/vulkan: implement vulkan_preferred_read_format render/vulkan: add caching to vulkan_read_pixels Dean (1): Free drmDevice in get_egl_device_from_drm_fd() Dominique Martinet (2): Xwayland: rename notify pipe 'p' to notify_fd Xwayland: use -displayfd instead of USR1 Ferdinand Bachmann (3): types/wlr_pointer_gestures_v1: null-check both focused_surface and focused_client types/wlr_pointer_gestures_v1.c: get client from seat client instead of resource types/seat/wlr_seat.c: fix focused_client being null after seat_client recreation Gentaiii (1): Fixed false allocation failed Guido Günther (4): examples/input-method: Don't crash on NULL surrounding text layer-shell: Make wlr_layer_surface_v1_from_resource public xdg-activation: Deduplicate token creation code seat: Allow to cancel touches Isaac Freund (20): layer-shell: fix type of margins wlr_texture: remove wlr_texture_from_wl_drm() from header tinywl: fix check whether client is focused or not foreign-toplevel: send enter if needed on output bind xdg-output: remove dead code ext-session-lock-v1: new protocol implementation wlr_cursor: constify map to region box arguments wlr_switch: remove WLR_SWITCH_STATE_TOGGLE backend/drm: fix check for no-op commits backend/drm: fix NULL pointer deference due to typo output: fix leak of empty back buffer lock wlr_input_device: remove anon union field Document NULL return value of foo_from_wlr_surface() functions wlr-output-management: Implement version 3 release requests wlr-output-management: fix broken asserts output: clean up after modifierless test failure backend/wayland: report adaptive sync as enabled backend/x11: report adaptive sync as enabled output: remove unknown adaptive sync state wlr-output-management: implement adaptive sync Johan Malm (1): scene/layer_shell_v1.c: fix bug in width/height calculations Johannes (1): examples/egl_common: switch rgba format John Lindgren (6): Revert "Copy xcb_icccm structs into wlroots" wlr_drm_lease_v1: Fix use-after-free in backend_destroy() cursor: Add a more general check for infinite/NaN cursor position cursor: Don't warp to (0,0) when last output is disconnected backend/libinput: Fix SIGSEGV found in low-memory fuzzing render/vulkan: Fix type-punned pointer warning/error Joshua Ashton (1): xwayland: Add support for -force-xrandr-emulation José Expósito (8): build: bump Wayland to v1.21 build: check if libinput supports high-res scroll pointer: transform low-res to high-res axis events backend/libinput: handle high-res scroll events backend/libinput: code style consistency backend/wayland: handle high-res scroll events seat: support high-resolution clients seat: support low-resolution clients Keith Bowes (1): Fixed compiling with FFmpeg 5.0 Kenny Levinsen (8): scene: Add layer_shell_v1 helper meson: soversion arg should be string wlr_{keyboard,pointer,touch}: Update event docs Set mapped before firing map/unmap events xdg_shell: Destroy popups after unmap event scene/layer_shell: Ignore unmapped exclusion zone util/array: Add array_realloc for wl_array wlr_scene: Convert render_list to wl_array Kirill Chibisov (1): meson: use target_machine instead of host_machine Kirill Primak (103): scene/subsurface_tree: fix handling subsurface destruction subcompositor: split out from compositor surface: introduce events.client_commit surface: move impl to types/wlr_{sub,}compositor.c surface: move decl to wlr_{sub,}compositor.h surface: deprecate wlr_surface.h surface: improve role precommit hook compositor: damage the whole buffer on viewport src change subsurface: unlock cached state on commit if desynced output-layout: make wlr_output_layout_get_box() take a box as parameter output-layout: remove useless types/fields cursor: store mapped_box as value cursor: ensure mapping box is always initialized xdg-shell: rename surface role handlers xdg-shell: fix create_xdg_popup() param type xdg-toplevel: fix functions' main argument type xdg-popup: fix functions' main argument type xdg-shell: remove "xdg" from docs xdg-shell: unify function arguments' names xdg-toplevel: change parent type to xdg-toplevel xdg-toplevel: change object type in event structs xdg-shell: extract role-specific unmap logic xdg-shell: fix potential use-after-free xdg-popup: destroy popup-less grab xdg-surface: minor consistency renaming xdg-shell: drop wlr_xdg_toplevel_set_fullscreen_event xdg-toplevel: fix `requested` doc xdg-surface: avoid emitting signals with their owner object xdg-popup: send invalid_positioner to the right resource CONTRIBUTING.md: update construction/destruction functions' description xdg-{toplevel,popup}: extract destructors xdg-positioner: rename structs xdg-positioner: rewrite unconstraining, untie from xdg-popup xdg-positioner: fix sliding regression tinywl: don't generate xdg-shell-protocol.c tinywl: remove outdated non-feature from README.md xdg-toplevel: treat unmapped parents as NULL xdg-foreign-v1: treat unmapped parents as NULL xdg-foreign-v2: treat unmapped parents as NULL xdg-toplevel: don't schedule configures on state requests scene/output-layout: fix scene destroy handler backend/wayland/pointer: fix indentation backend/wayland: zero out finished input devices CONTRIBUTING.md: update init/finish description backend/wayland: reset active pointer on destroy examples/layer-shell: premultiply alpha xdg-toplevel: store states on the stack scene/output: check for NULL in destructor util/addon: avoid calling finish() twice xdg-popup: add proper configure flow xdg-popup: use current/pending state pattern xdg-positioner: add v3 parameters xdg-popup: add reposition support xdg-shell: bump version to 3 tinywl: use xdg-shell v3 scene/wlr_scene.h: fix indentation scene: add wlr_scene_output.events.destroy scene/output-layout: improve ownership logic scene/output-layout: add initial outputs xdg-shell: improve shell version check subcompositor: consider map on creation xdg-toplevel: post no memory on strdup() fail xdg-popup: use configure fields types: add wlr_damage_ring scene: switch to wlr_damage_ring scene: add missing output damage listener seat/pointer: rework sending axis events util/array: unclutter util/set: overhaul cursor: avoid uninitialized wlr_box fields output-layout: avoid uninitialized wlr_box fields output-layout: improve wlr_output_layout_output_in_direction() xdg-foreign-v1: s/unmap/destroy xdg-foreign-v2: s/unmap/destroy subcompositor: move+rename subsurface_parent_commit() subcompositor: consider mapping after adding xdg-toplevel: validate resize_edge foreign-toplevel-management: fix indentation output-damage: fix setting pending_attach_render output-damage: drop precommit listener output-damage: drop unused pending_attach_render output: add a swapchain NULL check in wlr_output_commit_state() tablet-v2: fix event parameters xdg-toplevel: send invalid_parent error scene: fix buffer source box transforming xdg-shell: fix geometry types compositor: introduce wlr_surface_destroy_role_object() layer-shell: use role object destroy handler subcompositor: use role object destroy handler session-lock: use role object destroy handler input-method: use role object destroy handler drag-icon: use role object destroy handler xdg-shell: use role object destroy handler xwayland/xwm: use role object destroy handler compositor: drop role object NULL checks in handlers compositor: enforce surface destruction order tinywl: handle view unmap while grabbed compositor: use the correct input region scene: fix output damage expansion render/pixman: apply source image cropping Revert "render/pixman: apply source image cropping" damage-ring: add missing headers output-damage: deprecate Leonardo Hernández Hernández (1): seat: take wlr_keyboard in wlr_seat_set_keyboard() Manuel Stoeckl (3): render/gles: add support for some 16-bpc unsigned shm formats screencopy-v1: Fix frame stride for formats with bpp != 32 render/gles2: simplify alpha depth check Mark Bolhuis (1): types/wlr_xdg_output_v1: Fix wl_output.done bug. Moon Sungjoon (1): xcursor: support XDG Base Directory Specification Quantum (1): seat/pointer: fix uninitialized variable warning Roman Gilg (2): output: clear buffer created for test render: allow texture creation while rendering Rouven Czerwinski (3): relative_pointer: handle inert pointer objects cursor: re-enable NULL buffer for cursor meson: update default options for libdrm Samuel Čavoj (1): Pass O_CLOEXEC to drmModeCreateLease calls Sebastian Krzyszkowiak (1): wlr_output_layout_contains_point: handle outputs that aren't in the layout Simon Ser (192): build: bump to version 0.16.0 build: bump soversion Remove wlr_box.h redirection build: simplify Meson subproject fallbacks backend: error out in autocreate without libinput support scene: schedule an output frame on wl_surface.frame readme: drop mention of the Sway project render/vulkan: log physical device driver name editorconfig: set max_line_length subcompositor: document subsurface_from_resource subcompositor: destroy subsurface with parent scene: try to import buffers as textures before rendering buffer: extract interface to separate header Revert "scene: try to import buffers as textures before rendering" util/addon: fix public include Zero-initialize structs in init functions Revert "backend/wayland: zero out finished input devices" drm-lease-v1: skip device on wlr_drm_backend_get_non_master_fd failure xwayland: add wlr_xwayland_server_options.terminate_delay xwayland: terminate when no client is connected backend/headless: allow variable refresh rate tinywl: don't crash when there is no keyboard backend/drm: fetch EDID manufacturer from udev_hwdb util/shm: clear mode permission bits in allocate_shm_file_pair xdg-shell: specify version in wlr_xdg_shell_create xwayland: use dict to collect supported features build: bump version to 0.16.0-dev backend/drm: allow non-linear modifiers for multi-GPU backend/drm: remove wlr_drm_surface.{width,height} contributing: add section about documentation conventions Reformat doc comments render/egl: drop MESA_EGL_NO_X11_HEADERS render/egl: add wlr_egl_get_{context,display} render/egl: make wlr_egl struct opaque render/egl: make wlr_egl_{make,unset,is}_current private render/egl: document wlr_egl_create_with_context backend/drm: fix crash in init_drm_surface output: turn make/model/serial into char * linux-dmabuf-v1: fix MOD_INVALID handling in feedback tranches backend/x11: fix output model strdup call docs/env_vars: fix case of WLR_SCENE_DEBUG_DAMAGE values gitignore: remove unnecessary entries, add subprojects/ output: pass wlr_output_state to backend output: pass wlr_output_state to output_pending_resolution output: pass wlr_output_state to rendering functions output: add wlr_output_test_state output: add wlr_output_event_precommit.state output: add output_state_{init,finish} output: add wlr_output_commit_state build: make GBM optional relative-pointer-v1: remove unnecessary comments relative-pointer-v1: remove unnecessary log messages relative-pointer-v1: don't allocate when inert backend/drm: improve atomic commit flag logging output: remove noop backend check in wlr_output_cursor_set_image output: introduce wlr_output_cursor_set_buffer output: re-implement set_image with set_buffer output: drop wlr_output_cursor.events.destroy compositor: send WL_SURFACE_ERROR_INVALID_SIZE for non-cursor surfaces xdg-shell: add support for v4 backend/drm: make commits without a buffer blocking backend/drm: short-circuit no-op commits examples/text-input: stop using strcpy/strcat examples/screencopy-dmabuf: stop using strncpy Remove remaining wl_signal_emit calls backend/drm: unconditionally set "content type" to graphics backend/drm: make serial optional output: fix make/model/serial memory leak util/global: fix memory leak on display destroy in wlr_global_destroy_safe output: add output state setters output: compare state before commit output: use state setters in wlr_output_set_* render/gles2: simplify flipped projection matrix: remove wlr_matrix_projection() gitignore: remove build dir entries render/texture: drop wlr_texture_is_opaque output-management-v1: add wlr_output_head_v1_state_apply() backend/drm: remove unused CRTC count check backend/drm: set "max bpc" to the max render/gles2: check GBM is found render: use internal_features to indicate EGL support build: fix enabled GBM when allocators=auto and auto_features=disabled output: fix missing buffer when using direct scanout backend/drm: use drmModeGetConnectorTypeName backend/drm: use drmModeConnectorGetPossibleCrtcs xdg-shell: add support for v5 single-pixel-buffer-v1: new protocol implementation backend/drm: remove unused WLR_DRM_CONN_CLEANUP backend/drm: drop WLR_DRM_CONN_NEEDS_MODESET backend/drm: drop enum wlr_drm_connector_status backend/wayland: fix touch device not added on startup render: replace wlr_texture_write_pixels with update_from_buffer surface: add WLR_SURFACE_STATE_OFFSET surface: implement wl_surface.offset output: fail commits if adaptive sync cannot be enabled compositor: fix wlr_surface_set_role return value docs render/vulkan: drop ext params from vulkan_device_create() render/vulkan: drop wlr_vk_device.extensions render/vulkan: fix format features check for shm textures render/vulkan: remove unnecessary casts backend/wayland: drop output_set_custom_mode() xdg-foreign-v1: return wlr_xdg_toplevel in verify_is_toplevel() xdg-foreign-v2: return wlr_xdg_toplevel in verify_is_toplevel() render/egl: improve DMA-BUF format/modifier logging render/allocator/gbm: log human-readable format and modifier output/render: log human-readable format render/vulkan: improve format logging output/cursor: downgrade error messages buffer: split into multiple files single-pixel-buffer-v1: fix header guard name output: fix wlr_output_set_gamma() with zero size render/egl: add support for EGL_KHR_display_reference render/vulkan: add error handling for vulkan_find_mem_type() output: inline output_attach_render() output: drop back_buffer variable in wlr_output_commit_state() output: rejigger attach/clear for back buffer backend/drm: de-duplicate wlr_drm_mode creation output: fix back buffer checks output: add wlr_output_mode.picture_aspect_ratio backend/drm: pass through mode picture aspect ratio screencopy-v1: rename wlr_screencopy_frame_v1.{format,fourcc} screencopy-v1: use DRM format code for shm buffers screencopy-v1: rename wlr_screencopy_frame_v1.stride screencopy-v1: use wlr_buffer APIs render: drop trailing whitespace output: add wlr_output_state.allow_artifacts backend/drm: fix missing wlr_output_state.allow_artifacts render/vulkan: use addon for wlr_vk_render_buffer render/vulkan: use addon for wlr_vk_texture output: fix typo in error message render: don't automatically fall back to Vulkan render: don't fall back to Pixman if we have a render node render/pixman: advertise support for linear format modifier render/allocator/drm_dumb: advertise LINEAR instead of INVALID modifier render/allocator/drm_dumb: check modifier list render/allocator/drm_dumb: get format info before allocating render/allocator/drm_dumb: fix error handling render/allocator/drm_dumb: drop finish_buffer() backend/drm: don't unconditionally set desired_enabled backend/drm: remove outdated TODO screencopy-v1: fix frame_shm_copy() error path screencopy-v1: simplify frame_dma_copy() error path render: drop wlr_renderer_read_pixels() flags build: alphabetically sort protocol lists backend/drm: drop unnecessary wlr_drm_connector.crtc checks backend/drm: nuke wlr_drm_connector.desired_enabled output/render: early return in output_ensure_buffer() output/render: make output_ensure_buffer() no-op when missing renderer output: allocate swapchain on first commit drm-lease-v1: fix error codepath drm-lease-v1: send finished event on failure in submit request drm-lease-v1: reject the lease request by default backend/drm: drop drm_connector_set_mode() render/gles2: assert that GL_OES_EGL_image_external is supported output: fix crash in output_test_with_back_buffer() render/vulkan: drop wlr_vk_instance.extensions backend: use global output name counters backend/drm: use wl_container_of() instead of casts for wlr_drm_mode idle-notify-v1: new protocol implementation backend/drm: use atomic API to fetch current connector's CRTC backend/drm: extract connect_drm_connector() logic backend/drm: extract current mode logic into separate function backend/drm: fix EINVAL atomic commits after VT switch backend/drm: log when restoring mode after VT switch fails backend/drm: drop drm_crtc_page_flip() backend/drm: log failures in drm_surface_blit() render/vulkan: add missing entries in vulkan_strerror() backend/drm: fetch current CRTC once on startup xwyland/xwm: simplify unpaired_link handling output: try to use fixed mode in wlr_output_set_custom_mode() output: clarify custom modes warning egl: add WLR_EGL_NO_MODIFIERS render/gles2: remove stale gles2_texture_from_wl_drm() prototype render/gles2: log error on shader compilation failure render/gles2: move shaders to individual files render/gles2: move color uniform from quad.vert to quad.frag render/gles2: de-duplicate vertex shaders backend/drm: extract create_drm_connector() backend/drm: get possible CRTCs in create_drm_connector() xwayland: split headers render/vulkan: remove exts arg from vulkan_instance_create() render/vulkan: drop outdated comments render/vulkan: simplify extension checks render/vulkan: use struct initializers render/vulkan: simplify texture VkPipelineShaderStageCreateInfo render/vulkan: fix and add missing wl_list comments render/vulkan: use wl_array for wlr_vk_shared_buffer.allocs scene: fix whitespace scene: destroy addons before cleaning up internal state Revert "backend/drm: fetch EDID manufacturer from udev_hwdb" backend/drm: request page-flip event on modeset build: bump to version 0.16.0 Simon Zeni (57): backend/headless: remove unused wlr_headless_input_device types/wlr_input_device: default vendor and product id to 0 interfaces/wlr_input_device: introduce wlr_input_device_finish types/wlr_input_device: call the specialized input device destroy function on destroy types/wlr_keyboard: add base wlr_input_device types/wlr_pointer: add base wlr_input_device types/wlr_switch: add base wlr_input_device types/wlr_tablet_pad: add base wlr_input_device types/wlr_tablet_tool: add base wlr_input_device types/wlr_touch: add base wlr_input_device types/wlr_tablet_pad: constify impl types/wlr_switch: constify impl backend/x11: remove wlr_input_device_impl backend/wayland: remove wlr_input_device_impl backend/libinput: remove wlr_input_device_impl interfaces: remove wlr_input_device_impl types/wlr_virtual_keyboard_v1: fix wlr_keyboard destroy sequence types/wlr_virtual_pointer_v1: fix wlr_pointer destroy sequence backend/libinput: add devices wl_list backend/libinput: rework keyboard interface backend/libinput: rework pointer interface backend/libinput: rework switch interface backend/libinput: rework touch interface backend/libinput: rework tablet interface backend/libinput: rework tablet_pad interface backend/libinput: public API cleanup interface/wlr_keyboard: rework destroy sequence interface/wlr_pointer: rework destroy sequence interface/wlr_switch: rework destroy sequence interface/wlr_tablet_pad: rework destroy sequence interface/wlr_tablet_tool: rework destroy sequence interface/wlr_touch: rework destroy sequence tinywl: destroy keyboard on wlr_input_device event types/wlr_input_device: remove wlr_input_device_destroy types/wlr_input_device: move init and finish function to private API types/wlr_keyboard: remove destroy event types/wlr_virtual_keyboard_v1: remove destroy event types/wlr_virtual_pointer_v1: remove destroy event tinywl: init cursor_mode backend/wayland: give wlr_keyboard ownership to wlr_wl_seat backend/wayland: give wlr_pointer ownership to wlr_wl_seat backend/wayland: drop wlr_switch support backend/wayland: give wlr_touch ownership to wlr_wl_seat backend/wayland/tablet_v2: give wlr_tablet_* ownership to wlr_wl_seat backend/wayland: remove wlr_wl_input_device backend/wayland: remove wl_seat_listener from public API types/wlr_input_device: move output_name field to wlr_pointer and wlr_touch types/wlr_input_device: move width_mm and height_mm fields to wlr_tablet and wlr_touch types/wlr_pointer: uniformize events name types/wlr_keyboard: uniformize events name types/wlr_switch: uniformize events name types/wlr_tablet_pad: uniformize events name types/wlr_tablet_tool: uniformize events name types/wlr_touch: uniformize events name tinywl: exit on backend, renderer or allocator creation failure build: remove libkms option and disable tests for libdrm fallback backend/drm: allocate connector CRTC on lease creation Steven Newbury (1): util: Fix infinite loop in recursive function Tadeo Kondrak (1): input_method_v2: improve mapping detection Thomas Hebb (1): render/gles2: don't constrain shm formats to ones that support reading Vlad Zahorodnii (1): xcursor: garbage collect XcursorLibraryLoadImages bi4k8 (3): render/vulkan/pixel_format: do not leak props->... Add missing & render/egl: don't leak memory on error return fakechen (1): egl: modify egl_init_display function definition illiliti (2): meson: replace join_paths() with / operator backend/drm: use pnp.ids to fetch EDID data nyorain (1): vulkan: Fix imported image layout tiosgz (1): CONTRIBUTING.md: make forks public to let the CI run vanfanel (2): Initialize connectors current mode to the mode used by KMS on startup. Only set max_bpc when full modesetting is being done. vaxerski (1): backend/drm: fix crash with null serial xiaoyaobing (1): tinywl/tinywl: clean up tinywl_output when wlr_output is gone yiqiang (2): wlr_scene: fix color value when filtering black boxes scene/wlr_scene:fix judgment of invisible node zccrs (2): render/vulkan: fix undefined reference to wlr_texture_is_vk render/vulkan: add some interfaces to allow compositors to integrate zsugabubus (1): xwayland: do not double free server on destroy
-
0.15.129938b74 · ·
wlroots 0.15.1 Alexander Orzechowski (1): xdg-foreign: Fix crash on destroy of degenerate surface Isaac Freund (3): wlr_texture: remove wlr_texture_from_wl_drm() from header foreign-toplevel: send enter if needed on output bind tinywl: fix check whether client is focused or not Kirill Primak (3): scene/subsurface_tree: fix handling subsurface destruction compositor: damage the whole buffer on viewport src change subsurface: unlock cached state on commit if desynced Simon Ser (4): backend: error out in autocreate without libinput support scene: schedule an output frame on wl_surface.frame scene: try to import buffers as textures before rendering build: bump version to 0.15.1 Tadeo Kondrak (1): input_method_v2: improve mapping detection Thomas Hebb (1): render/gles2: don't constrain shm formats to ones that support reading nyorain (1): vulkan: Fix imported image layout
-
0.15.09f41627a · ·
wlroots 0.15.0 Release highlights: - A new experimental Vulkan renderer has been merged (manually enabled with `WLR_RENDERER=vulkan`). - A new scene-graph API has been introduced to enable more code-sharing between compositors. - Large parts of the backend and renderer APIs have been refactored and reworked. - The `drm-lease-v1` protocol has been implemented. - Feedback support has been added to the `linux-dmabuf-unstable-v1` implementation, unlocking many zero-copy and multi-GPU optimizations and features. - The `wlr_output` rendering API now supports 10bpc and 16bpc formats. - The DRM backend now supports hotplugging secondary GPUs at runtime. - `wlr_region` and `wlr_box` are now stable APIs. Full changelog below. Andri Yngvason (2): screencopy: Use output->front_buffer instead of wlr_output_export_dmabuf screencopy: Handle shm copy in commit event handler Anthony Super (1): Add error handling to backend creation Chris Chamberlain (2): backend: fix return value of attempt_drm_backend backend/drm: add wlr_drm_backend_monitor Cole Mickens (1): egl: use alts for EGL_EXT_device_enum, if missing David Rosca (1): seat: Only resend keyboard/pointer enter to focused clients Demi Marie Obenour (1): Improve wlr_drm_format documentation Devin J. Pohly (9): scene: add node reparent function scene: ensure node cannot be reparented below itself scene: make graph loops fatal when debugging scene: stricter assertions on reparent scene: iterate nodes instead of surfaces when rendering scene: add RECT node type scene: replace surface_at() with node_at() examples/scene-graph: demonstrate scene_rect node type scene: remove redundant empty-region check in render_texture() Dylan Araps (1): util/time: make NSEC_PER_SEC static Elyes HAOUAS (1): Fix spelling errors Guido Günther (3): xwayland: Allow to retrieve _NET_STARTUP_ID xwayland: Allow to retrieve startup-id via _NET_STARTUP_INFO xdg-activation: Allow to submit tokens Haelwenn (lanodan) Monnier (3): render/pixman/renderer.c: Fix memory-leak in create_buffer render/egl.c: Fix memory leaks in egl_create backend/drm/legacy.c: Fix memory leak in drm_legacy_crtc_set_gamma Hubert Hirtz (1): Fix a typo in CONTRIBUTING.md Isaac Freund (15): layer-shell: replace close() with destroy() tinywl: simplify logic for sending pointer events scene: assert that node != sibling in place above/below scene: add functions to place node on top/bottom output: fix leak of wlr_drm_format text-input/input-method: handle strdup() failure text-input: fix type of send_preedit_string() args wlr_drag: emit destroy after wl_data_device.leave tinywl: use wlr_scene scene: send surface enter/leave output events scene: add primary output to wlr_scene_surface scene: add wlr_scene_send_frame_done() tinywl: use wlr_scene_send_frame_done() scene: fix wlr_scene_send_frame_done() API scene: add wlr_scene_set_presentation() Jan Beich (2): backend: drop unconditional and unused <libinput.h> render: completely disable gles2 if requested but libEGL is found John Lindgren (1): Insert new outputs at the end of the list Jonathan Wong (1): Added whitespace between "output" and "(not" Joshua Ashton (2): render/vulkan: Use image view swizzles instead of shader hack render/vulkan: Optimize vertex shader José Expósito (8): protocol/meson: bump wayland-protocols requirement to 1.23 pointer: add hold pointer event definition build: check if libinput supports hold gestures backend/libinput: send hold gesture events backend/wayland: send hold gesture events cursor: emit hold gesture events wlr_pointer_gestures: update protocol to version 2 wlr_pointer_gestures: hold gestures (protocol v3) Kirill Primak (34): surface: don't cache frame callback lists util: add wlr_addon wlr_outputs: add wlr_addon_set wlr_output_layout: use wlr_addons util/addon: find both by owner and impl surface: fix place_below handling util/box: introduce wlr_fbox_transform() surface: fix wlr_surface_get_buffer_source_box() subsurface: unlock surface on destroy surface: cache frame callback lists again surface: move subsurface lists to state surface: rename impl and its functions surface: change surface_finalize_state() to surface_finalize_pending() surface: inline surface_commit_pending() xdg popup: move function to a file it belongs to xdg-toplevel: refactor configure/state flow xdg-surface: simplify configure mechanism xdg surface: check adding configure_idle for NULL layer-shell: refactor configure/state flow layer-shell: add `committed` bitmask xdg-surface: add pending state xdg-shell: remove redundant NULL buffer check layer-shell: move NULL buffer check to role precommit handler xdg-decoration: refactor configure/state flow output: disallow NULL event for wlr_output_send_present() output: add presented flag to presentation event presentation-time: don't send presented on discard presentation-time: use a surface addon CONTRIBUTING.md: add CoC section surface: fix damage transformation subsurface: simplify and fix parent commit handling subsurface: apply position change at the right moment surface: fix non-buffer damage handling subsurface: don't add to parent list immediately Manuel Stoeckl (7): render/pixel-format: add a few 10-bit and FP16 formats render/gles2: hide shm formats without GL support render/gles2: add a few 10-bit and FP16 formats output: lift up output format fallback logic output: use XRGB8888 format instead of ARGB8888 output: Add function to set preferred render format output: remove XRGB8888 cursor fallback format MarkusVolk (1): backend.c: do not try to explicitly clean up the libinput backend Michele Sorcinelli (1): xwayland: do not free cursor in handle_server_ready() Moon Sungjoon (1): backend/wayland: improve wayland input device name Quantum (3): viewporter: remove crop and scale state upon destruction scene: fix compile error in release builds Fix uninitialized variable errors in release mode Raphael Robatsch (1): util/token: don't leak /dev/urandom fd to children Roman Gilg (1): backend/headless: unlink input device on destroy Ronan Pigott (3): xdg-activation-v1: enable compositors to request their own tokens xdg-activation-v1: add data field and emit token destroy events backend/wayland: use xdga client activation Rouven Czerwinski (6): backend/drm: return true on test if no crtc output: check output enabled before sending frame Revert "backend/drm: Check if output is enabled before sending frame event" backend/drm: try to allocate crtc for formats linux-dmabuf-v1: filter out LINEAR if implicit linux-dmabuf-v1: fix implicit check Simon Ser (288): build: bump version to 0.15.0 backend/drm: rename page_flip_handler to handle_page_flip render/egl: remove stale wlr_egl_export_image_to_dmabuf decl render/egl: make most functions private xwayland: improve startup log message build: use meson.global_build_root() ci: remove -Dlibseat from Alpine build ci: make Meson warnings fatal Drop WLR_VERSION_API_* surface: remove SURFACE_VERSION surface: make wlr_subsurface_create private pointer: document event data types touch: document event data types surface: accept commits with buffer size not divisible by scale render/egl: replace wlr_egl_create with wlr_egl_create_with_drm_fd Remove unused wlr_list.h includes util/array: add array_remove_at backend/libinput: stop using wlr_list internally tablet: stop using wlr_list Drop wlr_list tablet-v2: fix pad and tool object versions buffer: introduce wlr_readonly_data_buffer render: use wlr_readonly_data_buffer in wlr_texture_from_pixels render: drop wlr_renderer_impl.texture_from_pixels buffer: add wlr_dmabuf_buffer render: use wlr_dmabuf_buffer in wlr_texture_from_dmabuf render: drop wlr_renderer_impl.texture_from_dmabuf buffer: make enum wlr_buffer_cap public backend/libinput: use wl_array for wlr_libinput_tablet.tools surface: allow locking pending state in commit handler Remove reference to the announce mailing list region: stabilize interface region: drop leftover reference to the mailing list Revert "backend/drm: populate cursor plane's current_fb" backend/drm: don't clear pending cursor FB on failed commit xcursor: improve documentation Add a stub wl_drm implementation drm: add support for DMA-BUFs buffer: handle wl_drm buffers render/gles2: use wlr_drm for wl_drm implementation render: remove wl_drm support from wlr_renderer render/egl: remove EGL_WL_bind_wayland_display support buffer: remove renderer param from wlr_resource_get_buffer_size buffer: stop sending wl_buffer.release events from wlr_client_buffer buffer: unify texture creation in wlr_client_buffer_import output: detach buffer from renderer before commit output-damage: fix output swapchain handling touch: add frame event backend/libinput: send touch frame events backend/wayland: send touch frame events backend/x11: send touch frame events cursor: add touch frame event seat: add wlr_seat_touch_{send,notify}_frame Fix invalid uses of wl_array_for_each backend/drm: force linear layout for multi-GPU buffers backend/drm: stop using drm_surface_make_current in drm_surface_blit backend/drm: add test_only arg to wlr_drm_interface.crtc_commit backend/drm: move legacy-specific checks to legacy.c backend/drm: remove backend arg from wlr_drm_interface.crtc_commit buffer: rename wlr_client_buffer variables to client_buffer buffer: stop using source resource in wlr_client_buffer_apply_damage buffer: add wlr_client_buffer.source buffer: stop using resource in client_buffer_get_dmabuf buffer: drop wlr_client_buffer.resource render/egl: rename wlr_egl.exts to better match Khronos render/gles2: rename wlr_egl.exts to better match Khronos render/gles2: set has_alpha for DMA-BUFs render/gles2: disable blending opportunistically buffer: drop resource arg from wlr_client_buffer_create output: add generic wlr_output_export_dmabuf implementation backend/headless: remove wlr_output_impl.export_dmabuf backend/drm: remove wlr_output_impl.export_dmabuf output: remove wlr_output_impl.export_dmabuf backend/wayland: properly cleanup wlr_wl_pointer backend/drm: fix NULL data in handle_drm_event buffer: re-use wlr_shm_client_buffer backend/drm: stop restoring CRTCs on exit backend/drm: add DRM_MODE_CONNECTOR_USB to conn_get_name render: drop wlr_renderer_impl.init_wl_display render/egl: set EGL_IMAGE_PRESERVED_KHR render/egl: add support for EGL_EXT_device_drm_render_node xwayland: simplify argv filling logic xwayland: embed wlr_xwayland_server_options in server struct output: fallback to XRGB in output_pick_format backend/drm: implement get_primary_formats output: use pending resolution when allocating swapchain output: allocate and attach empty buffer on modeset output: fallback to modifier-less allocation on modeset test failure backend/drm: allow legacy scan-out if FB props match backend/drm: remove primary swapchain backend/drm: remove SCANOUT check in drm_connector_test backend/drm: drop drm_surface_{make,unset}_current backend/drm: drop get_renderer implementation backend/drm: stop initializing renderer for parent backend backend/drm: fix wrong type for get_cursor_format return values backend/noop: drop attach_render/rollback_render output: drop wlr_output_impl.{attach,rollback}_render output-damage: stop using enum wlr_output_state_buffer_type output: drop wlr_output_state.buffer_type render/pixel-format: add some 24 and 16-bit formats render/gles2: add support for some 24 and 16-bit formats backend/drm: preserve mode order from kernel render/pixel_format: add more formats for Pixman render/pixman/pixel_format: add more formats output: try skipping buffer allocation if the backend allows it backend/drm: require buffer on modeset in drm_connector_test examples/fullscreen-shell: remove unused render_data.view field build: remove "." from include dirs seat: allow compositors to not load a keymap ci: add smoke test backend/drm: add proper error handling to wlr_drm_backend_create backend/drm: always perform a test commit in drm_connector_test surface: kill wlr_surface.previous surface: drop surface_state_copy buffer: add addon set render/gles2: make wlr_gles2_buffer an addon render/gles2: make wlr_gles2_texture a wlr_buffer addon backend/drm: use addon for wlr_drm_fb backend/drm: add support for FB_DAMAGE_CLIPS backend: unify startup messages backend/drm: generate CVT reduced modes backend/{drm,libinput}: exclude headers when disabled Move allocator stuff into new directory render/egl: reopen DRM node for GBM backend/drm: introduce wlr_drm_bo_handle_table Introduce new scene-graph API examples/scene-graph: new example scene: add wlr_scene_node_toggle scene: allow nodes to have arbitrary parents scene: add user data pointer to wlr_scene_node scene: add wlr_scene_node_surface_at contributing: add new section about commit log contributing: use references for links contributing: clone wlroots fork with SSH contributing: turn remaining links into refs Link to gamja for web chat render/allocator: re-open GBM FD render/allocator/gbm: fix create() docs for FD ownership build: add subproject fallback for wayland build: add subproject fallback for wayland-protocols contributing: don't reference issues in commit first line render/allocator: use legacy authentication for primary nodes backend/drm: handle drm_surface_blit errors render/allocator/gbm: add log message for gbm_bo_get_fd_for_plane util/shm: add allocate_shm_file_pair keyboard: add wlr_keyboard.keymap_fd seat: avoid copying the keymap for each client subsurface: rename wlr_subsurface_state to wlr_subsurface_parent_state subsurface: move parent link to state buffer: take a wlr_buffer in wlr_client_buffer_apply_damage buffer: make wlr_client_buffer_apply_damage return a bool viewporter: add doc comment explaining compositor requirements viewporter: hide wlr_viewport surface: ensure buffer is reset to NULL in surface_state_move surface: drop wlr_surface_state.buffer_resource surface: fix abort on NULL buffer attach backend/drm: rename enum wlr_drm_connector_state to status backend/drm: introduce wlr_drm_connector_state backend/drm: fix crash on VT switch backend/drm: drop unused arg from get_possible_crtcs backend/drm: drop drm_connector_init_renderer output-damage: fix damage on modeset backend/drm: drop attempt_enable_needs_modeset backend/drm: drop wlr_drm_connector.desired_mode scene: fix wlr_scene_render_output offset scene: add scene outputs scene: add wlr_scene_output_commit scene: add wlr_scene_node_coords scene: add damage tracking support examples/scene-graph: use wlr_scene_output scene: move source to subdir scene: add wlr_scene_attach_output_layout buffer: add data_ptr access flags ci: switch to seatd-launch scene: add wlr_scene_tree surface: add addon set scene: add wlr_scene_subsurface_tree_create build: simplify get_variable calls backend/drm: add support for panel orientation scene: drop default case in wlr_scene_node_at scene: unify intersection logic in wlr_scene_node_at scene: add wlr_scene_buffer util/box: introduce wlr_fbox_empty scene: add wlr_scene_buffer_set_source_box scene: add scene_node_get_size helper scene: use scene_node_get_size in wlr_scene_node_at scene: add wlr_scene_buffer_set_dest_size scene: add wlr_scene_buffer_set_transform backend: create renderer and allocator in wlr_backend_autocreate xdg-shell: introduce wlr_xdg_surface.current xdg-shell: rename wlr_xdg_surface.next_configure_serial xdg-shell: stop clearing wlr_xdg_surface state on unmap render/drm_format_set: add wlr_drm_format_has Require INVALID for implicit format modifiers backend/drm: fail on explicit modifier in drmModeAddFB2 render/egl: always add LINEAR to supported modifiers render/drm_format_set: remove special LINEAR case Revert "render/drm_format_set: remove special LINEAR case" Revert "render/egl: always add LINEAR to supported modifiers" Revert "backend/drm: fail on explicit modifier in drmModeAddFB2" Revert "Require INVALID for implicit format modifiers" Revert "render/drm_format_set: add wlr_drm_format_has" render/allocator: use render node if available in reopen_drm_node render/allocator: use empty DRM lease to re-open node scene: remove surface commit listener when node is destroyed render/vulkan: check vulkan-headers dependency presentation-time: remove unused field scene: add wlr_scene_output_for_each_surface scene: add support for direct scan-out output: split into multiple files xdg-foreign-v2: use error enum output: refuse to enable with zero mode readme: refresh dependencies backend/drm: add entry for Valve EDID vendor backend/x11: fix code style in get_touchpoint_from_x11_touch_id scene: inline subsurface_tree_destroy sceeencopy-v1: listen to output destroy in capture_output backend/drm: get rid of BO handle table output: fix stack variable lifetime in wlr_output_send_present backend/drm: avoid creating empty FB_DAMAGE_CLIPS prop ci: add .gitlab-ci.yml s/GitHub/GitLab/ xwayland: add support for -noTouchPointerEmulation backend/session: introduce wlr_device_change_event backend/drm: handle per-connector hotplug events scene: fix calloc size mismatch export-dmabuf-v1: stop using wlr_output_export_dmabuf screencopy-v1: stop using wlr_output_export_dmabuf output: drop wlr_output_export_dmabuf linux-dmabuf-v1: properly validate flags Remove support for DMA-BUF flags output: add wlr_output_init_render output: fix renderer buffer cap sanity check in wlr_output_init_render Introduce WLR_DEVICE_LEASE events backend/drm: introduce wlr_drm_lease drm-lease-v1: listen to lease destroy event backend/drm: scan leases on uevent linux-dmabuf-v1: hide wlr_linux_buffer_params_v1 backend/wayland: report parent presentation clock input-device: remove wlr_input_device.link render/vulkan: quiet glslangValidator docs/env_vars: drop WLR_DIRECT_TTY render: pick DRM FD in autocreate render/allocator: fallback to renderer DRM FD in autocreate backend/headless: stop picking a DRM FD render: introduce WLR_RENDER_DRM_DEVICE backend/headless: drop wlr_headless_backend_create_with_renderer scene: add wlr_scene_xdg_surface_create render/drm_format_set: add wlr_drm_format_has Require INVALID for implicit format modifiers backend/drm: fail on explicit modifier in drmModeAddFB2 render/egl: always add LINEAR to supported modifiers render/drm_format_set: remove special LINEAR case backend/drm: always add LINEAR to supported modifiers render: add DMA-BUF docs scene: add support for viewporter backend/drm: poison buffers which cannot be scanned out output: destroy swapchain when disabled output: don't leave dangling cursor_front_buffer output: fix typo in wlr_output_impl.get_primary_formats docs output: add wlr_output_get_primary_formats scene: add wlr_scene_get_scene_output render/egl: store IMG_context_priority in wlr_egl render/egl: add wlr_egl_create_with_context render/pixman: advertise MOD_INVALID instead of MOD_LINEAR render/egl: improve modifier support detection output: fix modifier stripping readme: update wrapper libraries link render/drm-format-set: add wlr_drm_format_set_intersect output: add wlr_output_event_commit.buffer export-dmabuf-v1: use wlr_output_event_commit.buffer screencopy-v1: use wlr_output_event_commit.buffer output: drop front_buffer render: add wlr_renderer_init_wl_shm linux-dmabuf-v1: implement v4 linux-dmabuf-v1: add per-surface feedback build: move wayland-client dep to backend/wayland/ examples/layer-shell: remove wlroots dependency examples: remove unnecessary wlroots deps for clients examples: remove unnecessary partial_dependency() call output: introduce wlr_output_set_name Fix incorrect %zd formatting directives output: add support for protocol interface version 4 util/global: remove wl_display arg from wlr_global_destroy_safe backend/drm: use drmModeFormatModifierBlobIterNext backend/drm: use drmCloseBufferHandle build: add subproject fallback for libdrm backend/wayland: add basic linux-dmabuf feedback support Simon Zeni (36): types/wlr_box: remove unused wlr_box_from_pixman_box32 and wlr_box_rotated_bounds functions move wlr_box from /types to /util util/box: stabilize interface types/wlr_buffer: split wlr_client_buffer_import function types/wlr_surface: get buffer size from wlr_buffer_import types/wlr_buffer: remove wlr_resource_get_buffer_size types/wlr_buffer: remove wlr_renderer argument from wlr_buffer_from_resource types/wlr_buffer: introduce wlr_buffer_resource_interface types/wlr_buffer: create custom wlr_buffer from wl_resource render/wlr_texture: put wlr_texture_from_buffer into the public API render/egl: initialize wlr_egl with EGL_PLATFORM_DEVICE_EXT backend/drm: implement drm lease function backend/drm: introduce wlr_drm_backend_get_non_master_fd protocol/meson: bump wayland-protocols requirement to 1.22 types: introduce wlr_drm_lease_v1 types/buffer: make {begin,end}_data_ptr_access part of the public API backend/multi: implement get_buffer_caps render/allocator: make wlr_allocator part of the public API examples: init wlr_output with allocator and renderer tinywl: autocreate allocator and init output backend: remove backend ensure renderer and allocator check backend: remove backend_get_allocator types/wlr_screencopy_v1: use renderer from output types/wlr_scene: use renderer from wlr_output backend/x11: get renderer from wlr_x11_output backend/headless: don't store the parent renderer backend/drm: stop initializing backend renderer backend/multi: remove backend_get_renderer backend: remove wlr_backend_get_renderer backend/multi: add asserts in wlr_multi_backend_add backend: fix attempt_backend_by_name multi backend self insertion tinywl: init output render before commit tinywl: build with meson if examples option is enabled ci/archlinux: enable address and undefined sanitizers backend: remove noop backend types/wlr_drm_lease_v1: add NULL check to drm lease resource destroy Stacy Harper (1): layer-shell: don't set committed flag if the property didn't change Tadeo Kondrak (2): input-method-unstable-v2: Add error for surface with existing role Implement input_method_v2 popups Tudor Brindus (3): input/pointer: try harder to not send duplicate motion events input/tablet: fix `wl_array_for_each` usage on tablet proximity xwm: do not restack surfaces on activation Vyivel (2): render/pixman: fix texture_is_opaque() input/pointer: send axis source once per frame ayaka (1): backend: make DRM and libinput backends optional buffet (1): Update loc count in readme fwsmit (1): examples/foreign-toplevel: fix toplevel not being freed muradm (1): backend: wait for session to become active nyorain (1): render/vulkan: add Vulkan renderer tiosgz (4): for_each_surface: only iterate mapped surfaces surface_at: check if surfaces are mapped scene/subsurface_tree: hide unmapped subsurfaces Fix wlr_scene_node_lower_to_bottom yuiiio (1): render/egl: fix typo Érico Nogueira (1): docs: mention WLR_RENDERER=vulkan.
-
0.14.149a57442 · ·
wlroots 0.14.1 This is bugfix release for wlroots 0.14.0. Simon Ser (10): surface: accept commits with buffer size not divisible by scale buffer: make enum wlr_buffer_cap public surface: allow locking pending state in commit handler Revert "backend/drm: populate cursor plane's current_fb" backend/drm: don't clear pending cursor FB on failed commit output: detach buffer from renderer before commit output-damage: fix output swapchain handling tablet-v2: fix pad and tool object versions backend/drm: force linear layout for multi-GPU buffers build: bump version to 0.14.1
-
0.14.08810e950 · ·
wlroots 0.14.0 Release highlights: - Renderer refactoring work is well underway: everything now uses the new infrastructure under-the-hood except the DRM backend's primary plane. - The Pixman software renderer has been merged, alongside new allocators (shared memory for Wayland/X11 and DRM dumb buffers). - Session management is now completely offloaded to libseat. - Support for the xdg-activation-v1 protocol has been merged. Full changelog below. Aleksei Bavshin (2): xwayland: query window PIDs via XResQueryClientIds xwayland: remove _NET_WM_PID handler Benoit Gschwind (1): Document the wlr_output_layout_get function Brian McKenna (1): Flush events in virtual pointer example Isaac Freund (1): gtk-primary-selection: drop support Kenny Levinsen (12): backend/session: Remove logind backend ci: Add libseat-dev to alpine backend/session: Make libseat mandatory backend/session: Remove direct backend backend/session: Remove noop backend backend/session: Remove session_impl backend/session: Close fd in wlr_session_close_file backend/session: Close remaining devices on destroy backend/drm: Do not require mode commit on enable meson: Make private static library symbols local ci: Build both static and shared Revert "meson: Make private static library symbols local" Roman Gilg (1): backend: move get_drm_fd to public interface Ryan Farley (2): util/uuid: replace with util/token, remove libuuid xwayland/sockets: ensure proper permissions Simon Ser (135): build: bump version to 0.14.0 render: drop wlr_renderer_blit_dmabuf render: remove wlr_texture_to_dmabuf render: drop support for ellipses Remove WLR_HAS_XCB_ERRORS build: disable libseat subproject server and man pages build: remove wayland-scanner fallback backend/libinput: terminate display on error backend/drm: terminate display on drmHandleEvent failure backend/x11: check for connection errors render/gles2: prevent imported DMA-BUF textures from being mutated examples/rotation: error out on invalid option readme: mark libseat as mandatory dep buffer: introduce wlr_buffer_get_shm render: introduce shared memory allocator backend/wayland: add support for wl_shm buffers backend/wayland: fallback to wl_shm on missing render node examples: use wlr_output_preferred_mode examples: remove dependency on GLES2 for compositor examples Stop specifying xkb_rule_names linux-dmabuf-v1: drop some from_resource helpers linux-dmabuf-v1: split params and buffer render/gles2: log when creating renderer output: correctly handle outputs without a test() impl render/pixman: cleanup when renderer is destroyed render/gles2: destroy textures on renderer teardown render/pixman: destroy textures on renderer teardown render: remove NULL checks in wlr_texture_impl.destroy readme: update and cleanup xcb deps readme: mention IRC channel readme: use webchat link for IRC channel render: unconditionally read WLR_RENDERER Log drmGetDevices2 error code xcursor: quiet debug log backend/drm: fail instead of stripping a modifier backend/drm: clarify error message on drmModeAddFB fallback backend/drm: destroy when parent is destroyed backend/session: add wlr_device.events.remove backend/drm: destroy backend on udev remove event backend/drm: carry on when disabling a CRTC fails Revert "backend/drm: fail instead of stripping a modifier" buffer: add format param to get_data_ptr render/pixman: check format is supported in create_buffer Log when WLR_BACKENDS/WLR_RENDERER is set backend/drm: reword wlr_renderer failure message render: remove wlr_ prefix from wlr_renderer_autocreate_with_drm_fd render/allocator: add allocator_autocreate_with_drm_fd backend/drm: fix allocator DRM FD on multi-GPU setups render/gles2: assert texture comes from the same renderer backend/drm: take wlr_output_state as arg in crtc_commit backend/drm: take wlr_output_state as arg in commit callers backend/drm: fill scratch wlr_output_state for set_mode backend/drm: remove wlr_drm_crtc.pending_modeset backend/drm: remove wlr_drm_crtc_state.active backend/drm: remove wlr_drm_crtc_state.mode backend/drm: remove mode arg from drm_connector_init_renderer backend/drm: remove mode arg from drm_connector_set_mode backend/drm: take output state arg in drm_connector_commit_buffer backend/drm: take a wlr_drm_connector instead of a wlr_output backend/drm: introduce drm_connector_commit_state backend/headless: dup DRM FD in wlr_headless_backend_create_with_renderer build: move wayland-protocols dep to protocol/ render/egl: query and display EGL driver name render: remove wlr_texture_get_size render/gles2: remove unnecessary EGL import ext checks linux-dmabuf-v1: implement wlr_buffer render/gles2: add gles2_texture_create render: introduce wlr_texture_from_buffer render/gles2: implement texture_from_buffer buffer: use wlr_texture_from_buffer for DMA-BUFs screencopy-v1: stop using wlr_client_buffer backend/drm: use wlr_texture_from_buffer render/gbm_allocator: add support for gbm_bo_get_fd_for_plane render/pixman: avoid sqrt() in render_quad without rotation render: relax stride check in wlr_texture_from_pixels backend: introduce wlr_backend_finish backend: automatically create renderer backend: automatically create allocator backend/wayland: use common renderer and allocator backend/headless: use common renderer and allocator backend/x11: use common renderer and allocator readme: add link to IRC web client readme: fix broken IRC web client link contributing: add link to IRC web chat render/gles2: fix texture cleanup on destroy render/drm_dumb_allocator: check for DRM master render/allocator: add wlr_allocator.buffer_caps backend: stop using renderer to get the buffer type render: disallow wlr_renderer_destroy while rendering render: add wlr_renderer_begin_with_buffer output: add get_cursor_formats and get_cursor_size to interface backend/wayland: implement get_cursor_formats backend/drm: implement get_cursor_formats and get_cursor_size backend/drm: remove format arg from drm_plane_init_surface backend/drm: introduce drm_plane_pick_render_format output: take a wlr_buffer in set_cursor backend/drm: move cursor fields to wlr_drm_connector xdg-activation-v1: new protocol implementation xdg-activation-v1: add token timeout surface: allow placing subsurfaces below parent buffer: replace get_data_ptr with {begin,end}_data_ptr_access render/gles2: add support for DATA_PTR buffers in texture_from_buffer render/pixman: implement texture_from_buffer buffer: introduce wlr_shm_client_buffer buffer: use wlr_texture_from_buffer for wl_shm_buffer output: add get_primary_formats to interface output: split output_pick_cursor_format output: make attach_render and rollback_render optional backend/headless: remove swapchain backend/x11: implement get_dmabuf_primary_formats backend/x11: remove swapchain backend/wayland: implement get_dmabuf_primary_formats backend/wayland: remove swapchain matrix: deprecate wlr_matrix_projection screencopy-v1: use wlr_renderer_begin_with_buffer output: use wlr_renderer_begin_with_buffer for cursor backend/x11: use wlr_renderer_begin_with_buffer for cursor render: drop wlr_ prefix from wlr_renderer_bind_buffer render: add missing arg to wlr_renderer_impl.get_buffer_caps backend/drm: use atomic test-only commits for modifier fallback backend/drm: allow committing a buffer and a mode together backend/drm: introduce drm_connector_alloc_crtc backend/drm: allocate a CRTC in drm_connector_commit_state backend/drm: allocate a CRTC in drm_connector_test backend/drm: move drm_connector_set_pending_fb up backend/drm: move session check from test_buffer to drm_connector_test backend/drm: remove test_buffer output: reset back buffer on failed commit backend/drm: populate cursor plane's current_fb backend/session: use drmIsKMS backend/session: use DRM_PRIMARY_MINOR_NAME build: simplify version script xdg-activation-v1: fix wlr_xdg_activation_v1_create error path backend: add output state allow-lists Revert "build: workaround for meson disabler object not working with if not" Simon Zeni (22): render: rename get_dmabuf_render_formats into get_render_formats buffer: introduce wlr_buffer_get_data_ptr render: introduce pixman renderer renderer: create pixman renderer if getting drm fd failed examples: introduce quads example examples/rotation: remove unused includes render/gles2: introduce wlr_gles2_renderer_create_with_drm_fd render: introduce WLR_RENDERER in wlr_renderer_autocreate_with_drm_fd render/egl: fail on EGL_MESA_device_software render/pixman: implement preferred_read_format pixman: implement read pixels types/wlr_screencopy_v1: log error on read pixels failure render/gbm_allocator: make wlr_gbm_allocator_create return a wlr_allocator render/shm_allocator: make wlr_shm_allocator_create return a wlr_allocator types/wlr_buffer: introduce wlr_buffer_cap backend: introduce backend_get_buffer_caps render: introduce renderer_get_render_buffer_caps render/allocator: introduce wlr_allocator_autocreate backend: use wlr_allocator_autocreate render/gbm_allocator: duplicate drm fd during creation process render: add DRM dumb buffer allocator Update IRC links Stephan Hilb (1): drm: check for PRIME support Tadeo Kondrak (1): backend/x11: add support for shm buffers Thomas Weißschuh (1): xwayland: actually use Xwayland from pkg-config Tobias Stoeckmann (1): xcursor: fix CVE-2013-2003 Tudor Brindus (3): xwm: use correct list link when iterating over `unpaired_surfaces` xwm: implement _NET_CLIENT_LIST_STACKING xwm: prevent X11 clients from blowing our stack by opening too many windows Yuya Nishihara (3): Revert "xcursor: use strncat instead of strncpy" xcursor: use memcpy() to append string of known size virtual_keyboard: Emulate key release events on destroy ayaka (1): render: make GLES2 renderer optional nyorain (1): render: Assert that texture dimensions are > 0 tomKPZ (1): Fix stuck keys on X11 backend zccrs (4): Make the xdg_popup_get_position to public render/gles2: add wlr_renderer_is_gles2 render/pixman: add wlr_*_is_pixman and wlr_pixman_texture_get_image render: add get native paint target of renderer
-
0.13.069c71dbc · ·
wlroots 0.13.0 Andri Yngvason (1): types/seat: Clear focus in wlr_seat_destroy() Ariadne Conill (1): drm: add fallback drmModeAddFB for drivers which do not support drmModeAddFB2 Brandon Dowdy (7): examples: remove dependency on wlr_egl from clients render/egl: remove wlr_egl_{create,destroy}_surface render/egl: remove *config_attribs and wlr_egl->config examples: remove "major" and "minor" from egl_common.c render/egl: add check for EGL_KHR_surfaceless_context examples/egl_common: make attribs const region: remove leftover description of resource_list BrassyPanache (1): Expose ICCCM input status Chris Chamberlain (1): Free xwayland cursor in wlr_xwayland_destroy Daniel Kondor (1): layer-shell: allow new values for keyboard-interactivity Dominik Honnef (1): xwayland: use pipe instead of SIGUSR1 to signal readiness Ilia Bozhinov (10): texture: document that functions should not be called while rendering xwm: add wlr_xwayland_surface_restack() drm: do not unset make/model before emitting destroy event egl: fix memory leak noop: listen to display destroy and destroy the backend util: add support for generating UUIDs xdg-shell: add wlr_xdg_toplevel_set_parent types: add wlr_xdg_foreign_registry types: add wlr_xdg_foreign_v1 types: add wlr_xdg_foreign_v2 Ilia Mirkin (8): backend/x11: set a blank cursor rather than hiding globally backend/x11: make sure output transform matrix is initialized backend/x11: add support for scanout mode backend/x11: skip events we don't care about backend/x11: keep track of exposed rects, add them to damage regions xwayland: free render picture backing cursor backend/x11: use native cursors backend/x11: clamp hotspot to texture bounds Isaac Freund (28): Replace wlr_key_state with wl_keyboard_key_state Use uint32_t in wlr_renderer_begin signature Remove unneeded includes from wlr_input_device.h backend/libseat: fix change_vt return value wlr-output-management: add missing NULL check screencopy: handle compositor not setting damage screencopy: use output transform for damage copy screencopy: check if damage committed before copy screencopy: don't use output transform for damage copy docs: fix error in wlr_output_set_damage() comment xwayland: avoid crash on repeated server_finish_display() call subsurface: handle NULL parent in get_root_surface toplevel-management: ignore inert seats toplevel-management: handle strdup failure toplevel-management: avoid redundant state events docs: wlr_surface_from_resource cannot return NULL primary selection: destroy devices before manager gtk primary selection: destroy devices before manager layer shell: advertise version 3 xdg shell: make unconstrain_from_box arg const xdg shell: add wlr_xdg_surface_for_each_popup_surface() xdg shell: add wlr_xdg_surface_popup_surface_at() layer shell: add wlr_layer_surface_v1_popup_surface_at() xdg/layer shell: reduce code duplication in iterators output-management: use same types as wlr_output xdg shell: remove wlr_xdg_surface_for_each_popup() layer shell: rename popup iterator for consistency xdg-output: destroy outputs before manager Justus Rossmeier (1): tablet_v2: Fix implicit grab end detection Kenny Levinsen (7): backend/drm: Use legacy gamma size for legacy backend surface: Make send_enter store entered outputs backend/wayland: Avoid uninitialized read wlr_seat_pointer: Remove log on notify_button backend/session/libseat: Set loglevel to INFO docs: Minor libseat corrections xdg_shell: Fix invert_y of top right anchor Lukas Märdian (2): Fix false positive -Wstringop-truncation xcursor: use strncat instead of strncpy Manuel Stoeckl (3): xwayland/xwm: make atom_map const xcursor: make cursor data and metadata const Make implementation function lists static const Marten Ringwelski (1): wlr-output-management: Handle modes added after initializing Mykola Orliuk (8): backend/wayland: Bind seat listener to wlr_wl_seat backend/wayland: Link input devices with seats backend/wayland: Add registering multiple seats backend/wayland: Use seat name in input names backend/wayland: Listen to pointers from all seats backend/wayland: Bind pointer listener to seat backend/wayland: Add active pointer per host seat backend/wayland: Set cursor indivdualy per output Quantum (1): render/wlr_texture: clamp texture coordinates to edge by default Ronan Pigott (2): render/egl: recognize EGL_BAD_DEVICE_EXT error backend/drm: avoid gcc stringop-truncation warning Rouven Czerwinski (1): util: fix uuid support for freebsd Simon Ser (287): backend/libinput: require libinput 1.14 render: introduce wlr_allocator render: introduce wlr_gbm_allocator render/drm_format_set: introduce wlr_drm_format_dup render: introduce wlr_swapchain buffer: add wlr_client_buffer_get render: introduce wlr_renderer_bind_buffer render/gles2: implement wlr_renderer_bind_buffer render/gles2: fix y-inverted output when rendering to buffer backend/drm: use wlr_swapchain render/swapchain: add support for buffer age backend/drm: add support for wlr_swapchain buffer age backend/drm: get rid of wlr_drm_fb_type backend/drm: add support for wlr_swapchain multi-GPU backend/drm: check drm_surface_render_black_frame return value render/egl: introduce wlr_egl_dup_drm_fd render: introduce wlr_renderer_get_drm_fd backend/headless: switch to wlr_swapchain backend/headless: implement export_dmabuf build: improve summary via bool_yn render/egl: stop including eglmesaext.h backend/session: don't return FD on failure in open_file backend/session: operate on wlr_device backend/session: filter udev events by sysname backend/session: introduce wlr_session.events.add_drm_card backend/session: wait for DRM device if none found Revert "session/logind: support CanGraphical property" backend/session: replace session_signal with events.active backend/session/logind: log when using XDG_SESSION_ID backend/session: add a timeout waiting for GPUs backend/x11: log errors backend/x11: log unhandled X11 events backend/x11: log unhandled client messages backend/drm: stop force-probing connectors backend/wayland: don't set EGL visual render/egl: don't rely on being able to open primary node render: expand wlr_renderer_get{,_dmabuf}_formats docs render: remove wlr_renderer_format_supported render: introduce wlr_renderer_get_dmabuf_render_formats backend/headless: use a format suitable for rendering render: rename wlr_renderer_get_dmabuf_formats render: rename wlr_renderer_get_formats render: assert {X,A}RGB8888 are supported render/egl: remove wlr_egl.external_only_dmabuf_formats backend/drm: rotation is a plane property backend/drm: "scaling mode" is a connector property Revert "backend/drm: stop force-probing connectors" xwayland: add -core to flags build: add leftover WLR_HAS_LIBCAP backend/drm: take a wlr_drm_format in init_drm_surface render/drm_format_set: introduce wlr_drm_format_intersect backend/drm: query render formats backend/drm: remove unused if in drm_connector_move_cursor backend/session/libseat: set XDG_SESSION_TYPE render/egl: support config-less wlr_egl backend/headless: create a config-less EGL context backend/drm: use EGL_PLATFORM_GBM_KHR backend/drm: unset current surface before importing render/drm_format_set: allocate using cap when duplicating backend/drm: stop tracking overlay planes backend/headless: add support for direct scan-out backend/drm: fix missing wlr_drm_format.cap render/drm_format_set: assert len <= cap when duplicating backend/drm: remove EGL config render/gles2: don't eglGetConfigAttrib on EGL_NO_CONFIG_KHR render/gles2: query alpha size from render buffer output: improve basic test logging backend/drm: remove workaround for amdgpu DP MST output: stop assuming a frame is pending in init backend/wayland: stop rendering black frame on init backend/wayland: use wlr_swapchain for main surface backend/wayland: use wlr_swapchain for cursor surface build: move wayland-egl dependency to examples/ backend/wayland: query render formats backend/x11: switch to wlr_swapchain backend/x11: query modifiers supported by X11 server backend/x11: fix xinput mask mixed up with present backend/drm: stop using GBM flags Remove inline keyword render/gles2: require GL_EXT_unpack_subimage backend/drm: dup FD before wlr_gbm_allocator_create backend: use fcntl(F_DUPFD_CLOEXEC) instead of dup backend/drm: add wlr_drm_connector.backend backend/headless: select the rendering device ourselves backend/x11: fix DRI3 formats not used render/allocator: ignore NULL in wlr_allocator_destroy backend/drm: remove nouveau workaround backend/drm: add wlr_drm_backend.name backend/drm: print DRM device name when scanning connectors render/drm_format_set: add wlr_drm_format_{create,add} backend/drm: use wlr_drm_format_{create,add} backend/x11: use DRI3Open to get DRM FD util/time: add timespec_from_nsec backend/x11: send more precise output present events backend/drm: introduce wlr_drm_conn_log backend/drm: introduce wlr_drm_connector.name backend/drm: refactor wlr_output destruction backend/drm: remove unused wlr_drm_plane.drm_format backend/wayland: remove EGL config backend/wayland: re-use wl_buffers backend/x11: re-use pixmaps backend/x11: destroy buffers when destroying output backend/drm: don't save texture in gbm_bo user data backend/drm: grab DMA-BUF from wlr_buffer instead of gbm_bo backend/drm: drop export_drm_bo backend/drm: make drm_fb_acquire return a FB ID backend/drm: remove drm_fb_acquire backend/drm: error on size mismatch in drm_surface_blit backend/drm: destroy DRM connectors that disappear backend/drm: assert connector state after wlr_output_destroy backend/drm: use plural form for possible_crtcs backend/drm: don't retry page-flip when modifiers are unsupported Remove contrib/_incr_version docs/env_vars: _WAYLAND_DISPLAY isn't used anymore docs/env_vars: document seatd session backend/drm: log whether ADDFB2 modifiers are supported backend/drm: add special case for cursor in add_plane backend/drm: make drmModePlane arg in add_plane const backend/drm: use connector log helpers in atomic backend client-buffer: remove unnecessary wlr_resource_get_buffer_size Stop using wlr_texture_get_size backend/drm: make listener names more idiomatic backend/x11: implement a real rendering loop backend/x11: create per-window present event contexts backend/drm: force LINEAR for cursor plane formats render/drm_format_set: add special case for LINEAR-only formats backend/drm: extract linear format creation into function backend/drm: remove special linear case for cursor plane Remove wlr_create_renderer_func_t backend/x11: always open render node backend/x11: print version on extension error backend/drm: ignore hotplug events while inactive backend/drm: stash pending page-flip CRTC examples: remove visual for EGL_PLATFORM_WAYLAND_EXT examples: request an EGL config backend/wayland: re-use cursor wl_buffers backend/session: allow wlr_session_find_gpus to return an error backend/wayland: remove unnecessary flags from event source render: remove EGL config and visual from wlr_renderer_autocreate backend/drm: don't log errno on plane_get_next_fb failure render/egl: document that config may be zero render/egl: use KHR function pointer type render/egl: document NULL config_attribs passed to wlr_egl_init backend/drm: make wlr_drm_plane.{pending,queued,current}_fb pointers backend/drm: introduce drm_fb_create backend/drm: add wlr_drm_buf.local_wlr_buf backend/drm: only keep track of local buffer backend/drm: re-use FBs backend/drm: stop using surface size for BO xwayland: remove protocol debug messages protocol: add drm.xml backend/wayland: use the EGL GBM platform output-damage: use output commit event gamma-control-v1: schedule frame when resetting gamma LUT build: remove Clang workarounds render/gles2: fix EGL use-after-free build: use more consistent feature names in summary render/egl: remove support for EGL_NATIVE_VISUAL_ID render/egl: remove wlr_egl_swap_buffers render/egl: replace init/finish with create/destroy render/egl: remove surface and buffer age args from make_current backend/drm: fix segfault in page_flip_handler backend/drm: remove unnecessary wlr_drm_fb.wlr_buf check render/gles2: save/restore EGL context in destroy_buffer render: document wlr_renderer_bind_buffer backend: remove unnecessary GLES2 includes output-damage: stop listening to scale/transform events output-layout: stop listening to scale/transform events output: remove scale/transform events render/gles2: restore EGL context after texture operations render/gbm_allocator: log GBM backend name render/gbm_allocator: document that DRM primary FDs work render/gbm_allocator: fix gbm_device use-after-free render: extract gles2 build files to subdir backend: add get_drm_fd to interface backend/multi: implement get_drm_fd backend/wayland: implement get_drm_fd backend/drm: implement get_drm_fd backend/x11: implement get_drm_fd backend/headless: implement get_drm_fd render/gles2: make EGL context current in bind_buffer output-damage: stop relying on output pending state on commit output: send commit event after pending state is cleared render/egl: fix gbm_device use-after-free render: introduce private wlr_renderer_autocreate_with_drm_fd backend/drm: use local DRM FD for wlr_rend backend/headless: create renderer after wlr_backend_init render/gbm_allocator: export to DMA-BUF on init render/gbm_allocator: set modifier to INVALID if implicit backend/x11: log when creating X11 backend backend/x11: log DRM node name backend/x11: add support for DRI3 1.0 backend/x11: add xcb_dri3_pixmap_from_buffers check for n_planes backend/drm: add support for the subconnector property backend/drm: add wlr_drm_connector_get_id backend/drm: fix modifiers for cursor plane buffers backend/x11: fix region not being actually used Revert "render/egl: remove unused gbm_device member" Revert "render: add wlr_egl_create_from_drm_fd function" render/gbm_allocator: avoid drmPrimeHandleToFD backend/drm: document wlr_drm_plane surface fields backend/drm: simplify drm_fb_lock_surface backend/drm: don't blit in drm_fb_import xwayland: drop unused enum net_wm_state_action render/egl: fix NULL dereference when using llvmpipe xwayland: fix extraneous NET_WM_STATE log messages backend/x11: remove output_set_refresh backend/wayland: remove unnecessary cast render/egl: log whether DMA-BUF modifiers are supported render/dmabuf: cleanup on wlr_dmabuf_attributes_copy error render/dmabuf: make src arg const in wlr_dmabuf_attributes_copy region: make wlr_region_create private region: remove resource_list arg from region_create backend/wayland: flush remote display Fix bad indentation readme: fix typo in xcb-icccm dependency render/gles2: remove YUV blocklist backend/x11: drop x11-xcb dependency seat: use WL_SEAT_ERROR_CAPABILITY surface: check buffer size is compatible with scale build: remove extra whitespace examples: drop wlroots dep from egl_common.c examples: drop wlr/render/egl.h include from client examples examples: remove wlroots dep from client examples build: use dictionnary for features instead of configuration_data build: set have_* dep variables for our features build: set pkg-config variables for our features Replace leftover conf_data with features build: bump meson version to 0.56.0 surface: move INVALID_SIZE check into surface_state_finalize surface: don't send protocol error on invalid buffer size backend: add error messages in attach_render impls render/gles2: check buffer stride when uploading texture render/gles2: remove current_buffer checks render/shm_format: add wl_shm_format conversion helpers render/gles2: convert format table to DRM formats render/gles2: replace wlr_gles2_texture.wl_format with drm_format render: use DRM formats in wlr_renderer_get_shm_texture_formats output: use DRM format in wlr_output_preferred_read_format render: use DRM formats in wlr_renderer_read_pixels render: use DRM formats in wlr_texture_from_pixels Remove unnecessary wayland-server-protocol.h includes build: add -Wformat=2 -Walloca build: rollback -Wformat=2 buffer: add missing convert_wl_shm_format_to_drm call Fix wl_shm_format passed to wlr_texture_from_pixels examples: add libdrm partial dependency for compositors readme: make it clear build/ is a dir readme: use spaces for list indent readme: use references for links backend/session: fix KMS device filtering xwayland: add dependency on xwayland xwayland: check executable exists on init xwayland: use -listenfd if available backend/drm: add new writeback and SPI connector types output: document hotspot coord space output: fix transform matrix for 90/270 rotations render/egl: don't fail on EGL_MESA_device_software screencopy: stop using wlr_renderer_blit_dmabuf Fix buffer blit matrices ci: update xwayland dep on alpine examples/dmabuf-capture: stop using av_init_packet linux-dmabuf-v1: always advertise support for implicit modifiers surface: introduce commit sequence numbers surface: introduce cached states subsurface: use cached surface state subsurface: immediately unlock cached state in set_desync render/egl, backend/wayland: add workaround for split render/display setups xwayland: assume no WM_HINTS means window wants input xwayland: require xcb-icccm xwayland: use ICCCM state defines from xcb-icccm backend/drm: use format table in test_buffer build: add subproject fallback for libseat surface: make wlr_surface_create private surface: remove resource_list arg from surface_create render/egl: stop relying on platform for high priority backend/drm: try to import buffer when testing it backend/drm: improve logs in drm_fb_create backend/drm: reject DMA-BUFs with flags backend/x11: reject DMA-BUFs with flags build: simplify HAS_LIBUUID definition build: use get_variable instead of get_pkgconfig_variable backend/drm: don't set NONBLOCK with TEST_ONLY backend/drm: downgrade test-only commit failure log level backend/drm: use atomic test-only commits for direct scan-out backend/drm: stop testing for buffer in drm_connector_commit_buffer build: bump to v0.13.0 Simon Zeni (15): ci: build tinywl tinywl: fix wlr_backend_autocreate call backend: remove wlr_egl from all backends remove unnecessary egl includes render: drop egl parameters from wlr_renderer_autocreate render: remove egl include from wlr_renderer render: add wlr_egl_create_from_drm_fd function render/egl: remove unused gbm_device member render/egl: fail to create wlr_egl on software renderer output: improve transform matrix calculation render/pixel_format: introduce pixel format info table Move render/shm_format functions to render/pixel_format backend/drm: use pixel format table in renderer render/pixel_format: add XBGR8888 and ABGR8888 format render/gles2: remove depth and bpp gles2_pixel_format, use drm pixel format Stephane Chauveau (1): backend/drm: don't assume possible_crtcs has only one bit set Tadeo Kondrak (3): xdg-foreign: Make imported object inert when exported is destroyed xdg-foreign: rename finish_* functions to destroy_* text_input_v3: correct typo in enum field Tudor Brindus (21): xwayland: use wlr_log_errno instead of %m xwayland/selection: prevent fd leak on unsupported MIME type xwayland/selection: rename Wayland-facing data and helpers xwayland/selection: make `xwm_data_source_write` return 0 on failure xwayland/selection: explicitly bail if first write to Wayland fd fails xwayland/selection: simplify incremental transfer control flow xwayland/selection: extract out property requests xwayland/selection: refactor remaining incremental transfer code xwayland/selection: end incr transfer on empty prop, not next selection xwayland/selection: don't request another selection while one is pending xwayland/selection: don't leak Wayland fd if ConvertSelection fails xwayland/selection: destroy all selections on Xwayland restart xwayland/selection: make xwm_selection_finish take a wlr_xwm_selection * xwayland/selection: introduce `xwm_selection_transfer_init` xwayland/selection: make xwm_selection_init take a wlr_xwm_selection * xwayland/selection: use one X11 window per incoming transfer xwayland/selection: use one target window per selection xwayland/selection: allow simultaneous Wayland-to-X11 transfers xwayland/selection: ignore requests for anything but the newest data xwayland/selection: log when proxy window loses ownership xwayland/selection: flush connection after changing xwm selection owner fwsmit (1): examples/foreign-toplevel: Add documenation and output selection zccrs (2): Use absolute paths in include in header files render/egl: check "EGL_KHR_platform_gbm" for EGL gbm platform
-
0.12.0238d1c07 · ·
wlroots 0.12.0 Antonin Décimo (3): Fix typos Fix incorrect format parameters xwayland: free server in error path Daniel De Graaf (1): wlr_virtual_keyboard: fix fd leak Daniel Kondor (2): foreign-toplevel-management: report parent toplevel foreign toplevel: send parent event only to clients that support it Devin J. Pohly (1): drm: fix uninitialized read Drew DeVault (1): Remove xdg-shell v6 Guido Cella (1): render: Don't crash on 0 dimensions Ilia Bozhinov (9): xwayland: do not allow apps to change focus after wlroots request make sure to fail setting gamma on disabled outputs backend/wayland: destroy relative pointer when output is disconnected wayland: emit relative pointer events only for current pointer xwayland: disconnect display destroy listener even if xwayland didn't initialize xwayland: add set_geometry event backend/wayland: add touch support to the wayland backend xdg_shell: fix a typo xdg_shell: handle inert popups Isaac Freund (6): xdg-shell: split last-acked and current state layer-shell: add for_each_popup layer-shell: error on 0 dimension without anchors xdg_positioner: remove unused field wlr_drag: remove unused point_destroy field xwayland: remove unused listener Kenny Levinsen (2): session: Add libseat backend session: Add missing init to direct-freebsd Marten Ringwelski (1): backend/drm: Check if output is enabled before sending frame event Mykola Orliuk (5): backend/wayland: manage cursor for current pointer backend/wayland: factor out wlr_wl_seat backend/wayland: add error flow in create_wl_seat backend/wayland: fix input creation error handling backend/wayland: fix some keyboard/touch leaks Patrick Steinhardt (1): session: Don't refuse unprivileged creation of "direct" backend Roman Gilg (3): output-management-v1: add head identifying events output-management-v1: send head identifying information output-management-v1: send complete head state on enable change Ronan Pigott (1): virtual_pointer: remember current axis for axis events Rouven Czerwinski (2): examples: remove unnecessary gles2.h imports xwm: add loop detection for read_surface_parent Ryan Walklin (4): Implement logind session SetType method to change session type to wayland Also set XDG_SESSION_TYPE Don't set XDG_SESSION_TYPE unless logind SetType succeeds Quieten failure to set login session type Scott Moreau (2): xwm: Set _NET_WM_STATE_FOCUSED property for the focused surface foreign toplevel: Fix whitespace error Simon Ser (31): xwayland/xwm: don't insert surface in list on error xwayland/xwm: add prop count assert in xsurface_set_net_wm_state xwayland/xwm: use initializer for props in xsurface_set_wm_state render/gles2: make wlr_gles2_texture_from_* private render/gles2: keep ref to wlr_gles2_renderer in wlr_gles2_texture render/gles2: make push/pop debug functions take a wlr_renderer render/gles2: remove gles2_procs gamma-control-v1: fix use-after-free in gamma_control_handle_set_gamma examples/simple: use wlr_output_preferred_mode examples/simple: use wlr_renderer instead of GL Remove unnecessary wl_display_dispatch calls output: introduce wlr_output_event_commit output-power-management-v1: listen to output commit examples/dmabuf-capture: add extra roundtrip for wl_output listener backend/session/libseat: register log handler backend: remove check for _WAYLAND_DISPLAY backend/libinput: improve logger callback render: define EGL_NO_PLATFORM_SPECIFIC_TYPES (#2452) backend/drm: fix "a page-flip is already pending" errors on modeset xwayland: minor code style fixes xwayland: log unhandled NET_WM_STATE property changes gamma-control-v1: apply gamma LUT when output gets enabled screencopy: stop setting needs_frame flag backend/drm: export pending FB in export_dmabuf, if any output: update docs to reflect reality output: add when field to wlr_output_event_commit export-dmabuf: export DMA-BUF on output commit screencopy: perform DMA-BUF copy on output commit screencopy: send failed when copying a DMA-BUF with a region input-method: send modifiers in set_keyboard Update version to 0.12.0 Tobias Langendorf (1): xwm: add support for xwayland minimize Tudor Brindus (11): examples: use `perror` instead of `fprintf` GNU %m `printf` extension xwayland: using %m in `wlr_log` is broken, use `wlr_log_errno` instead xwayland: fix use-after-free in selection handling xwayland: introduce WLR_XWAYLAND for specifying which Xwayland to use xwayland: remove stale transfers from the same requestor xwayland: notify requestor when we fail to respond to their request xwayland: fix minor typo in debug log types/wlr_keyboard: use bitmasks for wlr_keyboard_led and wlr_keyboard_modifier enums types/wlr_output_layout: use bitmask for wlr_direction util/edges: use bitmask for wlr_edges render/dmabuf: use bitmask for wlr_dmabuf_attributes_flags Valentin (2): Use fixed size integer type Fix undefined behavior nerdopolis (1): Accommodate for CONFIG_VT=0, all TTYs are in seat0, but not all seat0s have TTYs
-
0.11.0751a21d9 · ·
wlroots 0.11.0 Aleksei Bavshin (1): xdg-shell: fix popups rendered outside of the screen Andri Yngvason (15): virtual-pointer: Add request for mapping to specific output export-dmabuf: Schedule output frame on request export-dmabuf: Keep frame->output = NULL until frame is ready render: egl: Add utility functions for saving/restoring context render: Add wlr_renderer_blit_dmabuf() protocol: screencopy: Extend to report linux-dmabuf capability screencopy: Implement copying into linux-dmabuf examples: Add screencopy-dmabuf example render: Fix blit_dmabuf() breakage due to API change backend: drm: Fix dmabuf resource leak screencopy: Use correct constant for y-inversion render: gles2: Fix y-inversion in gles2_blit_dmabuf() screencopy: Use correct dmabuf to get y-inversion flag examples: screencopy-dmabuf: Fix y-inversion render: egl: Use current display to restore NULL context Brian Ashworth (2): meson.build: update wayland requirement to 1.18 wlr_keyboard_group: introduce enter and leave David96 (1): Add wlr_surface_accepts_touch Dorota Czaplejewicz (1): text_input_v3: Note features supported by the text field Filip Sandborg (1): Fix uint32 overflow in fill_empty_gamma_table on Icelake platform Greg Depoire--Ferrer (1): tinywl: Fix wrong anchor point while resizing a window Greg V (1): xdg-shell: check for existing role before setting xdg_popup_surface_role Guido Günther (4): Add wlr-output-power-management Implement wlr-output-power-management-v1 examples: add output-power-management example client wlr_output_power_management_v1: Init output_power->link Ilia Bozhinov (2): output-management: add current_configuration_dirty examples: make output-power-management oneshot by default Isaac Freund (16): Send keyboard enter/leave on capability change Properly popluate keys array for enter on creation Send pointer enter/leave on capability change Return failure of wlr_renderer_init_wl_display() Return false on wlr_keyboard_set_keymap() failure tinywl: remove redundant create output global call Document the events of wlr_layer_surface tinywl: remove unused variables tinywl: handle request set selection layer shell: only send unmap on close if mapped Make wlr_xcursor_manager_load() return a bool layer-shell: handle serial wrapping overflow xdg-shell: handle serial wrapping overflow xdg-decoration: free old configure structs layer-shell: upgrade to v3, implement destructor layer-shell: remove unused surface list Jan Beich (2): backend/session: allow GPU enumeration on FreeBSD xcursor: also look for cursor themes under ${datadir}/icons by default Jan Staněk (1): Declare wlr_seat globals as extern John Chadwick (1): xwm: end transfers when the requestor is destroyed JonnyMako (1): backend/drm: fix missing cursor on external monitors with multi-GPU setup and nouveau Julien Olivain (1): render/egl: include EGL/eglmesaext.h only if present Kalyan Sriram (2): tinywl: fix geo_box bug in cursor resizing Don't send redundant capability updates Kenny Levinsen (3): logind: Close fd before releasing device seat: Create inert objects for missing capabilities wlr_drag: Destroy drag after releasing grabs Kirill Chibisov (1): xcursor: add xorg-x11 and cursors path to XCURSORPATH Manuel Stoeckl (2): Fix output rotation direction output: fix output transform compositions Michael Weiser (3): keyboard-shortcuts-inhibit: Implement the protocol keyboard-shortcuts-inhibit: Add client example idle-inhibit: Style and naming improvements Rabit (1): Prevent memory leak in copypaste of the screencopy example Rouven Czerwinski (4): backend/drm: add env variable to disable modifiers backend/drm: remove overzealous finish_drm_surface render: assert sane values for box functions surface: don't unset width and height in finalize Scott Anderson (8): meson: Fix protocol includes for compositor examples examples: Fix compositor-examples wlr_surface: Post error if multiple role objects created backend/drm: introduce wlr_drm_fb backend/drm: don't have fallback atomic commits backend/drm: move atomic cursor code into pageflip code backend/drm: don't allow legacy to use direct scanout Remove libcap support Scott Moreau (3): build: Add 'auto' to logind-provider combo option xwayland: Don't discard ready signals xwm: Destroy xwm on hangup or error Simon Ser (129): build: replace version with soversion render: unconditionally disable implicit X11 includes meson: fix wayland-server minimum required version util: add wlr_output_destroy_safe output: don't destroy global immediately seat: don't destroy global immediately xwayland: ignore pointer focus changes backend/wayland: rename wl_seat.c to seat.c output: remove wlr_output_impl.schedule_frame backend/wayland: fix seat caps handling Introduce wlr_client_buffer output: add adaptive_sync_enabled property backend/x11: add support for adaptive_sync_enabled backend/drm: add support for adaptive_sync_enabled xwayland: use explicit indexes when initializing atom_map xwayland: remove duplicate _NET_WM_NAME entry xwayland: remove underscore prefix from atom names output: make wlr_output_schedule_frame set output->needs_frame output: don't send a needs_frame event if already sent util/log: improve time prefix render/gles2: remove duplicated format list buffer: remove unused wlr_client_buffer fields output: add comment about needs_frame in wlr_output_schedule_frame output: replace wlr_output.damage with a damage event backend/wayland: close keymap FD Gracefully handle inert wl_output resources buffer: add destroy event buffer: add a release event buffer: add width and height output: introduce wlr_output_test output: check buffer in wlr_output_test backend: reset EGL surface after buffer swap Add wlr_output_impl.rollback render/egl: make config attribs const backend: set EGL_RENDERABLE_TYPE and EGL_SURFACE_TYPE render/gles2: only call wlr_egl_bind_display if supported render: only expose linux-dmabuf if EGL extension is supported output: fix blurred hw cursors with fractional scaling output: check for buffer size compatibility in common code backend/wayland: check scan-out buffer is compatible in output_test output: fix maybe-uninitialized warning backend/multi: add backends at end of list build: use meson.override_dependency build: use dicts instead of get_variable build: use summary instead of message output_layout: improve docs render/drm_format_set: disallow DRM_FORMAT_INVALID render/gles2: add wlr_gles2_renderer_check_ext backend/headless: use FBOs instead of pbuffers backend/headless: add wlr_headless_backend_create_with_renderer render/texture: add width and height fields render/texture: make write_pixels optional backend/drm: strip alpha channel if necessary Remove .swp file added by mistake util/log: write log importance backend/drm: make page-flip error scarier examples/dmabuf-capture: use getopt backend/multi: handle backends depending on each other properly backend/headless: handle renderer destroy backend/drm: remove wlr_drm_interface.crtc_move_cursor backend/drm: remove unused fields backend/drm: remove mode argument to crtc_pageflip backend/drm: apply gamma LUT on page-flip backend/drm: rename crtc_pageflip to crtc_commit backend/drm: remove conn_enable from interface backend/drm: remove crtc_set_cursor from interface backend/drm: GAMMA_LUT_SIZE isn't atomic backend/drm: simplify atomic commit logic backend/drm: fix crash in session_signal backend/drm: remove missing cursor plane workaround backend/drm: fix combined modeset+enable commits backend/drm: disable cursor in dealloc_crtc backend/drm: print error in set_plane_props backend/drm: fix segfault in drm_crtc_page_flip output: make wlr_output_set_gamma atomic backend/drm: fix atomic commits when the GAMMA_LUT prop is missing Fix -Wreturn-type warnings render/egl: introduce wlr_egl_unset_current backend/drm: fix current EGL context on multi-GPU backend/drm: add missing wlr_egl_unset_current xwayland: split server xwayland: add option to disable WM render/egl: unset current context after swapping buffers backend/drm: rollback atomic blobs backend/drm: refuse to enable an output without a mode backend/drm: remove drm_connector_set_custom_mode backend/drm: remove enable_drm_connector backend/drm: make drm_connector_set_mode take a wlr_drm_connector backend/drm: nuke retry_pageflip backend/drm: introduce pending and current CRTC state backend/drm: don't set cursor if off-screen backend/drm: fix missing crtc->cursor NULL check Add comments for missing tablet tool entries backend/drm: rollback pending CRTC state on test commit backend/drm: make adaptive_sync atomic backend/drm: commit/rollback FBs in drm_crtc_commit backend/drm: drop extra wlr_output_update_enabled call backend/drm: always perform a CRTC commit in drm_connector_commit backend/wayland: fix spurious eglSwapBuffers failures render: stop making EGL context current in wlr_egl_init backend/drm: fix black screens when enabling output render: choose DMA-BUF texture target via eglQueryDmaBufModifiersEXT contributing: resource destroy handlers need to cleanup pointers contributing: add note about events that destroy objects backend/drm: fix stack overflow in dealloc_crtc buffer: document wlr_buffer_get_dmabuf DMA-BUF lifetime output: document wlr_output_export_dmabuf render/egl: explicit client extension handling examples/screencopy-dmabuf: call strncpy with maxlen - 1 examples/fullscreen-shell: stop advertising linux-dmabuf unconditonally render/gles2: use .x/.y instead of .s/.t box: add wlr_fbox util/region: add wlr_region_scale_xy render: add wlr_render_subtexture_with_matrix surface: add wlr_surface_state.viewport surface: introduce wlr_surface_get_buffer_source_box viewporter: new protocol implementation surface: ignore viewport src rect on NULL buffer render/egl: print error name output: rename impl->rollback to rollback_render output: make rollback_render mandatory output: fix dangling renderer context after wlr_output_preferred_read_format backend/noop: add missing rollback_render output impl examples/pointer: fix wlr_renderer_end call order output: add backend docs backend/drm: fix DPMS on legacy interface backend/drm: fix typo in drm_surface_make_current arg backend/drm: check drm_surface_make_current return value Update version to 0.11.0 Simon Zeni (1): render/gles2: use glGetAttribLocation instead of hardcoded indices Thomas Hebb (3): wlr_seat: Declare functions in the same order for pointer, keyboard, and touch wlr_seat: Clarify wording of non-grab-respecting function comments Allow keyboard and pointer grabs to hook clear_focus() Tudor Brindus (19): backend/libinput: correctly populate x/y fields on tablet proximity in input/tablet: populate tool tip event position input/tablet: fix up updated axes after rotation input/tablet: clear focused surface on surface destroy wlr/types: use bitshifts for tablet axes enum backend/wayland: emit tablet tool axis events to the axis handler input/keyboard: expose keymap matching helper input/pointer: notify compositor when constraint region changes tablet: pass motion events to implicitly grabbed surface tablet: expose wlr_tablet_tool_v2_has_implicit_grab function util/log: use bright black rather than black for WLR_DEBUG xwayland: send focus change event unconditionally xwayland: add error-checking to `server_start_lazy` backend/wayland: scale tablet tool position into [0, 1] range util: fix and move `get_current_time_msec` into a util file util/time: de-duplicate `timespec_to_msec` util/time: move `timespec_sub` to time utilities input/keyboard: send modifiers on first keyboard enter input/pointer: add wlr_seat_pointer_wrap Tudor Roman (1): seat: add selection event docs Will Daly (1): Fix error when reconnecting external display j-n-f (1): examples: fix improper use of `free` r-c-f (1): seat: add check for NULL keyboard xdavidwu (3): virtual-keyboard: add wlr_input_device_get_virtual_keyboard input-method: implement keyboard grabs examples/input-method-keyboard-grab: new example
-
0.10.10c7c5624 · ·
wlroots 0.10.1 This is a bugfix release for wlroots 0.10.0. Aleksei Bavshin (1): xdg-shell: fix popups rendered outside of the screen Scott Anderson (2): meson: Fix protocol includes for compositor examples examples: Fix compositor-examples Simon Ser (2): xwayland: ignore pointer focus changes Update version to 0.10.1
-
0.10.057ffb35d · ·
wlroots 0.10.0 Drew DeVault (1): Drop RDP backend Jan Staněk (1): Honor the `examples` meson setting Jason (1): Allow WLR_RDP_PORT to be any valid TCP/UDP port number Scott Anderson (1): Bump meson version to 0.51.2 Simon Ser (9): backend/wayland: listen to wl_buffer.release events backend/wayland: handle display errors more gracefully render/egl: remove SURFACELESS_MESA special case render/gles2: unbind textures after use docs: remove rootston-specific env vars docs: establish one section per backend docs: document XDG_SESSION_ID backend/drm: prevent outputs from being destroyed on commit keyboard-group: two NULL keymaps are equal xdavidwu (1): text-input: fix missing destroy signal init
-
0.9.1a2cbb4e4 · ·
wlroots 0.9.1 Andri Yngvason (1): virtual-pointer: Actually use the value passed to axis_discrete Ilia Bozhinov (1): xwm: allow applications to change focus between their own surfaces Simon Ser (1): backend/wayland: fix frame callback not registered
-
0.9.01c5ca793 · ·
wlroots 0.9.0 Alynx Zhou (1): Skip assign when sub_x or sub_y is NULL in wlr_surface_surface_at Andri Yngvason (3): output: Add commit sequence number protocol/screencopy: Add damage reporting screencopy: Implement damage reporting Brian Ashworth (2): Introduce wlr_keyboard_group wlr_keyboard_group: fix mem leak in refresh_state Danilo Spinella (1): Add new define EGL_NO_X11 for newer mesa library Dorota Czaplejewicz (1): virtual_keyboard: Accept keycode 0 Drew DeVault (1): Introduce wlr_renderer_get_egl Ferdinand Bachmann (1): Add missing include required by mesa and libglvnd change György Kurucz (1): Fix heap-use-after-free in wlr_send_tablet_v2_tablet_pad_leave Ilia Bozhinov (1): wlr_box: properly calculate closest point for non-positive area boxes Ivan Molodetskikh (1): output: add block_idle_frame Jan Beich (1): examples: set mode when creating shm object Jason (2): Amend typos Amend typo Josef Gajdusek (1): virtual-pointer: Add support for the wlr-virtual-pointer-unstable-v1 Manuel Stoeckl (1): output: fix cursor wl_surface.{enter,leave} tracking Ronan Pigott (2): session/logind: support CanGraphical property render/gles2: do not set GL_TEXTURE_MAG_FILTER Rouven Czerwinski (1): backend/drm: print preferred mode Scott Anderson (8): backend/x11: Give X11 a real rendering loop session/logind: Clean up add_signal_matches render/gles: Simplify textures a bit backend: Do not attempt DRM on X11/WL failure backend/x11: Drop required present version backend/x11: Revert usage of present extension meson: Various improvements meson: Remove tag generation Scott Moreau (3): xwayland: Expose configure request mask build: Pass library as first argument to pkgconfig.generate() xwayland: Clean up if Xwayland fails to start Simon Ser (51): build: workaround for meson disabler object not working with if not render/egl: support formats with zero modifiers backend/drm: use modifiers for our GBM buffers build: simplify by using disabler deps backend/wayland: add support for direct scan-out render/gles2: don't unset the current EGL surface when destroying texture protocol: sync layer-shell with upstream backend/drm: track gbm_bo during direct scan-out render/egl: prevent use-after-free when destroying current surface backend/drm: retry without modifiers for the primary plane backend/drm: add support for custom modes output-management-v1: add assertion as a safety net render: remove EGL includes from wlr_texture.h render/gles2: provide public API to access GL texture backend/wayland: add support for relative-pointer-unstable-v1 backend/wayland: expose remote objects output: add wlr_output_event_present.commit_seq Add -Wmissing-prototypes output: set wlr_output.commit_seq before firing the commit event output: fix off-by-one wlr_output_event_present.commit_seq presentation-time: make API more flexible presentation-time: add helper for common case backend/wayland: add support for presentation-time render: remove return in wlr_texture_get_size Simplify globals implementation by removing destructors Revert "output: add block_idle_frame" keyboard: emit key events without keymap backend/drm, backend/libinput: listen to session destroy backend/drm: fix segfault in init_drm_surface backend/drm: add BenQ to manufacturer list buffer: improve error handling surface: don't unref the current buffer on failure output: fix wlr_output_preferred_mode fallback Refactor EGL/GL API loading ci: add xorgproto dep to Arch build render: fix EGL extensions not loaded Revert "ci: add xorgproto dep to Arch build" ci: add a build run with all features disabled output: add description xdg-output-v1: use wlr_output.description output-management-v1: use wlr_output.description output: re-introduce atomic mode, enabled, scale and transform backend/drm: modeset before enabling an output output: clear pending bit if pending == current output: refuse to commit a buffer or modeset a disabled output tinywl: enable and commit output when modesetting xdg-shell: fix inert xdg_surface handling xdg-shell: make wlr_xdg_surface_from_resource reject NULL output: only advertise current mode backend/drm: don't modeset with a NULL mode after TTY switch render: guard rendering operations between begin() and end() Timidger (2): layer_shell: set layer of existing surface Use layer shell v2 Ting-Wei Lan (1): backend/session/freebsd: Fix the way to get TTY path myfreeweb (1): Send tablet tool frame on proximity_out n3rdopolis (2): Update environment variable documentation to include more backends note libinput as well