Download Latest Version 0.14.1 source code.tar.gz (505.9 kB)
Email in envelope

Get an email when there's a new version of wlroots

Home / 0.14.0
Name Modified Size InfoDownloads / Week
Parent folder
wlroots-0.14.0.tar.gz 2021-06-23 505.5 kB
wlroots-0.14.0.tar.gz.sig 2021-06-23 566 Bytes
0.14.0 source code.tar.gz 2021-06-23 505.5 kB
0.14.0 source code.zip 2021-06-23 702.7 kB
README.md 2021-06-23 15.3 kB
Totals: 5 Items   1.7 MB 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 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 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

Changes for packagers

  • session: Remove logind backend (#2786) and session: Remove direct and noop backends (#2839): wlroots now depends on libseat for logind support (instead of depending on systemd/elogind) and for daemon-less operation.
  • util/uuid: replace with util/token, remove libuuid (#2833): wlroots no longer depends on libuuid.
  • render: make GLES2 renderer optional (ed1924800de905f5462c8cc6e36fbc60b69d3030): GLES2 is now an optional dependency (note, many compositors still depend on GLES2)

Breaking changes for compositors

These changes can affect most compositors.

  • render: drop wlr_renderer_blit_dmabuf (#2789): this functionality can be replaced with wlr_renderer_bind_buffer
  • render: remove wlr_texture_to_dmabuf (#2806): instead, use wlr_buffer_get_dmabuf
  • render: drop support for ellipses (#2808): instead, use rects or roll your own OpenGL shaders
  • Drop gtk-primary-selection support (#2460): this protocol has been superseded by the standard primary-selection protocol
  • Remove WLR_HAS_XCB_ERRORS (#2825)
  • session: Remove logind backend (#2786): libseat is now required for logind. WLR_HAS_SYSTEMD and WLR_HAS_ELOGIND have been removed.
  • session: Remove direct and noop backends (#2839): libseat is now required unconditionally. WLR_HAS_LIBSEAT has been removed. wlr/session/interface.h has been removed.
  • util/uuid: replace with util/token, remove libuuid (#2833): WLR_HAS_XDG_FOREIGN has been removed, because xdg-foreign support is now always enabled.
  • render: remove wlr_texture_get_size (#2922): compositors can just access the wlr_texture.width and height fields directly.
  • surface: allow placing subsurfaces below parent (#2948): wlr_surface.subsurfaces has been split into two lists: subsurfaces_above and subsurfaces_below.
  • matrix: deprecate wlr_matrix_projection (#2846)

Breaking changes for custom backends and renderers

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

  • render: rename get_dmabuf_render_formats into get_render_formats (#2858)
  • linux-dmabuf-v1: split params and buffer (#2848): wlr_dmabuf_v1_buffer_from_params_resource and wlr_linux_dmabuf_v1_from_resource have been removed.
  • buffer: add format param to get_data_ptr (#2894).
  • wlr_allocator_autocreate (#2884): renderers must implement the new get_render_buffer_caps function.
  • Cache and re-use DMA-BUF textures (#2851): renderers must now implement the new wlr_renderer_impl.texture_from_buffer function to import client DMA-BUFs.
  • render/pixman: avoid copy when creating textures (#2892): renderers must now implement the new wlr_renderer_impl.texture_from_buffer function to import client shared memory buffers.
Source: README.md, updated 2021-06-23