swaywm / wlroots

A modular Wayland compositor library
https://gitlab.freedesktop.org/wlroots/wlroots/
MIT License
2.15k stars 343 forks source link

wlroots 0.13.0 #2778

Closed emersion closed 3 years ago

emersion commented 3 years ago

Planning for the next release.

https://github.com/swaywm/wlroots/milestone/5

emersion commented 3 years ago

Provisional release notes below.

wlroots 0.13.0 includes the following breaking changes.

Breaking changes for compositors

These changes can affect most compositors.

Breaking changes for custom backends and renderers

These changes are unlikely to affect compositors that don't have a custom backend or renderer.

Full changelog ``` 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 (4): 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 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 (256): 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 Simon Zeni (10): 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 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 ```
emersion commented 3 years ago

https://github.com/swaywm/wlroots/releases/tag/0.13.0