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
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEENP+VJs/vDpejQOLkD9574OiPXkgFAmBuBqAACgkQD9574OiP
XkgklxAArPU0hgPaFR8ApxQTJ4Ck2f+nflYdytLHJeWCJrYatuf9sspaGxjMTDM/
b77nha3N7WTO1uc5/Q7E4Plpeb0TBkEsbD3Yz4txMdC3FIONBdbq1EY+2/4JbPPY
PNJAyJF60gU68zZbcWCAvIp+t11jMpt5AHJEdAeZd4jk5q6zMhxcIa4i2EfOMDgB
QvkyC1XhkTV1QYN4ElKCFvrARpA8wdoqT+zOR9PwJ85SGanzPPVBDDqjE3D9Eblt
Ly4m/Wo2pHBB72mnxZtctOCKIAUePSIMf+PEwpQuB2jYBnlIG6Rp1TXNhnzMccOp
kXwAEbT5MdbOPrTw4vqRjDq3iOpl8XkODyA66JP0U88bDcI7WXaAo6STiqjXjIJA
VzljzCrVzhLiSMkSU794JJ+vADrFG/NltH0cx2a8qdLllBjaly1PtbyJpDoJk0Hw
vx4Bewr/a3LTXps6JeVUj9XrtpmC6EECmUAm9nj7NmMpqNOz7YA6MYqfBkVJRDWn
PUeY5AET9WCRsmx2DwTZXrOPL7imUhH7D4JRuwxC2VZBwJIaShdeZ7TD5YwSq4x3
nv51c1iIpH5dgk4Iys2EoQg1h+TQ+kuX6iSsHZDelY3XiO1h3e8l8pRvNP06lVJQ
B/bdQeelHej7TdhtEZxBYfs1Av+lrzWzJmSGzZSPit/OIGZg4GM=
=jB4s
-----END PGP SIGNATURE-----
Merge tag '0.13.0' into color-profiles
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
|
||
|---|---|---|
| .builds | ||
| backend | ||
| docs | ||
| examples | ||
| include | ||
| protocol | ||
| render | ||
| tinywl | ||
| types | ||
| util | ||
| xcursor | ||
| xwayland | ||
| .editorconfig | ||
| .gitignore | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| meson.build | ||
| meson_options.txt | ||
| README.md | ||
| wlroots.syms | ||
wlroots
Pluggable, composable, unopinionated modules for building a Wayland compositor; or about 50,000 lines of code you were going to write anyway.
- wlroots provides backends that abstract the underlying display and input hardware, including KMS/DRM, libinput, Wayland, X11, and headless backends, plus any custom backends you choose to write, which can all be created or destroyed at runtime and used in concert with each other.
- wlroots provides unopinionated, mostly standalone implementations of many Wayland interfaces, both from wayland.xml and various protocol extensions. We also promote the standardization of portable extensions across many compositors.
- wlroots provides several powerful, standalone, and optional tools that implement components common to many compositors, such as the arrangement of outputs in physical space.
- wlroots provides an Xwayland abstraction that allows you to have excellent Xwayland support without worrying about writing your own X11 window manager on top of writing your compositor.
- wlroots provides a renderer abstraction that simple compositors can use to avoid writing GL code directly, but which steps out of the way when your needs demand custom rendering code.
wlroots implements a huge variety of Wayland compositor features and implements them right, so you can focus on the features that make your compositor unique. By using wlroots, you get high performance, excellent hardware compatibility, broad support for many wayland interfaces, and comfortable development tools - or any subset of these features you like, because all of them work independently of one another and freely compose with anything you want to implement yourself.
Check out our wiki to get started with wlroots.
wlroots is developed under the direction of the sway project. A variety of wrapper libraries are available for using it with your favorite programming language.
Building
Install dependencies:
- meson
- wayland
- wayland-protocols
- EGL
- GLESv2
- libdrm
- GBM
- libinput
- xkbcommon
- udev
- pixman
- libseat (optional, for seatd support)
- systemd (optional, for logind support)
- elogind (optional, for logind support on systems without systemd)
- libuuid (optional, for xdg-foreign support)
If you choose to enable X11 support:
- xwayland (build-time only, optional at runtime)
- xcb
- xcb-composite
- xcb-xfixes
- xcb-xinput
- xcb-icccm
- xcb-image
- xcb-render
- xcb-errors (optional, for improved error reporting)
Run these commands:
meson build/
ninja -C build/
Install like so:
sudo ninja -C build/ install
Contributing
See CONTRIBUTING.md.