Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

wlroots 0.13.0

Compare
Choose a tag to compare
@emersion emersion released this 07 Apr 19:27
· 524 commits to master since this release
0.13.0

wlroots 0.13.0 includes the following breaking changes.

Breaking changes for compositors

These changes can affect most compositors.

  • Replace wlr_key_state with wl_keyboard_key_state (#2446):
    enum wlr_key_state has been replaced with enum wl_keyboard_key_state
  • Use uint32_t in wlr_renderer_begin signature (#2433)
  • Remove unneeded includes from wlr_input_device.h (#2470)
  • Renderer v6, incremental version (#2240): some implicit assumptions about
    wlr_renderer's EGL context no longer hold true. Compositors not using EGL
    directly shouldn't be affected.
    • wlroots' framebuffer no longer is the EGL default framebuffer
    • wlroots' framebuffer no longer has a depth attachment
  • Remove wlr_create_renderer_func_t (#2561)
    • wlr_backend_autocreate, wlr_drm_backend_create, wlr_headless_backend_create, wlr_wl_backend_create, wlr_x11_backend_create no longer take a wlr_renderer_create_func_t parameter
    • The wlr_renderer_create_func_t type has been removed
  • backend/noop: listen to display destroy and destroy the backend (#2583):
    the noop backend should no longer be manually destroyed after the wl_display
  • xdg shell: remove wlr_xdg_surface_for_each_popup (#2610)
    wlr_xdg_surface_for_each_popup has been removed, use
    wlr_xdg_surface_for_each_popup_surface instead.
  • layer shell: rename popup iterator for consistency (#2617):
    wlr_layer_surface_v1_for_each_popup has been renamed to
    wlr_layer_surface_v1_for_each_popup_surface.
  • Keyboard interactivity options (#2555):
    wlr_layer_surface_v1_state.keyboard_interactivity has now the type
    enum zwlr_layer_surface_v1_keyboard_interactivity to reflect protocol changes.
  • output: remove scale/transform events (#2631): the scale and transform
    output events have been removed, compositors should use the commit event instead.
  • output: send commit event after pending state is cleared (#2630):
    compositors can no longer read the to-be-committed state from wlr_output.pending in an output commit event handler. Instead, use the current state and wlr_output_event_commit.
  • render/wlr_texture: clamp texture coordinates to edge by default (#2476):
    the GLES2 renderer no longer wraps textures with GL_REPEAT. If you want to repeat a texture, manually change wlroots' default via glTexParameteri.
  • text_input_v3: correct typo in enum field (#2735): WLR_TEXT_INPUT_v3_FEATURE_CONTENT_TYPE has been renamed to WLR_TEXT_INPUT_V3_FEATURE_CONTENT_TYPE.
  • Stop using wl_shm_format (#2744): the renderer functions take DRM_FORMAT_* values instead of WL_SHM_FORMAT_*. Make sure you don't have any remaining WL_SHM_FORMAT_* enum values in your compositor.
    • wlr_renderer_read_pixels now takes a DRM format code instead of an enum wl_shm_format
    • wlr_renderer_get_shm_texture_formats now returns DRM format codes instead of an enum wl_shm_format
    • wlr_renderer_read_pixels now takes a DRM format code instead of an enum wl_shm_format
    • wlr_output_preferred_read_format now returns a DRM format code instead of an enum wl_shm_format

Breaking changes for custom backends and renderers

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

  • render: add wlr_renderer_get_dmabuf_render_formats (#2483)
    • wlr_egl_get_dmabuf_formats has been renamed to wlr_egl_get_dmabuf_texture_formats
    • wlr_renderer_get_formats has been renamed to wlr_renderer_get_shm_texture_formats
    • wlr_renderer_get_dmabuf_formats has been renamed to wlr_renderer_get_dmabuf_texture_formats
    • wlr_renderer_format_supported has been removed (instead, use wlr_renderer_get_shm_texture_formats)
  • backend/session: misc. refactoring, replace CanGraphical with udev (#2465)
    • wlr_drm_backend_create takes a wlr_device instead of a DRM FD
    • wlr_device.signal has been replaced by wlr_device.events.change
    • wlr_session.session_signal has been replaced by wlr_session.events.active
    • wlr_session_open_file and wlr_session_close_file now take a wlr_device instead of a FD
    • wlr_session_find_gpus now fills an array of wlr_device pointers instead of an array of FDs
  • backend/session: allow wlr_session_find_gpus to return an error (#2578):
    wlr_session_find_gpus now returns a ssize_t instead of a size_t
  • render/egl: remove unused features, introduce create/destroy (#2623)
    • The EGLint visual_id parameter of wlr_egl_init has been removed.
    • wlr_egl_swap_buffers has been removed.
    • wlr_egl_init and wlr_egl_finish have been replaced with wlr_egl_create and wlr_egl_destroy.
    • wlr_egl_make_current no longer takes the arguments EGLSurface surface, int *buffer_age.
  • Remove wlr_egl from backends (#2602): wlr_renderer_autocreate no
    longer takes a struct wlr_egl * as parameter.
  • Drop EGL from wlr_renderer_autocreate (#2639): wlr_renderer_autocreate
    no longer takes the arguments EGLenum platform, void *remote_display.
    Instead it takes a struct wlr_backend *.
  • render/egl: remove config_attribs, wlr_egl.config and wlr_egl_{create,destroy}_surface (#2666)
  • region: make wlr_region_create private (#2662)
  • surface: make wlr_surface_create private (#2814)
  • Add static+const qualifiers (#2720): wlr_tablet.impl is now const
  • Update output transform matrix calculation (#2770): the projection has been moved from wlr_output.transform_matrix to the GLES2 renderer. Compositors using wlr_output.transform_matrix only with the GLES2 renderer don't need an update.
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 (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