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