A modular Wayland compositor library
Release highlights:
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
These changes can affect most compositors.
wlr_renderer_blit_dmabuf
(#2789): this functionality can be replaced with wlr_renderer_bind_buffer
wlr_texture_to_dmabuf
(#2806): instead, use wlr_buffer_get_dmabuf
WLR_HAS_XCB_ERRORS
(#2825)WLR_HAS_SYSTEMD
and WLR_HAS_ELOGIND
have been removed.WLR_HAS_LIBSEAT
has been removed. wlr/session/interface.h
has been removed.WLR_HAS_XDG_FOREIGN
has been removed, because xdg-foreign support is now always enabled.wlr_texture_get_size
(#2922): compositors can just access the wlr_texture.width
and height
fields directly.wlr_surface.subsurfaces
has been split into two lists: subsurfaces_above
and subsurfaces_below
.wlr_matrix_projection
(#2846)These changes are unlikely to affect compositors that don't have a custom backend or renderer.
get_dmabuf_render_formats
into get_render_formats
(#2858)wlr_dmabuf_v1_buffer_from_params_resource
and wlr_linux_dmabuf_v1_from_resource
have been removed.get_data_ptr
(#2894).wlr_allocator_autocreate
(#2884): renderers must implement the new get_render_buffer_caps
function.wlr_renderer_impl.texture_from_buffer
function to import client DMA-BUFs.wlr_renderer_impl.texture_from_buffer
function to import client shared memory buffers.wlroots 0.13.0 includes the following breaking changes.
These changes can affect most compositors.
enum wlr_key_state
has been replaced with enum wl_keyboard_key_state
uint32_t
in wlr_renderer_begin
signature (#2433)wlr_input_device.h
(#2470)wlr_renderer
's EGL context no longer hold true. Compositors not using EGL
directly shouldn't be affected.
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
parameterwlr_renderer_create_func_t
type has been removedwl_display
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.wlr_layer_surface_v1_for_each_popup
has been renamed to
wlr_layer_surface_v1_for_each_popup_surface
.wlr_layer_surface_v1_state.keyboard_interactivity
has now the type
enum zwlr_layer_surface_v1_keyboard_interactivity
to reflect protocol changes.scale
and transform
output events have been removed, compositors should use the commit
event instead.wlr_output.pending
in an output commit
event handler. Instead, use the current state and wlr_output_event_commit
.GL_REPEAT
. If you want to repeat a texture, manually change wlroots' default via glTexParameteri
.WLR_TEXT_INPUT_v3_FEATURE_CONTENT_TYPE
has been renamed to WLR_TEXT_INPUT_V3_FEATURE_CONTENT_TYPE
.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
These changes are unlikely to affect compositors that don't have a custom backend or renderer.
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
)wlr_drm_backend_create
takes a wlr_device
instead of a DRM FDwlr_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 FDwlr_session_find_gpus
now fills an array of wlr_device
pointers instead of an array of FDswlr_session_find_gpus
now returns a ssize_t
instead of a size_t
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
.wlr_egl
from backends (#2602): wlr_renderer_autocreate
no
longer takes a struct wlr_egl *
as parameter.wlr_renderer_autocreate
no longer takes the arguments EGLenum platform, void *remote_display
.
Instead it takes a struct wlr_backend *
.config_attribs
, wlr_egl.config
and wlr_egl_{create,destroy}_surface
(#2666)wlr_tablet.impl
is now const
wlr_output.transform_matrix
to the GLES2 renderer. Compositors using wlr_output.transform_matrix
only with the GLES2 renderer don't need an update.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
Note: the PGP signing key has changed to 34FF9526CFEF0E97A340E2E40FDE7BE0E88F5E48.
wlroots 0.12.0 includes the following breaking changes:
The wlr_gles2_texture_from_*
family of functions are no longer public API.
wlr_xdg_shell_v6
has been dropped and is superseded by wlr_xdg_shell
.
For backends: wlr_output_impl.set_cursor
now takes a float scale
instead of an int32_t
.
The wlr_output.events.commit
event now has a data argument of type struct wlr_output_event_commit *
instead of struct wlr_output *
.
Antonin Décimo (3):
Fix typos
Fix incorrect format parameters
xwayland: free server in error path
Daniel De Graaf (1):
wlr_virtual_keyboard: fix fd leak
Daniel Kondor (2):
foreign-toplevel-management: report parent toplevel
foreign toplevel: send parent event only to clients that support it
Devin J. Pohly (1):
drm: fix uninitialized read
Drew DeVault (1):
Remove xdg-shell v6
Guido Cella (1):
render: Don't crash on 0 dimensions
Ilia Bozhinov (9):
xwayland: do not allow apps to change focus after wlroots request
make sure to fail setting gamma on disabled outputs
backend/wayland: destroy relative pointer when output is disconnected
wayland: emit relative pointer events only for current pointer
xwayland: disconnect display destroy listener even if xwayland didn't initialize
xwayland: add set_geometry event
backend/wayland: add touch support to the wayland backend
xdg_shell: fix a typo
xdg_shell: handle inert popups
Isaac Freund (6):
xdg-shell: split last-acked and current state
layer-shell: add for_each_popup
layer-shell: error on 0 dimension without anchors
xdg_positioner: remove unused field
wlr_drag: remove unused point_destroy field
xwayland: remove unused listener
Kenny Levinsen (2):
session: Add libseat backend
session: Add missing init to direct-freebsd
Marten Ringwelski (1):
backend/drm: Check if output is enabled before sending frame event
Mykola Orliuk (5):
backend/wayland: manage cursor for current pointer
backend/wayland: factor out wlr_wl_seat
backend/wayland: add error flow in create_wl_seat
backend/wayland: fix input creation error handling
backend/wayland: fix some keyboard/touch leaks
Patrick Steinhardt (1):
session: Don't refuse unprivileged creation of "direct" backend
Roman Gilg (3):
output-management-v1: add head identifying events
output-management-v1: send head identifying information
output-management-v1: send complete head state on enable change
Ronan Pigott (1):
virtual_pointer: remember current axis for axis events
Rouven Czerwinski (2):
examples: remove unnecessary gles2.h imports
xwm: add loop detection for read_surface_parent
Ryan Walklin (4):
Implement logind session SetType method to change session type to wayland
Also set XDG_SESSION_TYPE
Don't set XDG_SESSION_TYPE unless logind SetType succeeds
Quieten failure to set login session type
Scott Moreau (2):
xwm: Set _NET_WM_STATE_FOCUSED property for the focused surface
foreign toplevel: Fix whitespace error
Simon Ser (31):
xwayland/xwm: don't insert surface in list on error
xwayland/xwm: add prop count assert in xsurface_set_net_wm_state
xwayland/xwm: use initializer for props in xsurface_set_wm_state
render/gles2: make wlr_gles2_texture_from_* private
render/gles2: keep ref to wlr_gles2_renderer in wlr_gles2_texture
render/gles2: make push/pop debug functions take a wlr_renderer
render/gles2: remove gles2_procs
gamma-control-v1: fix use-after-free in gamma_control_handle_set_gamma
examples/simple: use wlr_output_preferred_mode
examples/simple: use wlr_renderer instead of GL
Remove unnecessary wl_display_dispatch calls
output: introduce wlr_output_event_commit
output-power-management-v1: listen to output commit
examples/dmabuf-capture: add extra roundtrip for wl_output listener
backend/session/libseat: register log handler
backend: remove check for _WAYLAND_DISPLAY
backend/libinput: improve logger callback
render: define EGL_NO_PLATFORM_SPECIFIC_TYPES (#2452)
backend/drm: fix "a page-flip is already pending" errors on modeset
xwayland: minor code style fixes
xwayland: log unhandled NET_WM_STATE property changes
gamma-control-v1: apply gamma LUT when output gets enabled
screencopy: stop setting needs_frame flag
backend/drm: export pending FB in export_dmabuf, if any
output: update docs to reflect reality
output: add when field to wlr_output_event_commit
export-dmabuf: export DMA-BUF on output commit
screencopy: perform DMA-BUF copy on output commit
screencopy: send failed when copying a DMA-BUF with a region
input-method: send modifiers in set_keyboard
Update version to 0.12.0
Tobias Langendorf (1):
xwm: add support for xwayland minimize
Tudor Brindus (11):
examples: use `perror` instead of `fprintf` GNU %m `printf` extension
xwayland: using %m in `wlr_log` is broken, use `wlr_log_errno` instead
xwayland: fix use-after-free in selection handling
xwayland: introduce WLR_XWAYLAND for specifying which Xwayland to use
xwayland: remove stale transfers from the same requestor
xwayland: notify requestor when we fail to respond to their request
xwayland: fix minor typo in debug log
types/wlr_keyboard: use bitmasks for wlr_keyboard_led and wlr_keyboard_modifier enums
types/wlr_output_layout: use bitmask for wlr_direction
util/edges: use bitmask for wlr_edges
render/dmabuf: use bitmask for wlr_dmabuf_attributes_flags
Valentin (2):
Use fixed size integer type
Fix undefined behavior
nerdopolis (1):
Accommodate for CONFIG_VT=0, all TTYs are in seat0, but not all seat0s have TTYs
wlroots 0.11.0 includes the following breaking changes:
WLR_VERSION_API_*
definitions are dropped.
Output transformations have been aligned with the Wayland protocol's definition.
wlr_drm_connector_add_mode
now returns the new mode instead of a bool
.
Compositors that don't directly use wlr_buffer
shouldn't need an update. For
compositors which use it directly:
wlr_buffer
has been renamed to wlr_client_buffer
wlr_buffer_{ref,unref,get_dmabuf}
and wlr_output_attach_buffer
still take
a wlr_buffer
, compositors need to use &wlr_client_buffer->base
wlr_buffer_create
and wlr_buffer_apply_damage
have been renamed to
wlr_client_buffer_create
and wlr_client_buffer_apply_damage
wlr_buffer_get_resource_size
has been renamed to
wlr_resource_get_buffer_size
wlr_buffer
to read it later
should call wlr_buffer_lock
and wlr_buffer_unlock
instead of
wlr_buffer_ref
and wlr_buffer_unref
. Same applies to backends.wlr_client_buffer_create
has been renamed to wlr_client_buffer_import
.
Callers need to wlr_buffer_unlock
the resulting buffer once they're done
with it.wlr_buffer_drop
instead of
wlr_buffer_unref
.For backends: wlr_output_impl.schedule_frame
has been removed.
wlr_output.damage
is removed, listen to wlr_output.events.damage
instead.
Renderer implementations need to be updated, render_texture_with_matrix
has
been replaced with render_subtexture_with_matrix
which allows specifying a
source rectangle.
wlr_output_attach_buffer
doesn't return a bool
anymore.
The checks previously performed in this function are now performed in
wlr_output_commit
and the new wlr_output_test
function.wlr_output_impl.attach_buffer
is gone, buffer checks now need
to be performed in commit
. A new test
function has been added.For backends: wlr_output_impl.set_cursor
now takes a float scale
instead of
an int32_t
.
For renderers:
wlr_texture_init
now takes the size of the texturewlr_texture_impl.get_size
has been removedwlr_xwayland.display_name
is now a const char *
field. Most compositors
should still be able to use it like before. Server-specific fields have been
moved from wlr_xwayland
to wlr_xwayland_server
.
wlr_xcursor_manager_load
now returns a bool. Compositors that check the
return value need to invert their check.
wlr_output_set_gamma
is now double-buffered and applied on the next output
commitwlr_output_impl.set_gamma
is gone. Backends now need to read the pending
output state on commit instead.The wlr_seat_*_enter
family of functions used to segfault when a NULL
surface was passed under some circumstances, they now assert that the surface
isn't NULL.
wlr_output_enable_adaptive_sync
must now be followed by wlr_output_commit
to apply the change.
wlr_egl_create_image_from_dmabuf
now takes an additional external_only
argument.
For backends: wlr_output_impl.rollback
has been renamed to rollback_render
and now needs to unconditionally unset the renderer context. It'll only be
called if attach_render
has previously been called.
wlr_layer_shell_v1.surfaces
has been removed.
Aleksei Bavshin (1):
xdg-shell: fix popups rendered outside of the screen
Andri Yngvason (15):
virtual-pointer: Add request for mapping to specific output
export-dmabuf: Schedule output frame on request
export-dmabuf: Keep frame->output = NULL until frame is ready
render: egl: Add utility functions for saving/restoring context
render: Add wlr_renderer_blit_dmabuf()
protocol: screencopy: Extend to report linux-dmabuf capability
screencopy: Implement copying into linux-dmabuf
examples: Add screencopy-dmabuf example
render: Fix blit_dmabuf() breakage due to API change
backend: drm: Fix dmabuf resource leak
screencopy: Use correct constant for y-inversion
render: gles2: Fix y-inversion in gles2_blit_dmabuf()
screencopy: Use correct dmabuf to get y-inversion flag
examples: screencopy-dmabuf: Fix y-inversion
render: egl: Use current display to restore NULL context
Brian Ashworth (2):
meson.build: update wayland requirement to 1.18
wlr_keyboard_group: introduce enter and leave
David96 (1):
Add wlr_surface_accepts_touch
Dorota Czaplejewicz (1):
text_input_v3: Note features supported by the text field
Filip Sandborg (1):
Fix uint32 overflow in fill_empty_gamma_table on Icelake platform
Greg Depoire--Ferrer (1):
tinywl: Fix wrong anchor point while resizing a window
Greg V (1):
xdg-shell: check for existing role before setting xdg_popup_surface_role
Guido Günther (4):
Add wlr-output-power-management
Implement wlr-output-power-management-v1
examples: add output-power-management example client
wlr_output_power_management_v1: Init output_power->link
Ilia Bozhinov (2):
output-management: add current_configuration_dirty
examples: make output-power-management oneshot by default
Isaac Freund (16):
Send keyboard enter/leave on capability change
Properly popluate keys array for enter on creation
Send pointer enter/leave on capability change
Return failure of wlr_renderer_init_wl_display()
Return false on wlr_keyboard_set_keymap() failure
tinywl: remove redundant create output global call
Document the events of wlr_layer_surface
tinywl: remove unused variables
tinywl: handle request set selection
layer shell: only send unmap on close if mapped
Make wlr_xcursor_manager_load() return a bool
layer-shell: handle serial wrapping overflow
xdg-shell: handle serial wrapping overflow
xdg-decoration: free old configure structs
layer-shell: upgrade to v3, implement destructor
layer-shell: remove unused surface list
Jan Beich (2):
backend/session: allow GPU enumeration on FreeBSD
xcursor: also look for cursor themes under ${datadir}/icons by default
Jan Staněk (1):
Declare wlr_seat globals as extern
John Chadwick (1):
xwm: end transfers when the requestor is destroyed
JonnyMako (1):
backend/drm: fix missing cursor on external monitors with multi-GPU setup and nouveau
Julien Olivain (1):
render/egl: include EGL/eglmesaext.h only if present
Kalyan Sriram (2):
tinywl: fix geo_box bug in cursor resizing
Don't send redundant capability updates
Kenny Levinsen (3):
logind: Close fd before releasing device
seat: Create inert objects for missing capabilities
wlr_drag: Destroy drag after releasing grabs
Kirill Chibisov (1):
xcursor: add xorg-x11 and cursors path to XCURSORPATH
Manuel Stoeckl (2):
Fix output rotation direction
output: fix output transform compositions
Michael Weiser (3):
keyboard-shortcuts-inhibit: Implement the protocol
keyboard-shortcuts-inhibit: Add client example
idle-inhibit: Style and naming improvements
Rabit (1):
Prevent memory leak in copypaste of the screencopy example
Rouven Czerwinski (4):
backend/drm: add env variable to disable modifiers
backend/drm: remove overzealous finish_drm_surface
render: assert sane values for box functions
surface: don't unset width and height in finalize
Scott Anderson (8):
meson: Fix protocol includes for compositor examples
examples: Fix compositor-examples
wlr_surface: Post error if multiple role objects created
backend/drm: introduce wlr_drm_fb
backend/drm: don't have fallback atomic commits
backend/drm: move atomic cursor code into pageflip code
backend/drm: don't allow legacy to use direct scanout
Remove libcap support
Scott Moreau (3):
build: Add 'auto' to logind-provider combo option
xwayland: Don't discard ready signals
xwm: Destroy xwm on hangup or error
Simon Ser (129):
build: replace version with soversion
render: unconditionally disable implicit X11 includes
meson: fix wayland-server minimum required version
util: add wlr_output_destroy_safe
output: don't destroy global immediately
seat: don't destroy global immediately
xwayland: ignore pointer focus changes
backend/wayland: rename wl_seat.c to seat.c
output: remove wlr_output_impl.schedule_frame
backend/wayland: fix seat caps handling
Introduce wlr_client_buffer
output: add adaptive_sync_enabled property
backend/x11: add support for adaptive_sync_enabled
backend/drm: add support for adaptive_sync_enabled
xwayland: use explicit indexes when initializing atom_map
xwayland: remove duplicate _NET_WM_NAME entry
xwayland: remove underscore prefix from atom names
output: make wlr_output_schedule_frame set output->needs_frame
output: don't send a needs_frame event if already sent
util/log: improve time prefix
render/gles2: remove duplicated format list
buffer: remove unused wlr_client_buffer fields
output: add comment about needs_frame in wlr_output_schedule_frame
output: replace wlr_output.damage with a damage event
backend/wayland: close keymap FD
Gracefully handle inert wl_output resources
buffer: add destroy event
buffer: add a release event
buffer: add width and height
output: introduce wlr_output_test
output: check buffer in wlr_output_test
backend: reset EGL surface after buffer swap
Add wlr_output_impl.rollback
render/egl: make config attribs const
backend: set EGL_RENDERABLE_TYPE and EGL_SURFACE_TYPE
render/gles2: only call wlr_egl_bind_display if supported
render: only expose linux-dmabuf if EGL extension is supported
output: fix blurred hw cursors with fractional scaling
output: check for buffer size compatibility in common code
backend/wayland: check scan-out buffer is compatible in output_test
output: fix maybe-uninitialized warning
backend/multi: add backends at end of list
build: use meson.override_dependency
build: use dicts instead of get_variable
build: use summary instead of message
output_layout: improve docs
render/drm_format_set: disallow DRM_FORMAT_INVALID
render/gles2: add wlr_gles2_renderer_check_ext
backend/headless: use FBOs instead of pbuffers
backend/headless: add wlr_headless_backend_create_with_renderer
render/texture: add width and height fields
render/texture: make write_pixels optional
backend/drm: strip alpha channel if necessary
Remove .swp file added by mistake
util/log: write log importance
backend/drm: make page-flip error scarier
examples/dmabuf-capture: use getopt
backend/multi: handle backends depending on each other properly
backend/headless: handle renderer destroy
backend/drm: remove wlr_drm_interface.crtc_move_cursor
backend/drm: remove unused fields
backend/drm: remove mode argument to crtc_pageflip
backend/drm: apply gamma LUT on page-flip
backend/drm: rename crtc_pageflip to crtc_commit
backend/drm: remove conn_enable from interface
backend/drm: remove crtc_set_cursor from interface
backend/drm: GAMMA_LUT_SIZE isn't atomic
backend/drm: simplify atomic commit logic
backend/drm: fix crash in session_signal
backend/drm: remove missing cursor plane workaround
backend/drm: fix combined modeset+enable commits
backend/drm: disable cursor in dealloc_crtc
backend/drm: print error in set_plane_props
backend/drm: fix segfault in drm_crtc_page_flip
output: make wlr_output_set_gamma atomic
backend/drm: fix atomic commits when the GAMMA_LUT prop is missing
Fix -Wreturn-type warnings
render/egl: introduce wlr_egl_unset_current
backend/drm: fix current EGL context on multi-GPU
backend/drm: add missing wlr_egl_unset_current
xwayland: split server
xwayland: add option to disable WM
render/egl: unset current context after swapping buffers
backend/drm: rollback atomic blobs
backend/drm: refuse to enable an output without a mode
backend/drm: remove drm_connector_set_custom_mode
backend/drm: remove enable_drm_connector
backend/drm: make drm_connector_set_mode take a wlr_drm_connector
backend/drm: nuke retry_pageflip
backend/drm: introduce pending and current CRTC state
backend/drm: don't set cursor if off-screen
backend/drm: fix missing crtc->cursor NULL check
Add comments for missing tablet tool entries
backend/drm: rollback pending CRTC state on test commit
backend/drm: make adaptive_sync atomic
backend/drm: commit/rollback FBs in drm_crtc_commit
backend/drm: drop extra wlr_output_update_enabled call
backend/drm: always perform a CRTC commit in drm_connector_commit
backend/wayland: fix spurious eglSwapBuffers failures
render: stop making EGL context current in wlr_egl_init
backend/drm: fix black screens when enabling output
render: choose DMA-BUF texture target via eglQueryDmaBufModifiersEXT
contributing: resource destroy handlers need to cleanup pointers
contributing: add note about events that destroy objects
backend/drm: fix stack overflow in dealloc_crtc
buffer: document wlr_buffer_get_dmabuf DMA-BUF lifetime
output: document wlr_output_export_dmabuf
render/egl: explicit client extension handling
examples/screencopy-dmabuf: call strncpy with maxlen - 1
examples/fullscreen-shell: stop advertising linux-dmabuf unconditonally
render/gles2: use .x/.y instead of .s/.t
box: add wlr_fbox
util/region: add wlr_region_scale_xy
render: add wlr_render_subtexture_with_matrix
surface: add wlr_surface_state.viewport
surface: introduce wlr_surface_get_buffer_source_box
viewporter: new protocol implementation
surface: ignore viewport src rect on NULL buffer
render/egl: print error name
output: rename impl->rollback to rollback_render
output: make rollback_render mandatory
output: fix dangling renderer context after wlr_output_preferred_read_format
backend/noop: add missing rollback_render output impl
examples/pointer: fix wlr_renderer_end call order
output: add backend docs
backend/drm: fix DPMS on legacy interface
backend/drm: fix typo in drm_surface_make_current arg
backend/drm: check drm_surface_make_current return value
Update version to 0.11.0
Simon Zeni (1):
render/gles2: use glGetAttribLocation instead of hardcoded indices
Thomas Hebb (3):
wlr_seat: Declare functions in the same order for pointer, keyboard, and touch
wlr_seat: Clarify wording of non-grab-respecting function comments
Allow keyboard and pointer grabs to hook clear_focus()
Tudor Brindus (19):
backend/libinput: correctly populate x/y fields on tablet proximity in
input/tablet: populate tool tip event position
input/tablet: fix up updated axes after rotation
input/tablet: clear focused surface on surface destroy
wlr/types: use bitshifts for tablet axes enum
backend/wayland: emit tablet tool axis events to the axis handler
input/keyboard: expose keymap matching helper
input/pointer: notify compositor when constraint region changes
tablet: pass motion events to implicitly grabbed surface
tablet: expose wlr_tablet_tool_v2_has_implicit_grab function
util/log: use bright black rather than black for WLR_DEBUG
xwayland: send focus change event unconditionally
xwayland: add error-checking to `server_start_lazy`
backend/wayland: scale tablet tool position into [0, 1] range
util: fix and move `get_current_time_msec` into a util file
util/time: de-duplicate `timespec_to_msec`
util/time: move `timespec_sub` to time utilities
input/keyboard: send modifiers on first keyboard enter
input/pointer: add wlr_seat_pointer_wrap
Tudor Roman (1):
seat: add selection event docs
Will Daly (1):
Fix error when reconnecting external display
j-n-f (1):
examples: fix improper use of `free`
r-c-f (1):
seat: add check for NULL keyboard
xdavidwu (3):
virtual-keyboard: add wlr_input_device_get_virtual_keyboard
input-method: implement keyboard grabs
examples/input-method-keyboard-grab: new example
wlroots 0.10.0 includes the following breaking changes:
The RDP (remote desktop) backend has been removed entirely in favor of solutions like wayvnc.
wlroots 0.10.0
Drew DeVault (1):
Drop RDP backend
Jan Staněk (1):
Honor the `examples` meson setting
Jason (1):
Allow WLR_RDP_PORT to be any valid TCP/UDP port number
Scott Anderson (1):
Bump meson version to 0.51.2
Simon Ser (9):
backend/wayland: listen to wl_buffer.release events
backend/wayland: handle display errors more gracefully
render/egl: remove SURFACELESS_MESA special case
render/gles2: unbind textures after use
docs: remove rootston-specific env vars
docs: establish one section per backend
docs: document XDG_SESSION_ID
backend/drm: prevent outputs from being destroyed on commit
keyboard-group: two NULL keymaps are equal
xdavidwu (1):
text-input: fix missing destroy signal init
wlroots 0.9.1
Andri Yngvason (1):
virtual-pointer: Actually use the value passed to axis_discrete
Ilia Bozhinov (1):
xwm: allow applications to change focus between their own surfaces
Simon Ser (1):
backend/wayland: fix frame callback not registered
wlroots 0.9.0 includes the following breaking changes:
The layer of a layer surface may now be changed at runtime. The layer
field has been removed from struct wlr_layer_surface_v1
and introduced to struct wlr_layer_surface_v1_state
.
wlr_drm_connector_add_mode
now returns the new mode instead of a bool.
Destructors and resource lists for static globals have been removed.
Instead of calling wlr_presentation_surface_sampled
at render time and wlr_presentation_send_surface_presented
at presentation time, most compositors now just need to call wlr_presentation_surface_sampled_on_output
at render time. Compositors that call wlr_buffer_ref
need to call wlr_presentation_surface_sampled
when they ref the buffer, wlr_presentation_feedback_send_presented
when this buffer has been presented for the first time and then wlr_presentation_feedback_destroy
.
wlr_output_commit
after wlr_output_enable
, wlr_output_set_mode
, wlr_output_set_custom_mode
, wlr_output_set_transform
or wlr_output_set_scale
wlr_output_set_mode
no longer implicitly enables the output, compositors need to call wlr_output_enable
as wellwlr_output_rollback
after wlr_output_attach_render
if they decide not to renderAlynx Zhou (1):
Skip assign when sub_x or sub_y is NULL in wlr_surface_surface_at
Andri Yngvason (3):
output: Add commit sequence number
protocol/screencopy: Add damage reporting
screencopy: Implement damage reporting
Brian Ashworth (2):
Introduce wlr_keyboard_group
wlr_keyboard_group: fix mem leak in refresh_state
Danilo Spinella (1):
Add new define EGL_NO_X11 for newer mesa library
Dorota Czaplejewicz (1):
virtual_keyboard: Accept keycode 0
Drew DeVault (1):
Introduce wlr_renderer_get_egl
Ferdinand Bachmann (1):
Add missing include required by mesa and libglvnd change
György Kurucz (1):
Fix heap-use-after-free in wlr_send_tablet_v2_tablet_pad_leave
Ilia Bozhinov (1):
wlr_box: properly calculate closest point for non-positive area boxes
Ivan Molodetskikh (1):
output: add block_idle_frame
Jan Beich (1):
examples: set mode when creating shm object
Jason (2):
Amend typos
Amend typo
Josef Gajdusek (1):
virtual-pointer: Add support for the wlr-virtual-pointer-unstable-v1
Manuel Stoeckl (1):
output: fix cursor wl_surface.{enter,leave} tracking
Ronan Pigott (2):
session/logind: support CanGraphical property
render/gles2: do not set GL_TEXTURE_MAG_FILTER
Rouven Czerwinski (1):
backend/drm: print preferred mode
Scott Anderson (8):
backend/x11: Give X11 a real rendering loop
session/logind: Clean up add_signal_matches
render/gles: Simplify textures a bit
backend: Do not attempt DRM on X11/WL failure
backend/x11: Drop required present version
backend/x11: Revert usage of present extension
meson: Various improvements
meson: Remove tag generation
Scott Moreau (3):
xwayland: Expose configure request mask
build: Pass library as first argument to pkgconfig.generate()
xwayland: Clean up if Xwayland fails to start
Simon Ser (51):
build: workaround for meson disabler object not working with if not
render/egl: support formats with zero modifiers
backend/drm: use modifiers for our GBM buffers
build: simplify by using disabler deps
backend/wayland: add support for direct scan-out
render/gles2: don't unset the current EGL surface when destroying texture
protocol: sync layer-shell with upstream
backend/drm: track gbm_bo during direct scan-out
render/egl: prevent use-after-free when destroying current surface
backend/drm: retry without modifiers for the primary plane
backend/drm: add support for custom modes
output-management-v1: add assertion as a safety net
render: remove EGL includes from wlr_texture.h
render/gles2: provide public API to access GL texture
backend/wayland: add support for relative-pointer-unstable-v1
backend/wayland: expose remote objects
output: add wlr_output_event_present.commit_seq
Add -Wmissing-prototypes
output: set wlr_output.commit_seq before firing the commit event
output: fix off-by-one wlr_output_event_present.commit_seq
presentation-time: make API more flexible
presentation-time: add helper for common case
backend/wayland: add support for presentation-time
render: remove return in wlr_texture_get_size
Simplify globals implementation by removing destructors
Revert "output: add block_idle_frame"
keyboard: emit key events without keymap
backend/drm, backend/libinput: listen to session destroy
backend/drm: fix segfault in init_drm_surface
backend/drm: add BenQ to manufacturer list
buffer: improve error handling
surface: don't unref the current buffer on failure
output: fix wlr_output_preferred_mode fallback
Refactor EGL/GL API loading
ci: add xorgproto dep to Arch build
render: fix EGL extensions not loaded
Revert "ci: add xorgproto dep to Arch build"
ci: add a build run with all features disabled
output: add description
xdg-output-v1: use wlr_output.description
output-management-v1: use wlr_output.description
output: re-introduce atomic mode, enabled, scale and transform
backend/drm: modeset before enabling an output
output: clear pending bit if pending == current
output: refuse to commit a buffer or modeset a disabled output
tinywl: enable and commit output when modesetting
xdg-shell: fix inert xdg_surface handling
xdg-shell: make wlr_xdg_surface_from_resource reject NULL
output: only advertise current mode
backend/drm: don't modeset with a NULL mode after TTY switch
render: guard rendering operations between begin() and end()
Timidger (2):
layer_shell: set layer of existing surface
Use layer shell v2
Ting-Wei Lan (1):
backend/session/freebsd: Fix the way to get TTY path
myfreeweb (1):
Send tablet tool frame on proximity_out
n3rdopolis (2):
Update environment variable documentation to include more backends
note libinput as well