Skip to content
Tags give the ability to mark specific points in history as being important
  • 0.14.1
    wlroots 0.14.1
    This is bugfix release for wlroots 0.14.0.
    Simon Ser (10):
          surface: accept commits with buffer size not divisible by scale
          buffer: make enum wlr_buffer_cap public
          surface: allow locking pending state in commit handler
          Revert "backend/drm: populate cursor plane's current_fb"
          backend/drm: don't clear pending cursor FB on failed commit
          output: detach buffer from renderer before commit
          output-damage: fix output swapchain handling
          tablet-v2: fix pad and tool object versions
          backend/drm: force linear layout for multi-GPU buffers
          build: bump version to 0.14.1
  • 0.14.0
    wlroots 0.14.0
    Release highlights:
    - Renderer refactoring work is well underway: everything now uses the
      new infrastructure under-the-hood except the DRM backend's primary
    - The Pixman software renderer has been merged, alongside new allocators
      (shared memory for Wayland/X11 and DRM dumb buffers).
    - Session management is now completely offloaded to libseat.
    - Support for the xdg-activation-v1 protocol has been merged.
    Full changelog below.
    Aleksei Bavshin (2):
          xwayland: query window PIDs via XResQueryClientIds
          xwayland: remove _NET_WM_PID handler
    Benoit Gschwind (1):
          Document the wlr_output_layout_get function
    Brian McKenna (1):
          Flush events in virtual pointer example
    Isaac Freund (1):
          gtk-primary-selection: drop support
    Kenny Levinsen (12):
          backend/session: Remove logind backend
          ci: Add libseat-dev to alpine
          backend/session: Make libseat mandatory
          backend/session: Remove direct backend
          backend/session: Remove noop backend
          backend/session: Remove session_impl
          backend/session: Close fd in wlr_session_close_file
          backend/session: Close remaining devices on destroy
          backend/drm: Do not require mode commit on enable
          meson: Make private static library symbols local
          ci: Build both static and shared
          Revert "meson: Make private static library symbols local"
    Roman Gilg (1):
          backend: move get_drm_fd to public interface
    Ryan Farley (2):
          util/uuid: replace with util/token, remove libuuid
          xwayland/sockets: ensure proper permissions
    Simon Ser (135):
          build: bump version to 0.14.0
          render: drop wlr_renderer_blit_dmabuf
          render: remove wlr_texture_to_dmabuf
          render: drop support for ellipses
          Remove WLR_HAS_XCB_ERRORS
          build: disable libseat subproject server and man pages
          build: remove wayland-scanner fallback
          backend/libinput: terminate display on error
          backend/drm: terminate display on drmHandleEvent failure
          backend/x11: check for connection errors
          render/gles2: prevent imported DMA-BUF textures from being mutated
          examples/rotation: error out on invalid option
          readme: mark libseat as mandatory dep
          buffer: introduce wlr_buffer_get_shm
          render: introduce shared memory allocator
          backend/wayland: add support for wl_shm buffers
          backend/wayland: fallback to wl_shm on missing render node
          examples: use wlr_output_preferred_mode
          examples: remove dependency on GLES2 for compositor examples
          Stop specifying xkb_rule_names
          linux-dmabuf-v1: drop some from_resource helpers
          linux-dmabuf-v1: split params and buffer
          render/gles2: log when creating renderer
          output: correctly handle outputs without a test() impl
          render/pixman: cleanup when renderer is destroyed
          render/gles2: destroy textures on renderer teardown
          render/pixman: destroy textures on renderer teardown
          render: remove NULL checks in wlr_texture_impl.destroy
          readme: update and cleanup xcb deps
          readme: mention IRC channel
          readme: use webchat link for IRC channel
          render: unconditionally read WLR_RENDERER
          Log drmGetDevices2 error code
          xcursor: quiet debug log
          backend/drm: fail instead of stripping a modifier
          backend/drm: clarify error message on drmModeAddFB fallback
          backend/drm: destroy when parent is destroyed
          backend/session: add
          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
          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
  • 0.13.0
    69c71dbc · build: bump to v0.13.0 ·
    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
          backend/session: wait for DRM device if none found
          Revert "session/logind: support CanGraphical property"
          backend/session: replace session_signal with
          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
          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
          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
  • 0.12.0
    238d1c07 · Update version to 0.12.0 ·
    wlroots 0.12.0
    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
  • 0.11.0
    751a21d9 · Update version to 0.11.0 ·
    wlroots 0.11.0
    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):
 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
  • 0.10.1
    0c7c5624 · Update version to 0.10.1 ·
    wlroots 0.10.1
    This is a bugfix release for wlroots 0.10.0.
    Aleksei Bavshin (1):
          xdg-shell: fix popups rendered outside of the screen
    Scott Anderson (2):
          meson: Fix protocol includes for compositor examples
          examples: Fix compositor-examples
    Simon Ser (2):
          xwayland: ignore pointer focus changes
          Update version to 0.10.1
  • 0.10.0
    57ffb35d · Update version to 0.10.0 ·
    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
  • 0.9.1
    a2cbb4e4 · Update version to 0.9.1 ·
    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
  • 0.9.0
    1c5ca793 · Update version to 0.9.0 ·
    wlroots 0.9.0
    Alynx 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
  • 0.8.1
    b051bb68 · Update version to 0.8.1 ·
    wlroots 0.8.1
    This update fixes Drew's continued ability to find novel ways to mess up
    Filip Sandborg (1):
          render/gles2: fix calculation for partial gles2 pixel read (#1809)
    Ilia Bozhinov (1):
          layer-shell: ignore ack_configure() on closed surfaces
    Ivan Molodetskikh (2):
          presentation_feedback: add the sampled state
          drm: use IMPORT_FD for INVALID modifier
    Markus Ongyerth (3):
          Move initialization of wlr_tablet_pad into types/wlr_tablet_pad
          Add zwp-tablet-unstable-v2 client support
          Clean up wayland backend tablet support
    Rouven Czerwinski (1):
          backend/drm: check for mst: in path property
    Scott Anderson (1):
          render/egl: Change KHR_debug log to include error code
    Sebastian Krzyszkowiak (1):
          wlr_seat_touch: Destroy the touchpoint on client destroy
    Simon Ser (1):
          compositor: disconnect client on OOM in create_surface
    Versus Void (1):
          xdg-output: send wl_output.done after xdg_output created
    amingin (1):
          Fixes crash of compositor when unvalidated keycode 0 is passed (#1833)
  • 0.8.0
    df77592b · Update version to 0.8.0 ·
    wlroots 0.8.0
    wlroots 0.8.0 includes the following breaking changes:
    	presentation_feedback: add the sampled state
    The wlr_presentation_time structures have been rewritten. To correctly
    support presentation-time, use wlr_presentation_surface_sampled after
    you sample (read from) each surface.
    Drew DeVault (4):
          wlr_idle_inhibit_v1: style fixes
          drm backend: detect non-desktop outputs
          drm backend: implement DRM lease issuance
          Introduce wlr_drm_lease_v1
    Filip Sandborg (1):
          render/gles2: fix calculation for partial gles2 pixel read (#1809)
    Ilia Bozhinov (1):
          layer-shell: ignore ack_configure() on closed surfaces
    Ivan Molodetskikh (1):
          presentation_feedback: add the sampled state
    Rouven Czerwinski (1):
          backend/drm: check for mst: in path property
    Scott Anderson (1):
          render/egl: Change KHR_debug log to include error code
    Sebastian Krzyszkowiak (1):
          wlr_seat_touch: Destroy the touchpoint on client destroy
    Simon Ser (1):
          compositor: disconnect client on OOM in create_surface
    Versus Void (1):
          xdg-output: send wl_output.done after xdg_output created
  • 0.7.0
    a20bb387 · Update version to 0.7.0 ·
    wlroots 0.7.0
    wlroots 0.7.0 includes the following breaking changes:
    	wlr_output_mode: drop wlr_outupt_mode.flags
    This field was never used and has now been removed.
    	wlr_output: drop wlr_output.transform
    This field was not meaningful.
    	Orbital screenshooter and gamma-control have been removed
    These protocols are obsolete and have been replaced with more mature wlr
    Andri Yngvason (2):
          backend: touch: Assign good ids to single touch devices
          backend: touch: Fixup incomplete patch for single touch devices.
    Antonin Décimo (12):
          render/drm: keep old drm_format if realloc fails
          xcursor: avoid leak and loss of all cursors if cursors realloc fails
          Fix memory leak
          Simplify check
          wlr_surface: condition is always false
          xdg_shell: remove variable self-assignment
          backend/session: non-void function should return a value
          backend/drm: use UINT64_C for uint64_t literals
          Avoid loss of a fractional part
          backend/wayland: check if zxdg_toplevel_decoration_v1 is not NULL
          xwayland: prevent possible array overrun
          examples: remove duplicated condition
    Ashkan Kiani (1):
          Use a set to track pointer button state.
    Brian Ashworth (4):
          session/logind: keep active for pause_device gone
          zwp_virtual-keyboard: fix mmap error handling
          wlr_xdg_toplevel: reparent on parent unmap
          wlr-layer-shell-v1: destroy xdg popups on unmap
    Dorota Czaplejewicz (2):
          x11: Send a frame event on the pointer after button events
          virtual_keyboard: Require keymap before accepting keycodes
    Drew DeVault (4):
          Remove rootston
          Add libinput-1.14 support
          Revert "render/drm: keep old drm_format if realloc fails"
          Add _incr_version to contrib/
    Greg V (1):
          Support pointer-gestures on Wayland backend
    Guido Günther (4):
          wlr_seat_touch: Don't destroy touch point with surface
          layer-shell: Remove unused event source
          layer-shell: Reject requests on gone surfaces
          text_input: Don't forget to send enter events
    Ilia Bozhinov (2):
          output: clear output->damage on successful commit
          output-damage: set needs swap only when we have new damage
    Jan Beich (1):
          Test RDP backend on FreeBSD as well
    Jan Chren (2):
          session/logind: specify seat exactly
          session/logind: check for XDG_SESSION_ID first
    Jason Francis (3):
          screencopy: fix segfault on disabled output
          screencopy: send failed after output disconnect
          export-dmabuf-v1: fix segfault on output disable
    Manuel Stoeckl (6):
          Implement serial validation for selection requests
          wlr_seat: Fix edge cases with serial validation
          wlr_pointer_gestures: Register event serials
          wlr_tablet_v2: Register event serials
          wlr_seat: special-case first serial set use
          Use -fmacro-prefix-map to strip build path
    Michiel (1):
          Fixes #1689 RDP RemoteFX crash
    Rouven Czerwinski (5):
          wlr_output: remove idle_done on output destroy
          drm: legacy: issue a NULL modeset on disable
          backend: drm: switch to pageflip_handler_2
          backend/drm: destroy output immediately
          Revert "output: atomic mode"
    Scott Anderson (3):
          Remove WLR_DRM_NO_ATOMIC_GAMMA workaround
          backend/drm: Simplify object matching code
          backend/drm: Exit-early if 0 crtcs
    Sebastian Krzyszkowiak (9):
          seat: Move focus back to first shell surface when unfocusing layer surface
          xdg_shell(_v6): Take maximize/fullscreen state into account on view init
          wlr_touch: Declare wlr_touch_impl usage as const
          backends/x11: Touch support
          wlr_input_method_v2: Remove input method's resource from the list on destroy
          wlr_seat_touch: add a way for a grab to ignore a touch point
          wlr_xdg_popup: grab touch events alongside pointer and keyboard
          wlr_xdg_popup: don't treat all surfaces of grabbing client as grabbing surfaces
          Revert "wlr_xdg_popup: don't treat all surfaces of grabbing client as grabbing surfaces"
    Silvan Jegen (1):
          rootston: remove duplicated include
    Simon Ser (26):
          backend/wayland: use xdg-decoration-unstable-v1
          backend/wayland: remove wl_shm
          render/gles2: print GL_RENDERER
          Remove orbital screenshooter and gamma-control
          backend/drm: check format when scanning out DMA-BUF
          backend/drm: strip alpha channel on scan-out
          render/dmabuf: add wlr_dmabuf_attributes_copy
          buffer: add wlr_buffer_get_dmabuf
          output: change set_dmabuf to attach_buffer
          output: fix attach_buffer semantics
          output: save buffer in pending state
          backend/drm: hold buffers while scanning out
          backend/drm: reject DMA-BUFs with flags
          rootston: add support for direct scan-out
          output: refuse to scan-out if software cursors are used
          output: introduce wlr_output_lock_attach_render
          output-damage: support direct scan-out
          backend/drm: fallback to drmModeAddFB2
          backend/drm: add support for multiplanar BOs
          output: reset the pending state on failed commit
          output: remove wlr_output_impl.transform
          output: drop wlr_output_mode.flags
          Remove all wayland-server.h includes
          output: atomic mode, enabled, scale and transform
          xdg-output: add support for xdg-output-unstable-v1 version 3
          backend/drm: fix missing plane formats
    emersion (1):
          backend/drm: add basic support for direct scan-out
  • 0.6.0
    c0305f4f · Update version to 0.6.0 ·
    wlroots 0.6.0
    wlroots 0.6.0 includes the following breaking changes:
    	Remove wlr_wl_shell
    We have removed the long-deprecated wl_shell implementation from
    	output: refactor frame submission API
    To migrate from the old API to the new one:
    1. Replace wlr_output_make_current calls with wlr_output_attach_render
    2. Replace wlr_output_swap_buffers calls with wlr_output_set_damage and
    3. Replace wlr_output_damage_make_current calls with
    4. Replace wlr_output_damage_swap_buffers with wlr_output_set_damage and
    5. Replace wlr_output.needs_swap with wlr_output.needs_frame
    6. Replace with
    	output: remove lx, ly
    The layout coordinates have been removed from wlr_output. Wayland
    clients now receive a non-meaningful value from this interface, and
    should switch to using xdg-output for this purpose.
    	Rename lid_switch to switch_device to disambiguate lid and tablet
    	mode switches
    To update your compositors, run s/lid_switch/switch_device/g.
    Full changelog:
    Alyssa Ross (1):
          Fix missing headers when building without X11
    Brian Ashworth (6):
          backend/wayland: improve output number handling
          backend/x11: improve output number handling
          backend/headless: improve output number handling
          backend/noop: improve output number handling
          wlr_xdg_toplevel: store pending fullscreen output
          wlr_xdg_toplevel_v6: store pending fullscreen output
    Drew DeVault (2):
          Add FreeRDP backend for remote desktop support
          Remove wlr_wl_shell
    Guido Günther (3):
          wlr_output: Add preferred property (#1625)
          rootston: Also iterate layer shell popups
          Emit preferred mode
    Ilia Bozhinov (8):
 require libinput >= 1.9.0
          noop: implement setting a custom mode
          rootston: remove disabled outputs from the output layout
          output: do nothing in output_set_image if backend has no renderer
          idle: enable the compositors to add custom idle timeouts (#1655)
          foreign-toplevel: support fullscreen state and request
          rootston: add support for foreign-toplevel fullscreening
          examples: add fullscreening to foreign-toplevel.c
    Jan Beich (2):
          backend: unbreak on 32-bit architectures
          Switch to system epoll-shim.pc in FreeBSD build
    Markus Ongyerth (1):
          send proximity_out in proximity in for tablet_v2
    Ryan Walklin (1):
    Scott Anderson (2):
          render: introduce wlr_drm_format_set
          Advertise wl_seat version 7
    Simon Ser (20):
          data-device: ignore accept for selection offers
          output: introduce wlr_output_preferred_mode
          rootston: use wlr_output_preferred_mode
          output: refactor frame submission API
          output: refactor backend API
          output: rename swap_buffers event to precommit
          output-damage: refactor API
          output: rename needs_commit to needs_frame
          render/egl: fix zero-length VLA
          backend/wayland: fix wlr_wl_pointer use-after-free
          output-damage: fix segfault after destroy
          render/egl: fix swapping with no damage
          rootston: don't submit too much damage
          output: disambiguate the two types of damage
          rootston: fix damage tracking debug mode
          output: introduce wlr_output_schedule_done
          xdg-output: schedule a wl_output.done event on update
          seat: fallback to v6 if libwayland 1.17 isn't available
          backend/noop: disallow rendering
          ci: enable Meson auto features
    Stuart Dilts (1):
          types/ Add compile args for libinput to lib_wlr_types (#1636)
    emersion (18):
          meson: remove -Wredundant-decls
          render: switch wlr_renderer to wlr_drm_format_set
          util/log: setup wayland log handler
          Add support for wlr-output-management-unstable-v1
          Split wlr_output_configuration_head_v1
          Add apply and test events to manager
          output-management-v1: various fixes
          rootston: add output-management-v1 support
          output-management-v1: add support for modes
          rootston: update output-management-v1 state when output is modeset
          output-management-v1: add support for position, transform and scale
          output-management-v1: support applying configuration
          output-management-v1: fix wl_fixed_t conversion
          output-management-v1: support outputs without modes
          output-management-v1: update protocol, add set_custom_mode
          rootston: disable then enable outputs when applying output-management state
          output-management-v1: add more docs
          output: remove lx, ly
  • 0.5.0
    c9137cba · Update version to 0.5.0 ·
    wlroots 0.5.0
    Brian Ashworth (1):
          wlr_output_layout_get_box: handle empty layout
    Guido Günther (4):
          Unbreak build with '-Wstrict-prototypes'
          rootston/view: Remove redundant declaration in the same file
          wlr_xdg_shell: Remove redundant declaration in the same file
          Remove glEGLImageTargetTexture2DOES
    Ian Fan (1):
          seat: fix remaining wlr_button_state enum rename
    Ilia Bozhinov (2):
          xwm: use min size as base size hint if it is missing and vice versa
          xwm: fix typos in WM_NORMAL_HINTS handling
    Niklas Schulze (1):
          backend/session: Allow setting a custom tty via WLR_DIRECT_TTY
    Scott Anderson (1):
          backend/drm: Don't fail on failing to find overlay format
    emersion (15):
          seat: guard against button count corruption
          meson: enable more compiler warnings
          seat: use wlr_button_state enum instead of uint32_t
          seat: only store serial if pressing a button
          tinywl: send pointer frame events
          backend/session: add noop session
          rootston: refactor rendering
          rootston: fix rotated views rendering
          rootston: fix Xwayland children rendering when fullscreen
          rootston: split rendering code into render.c
          rootston: fix input events for rotated views
          xwayland: don't set DISPLAY
          seat: add debug logs when validating grab serials
          backend/session: open TTY with O_CLOEXEC for direct session
          xwayland: set CLOEXEC on /dev/null FD
  • 0.4.1
    b46e097f · Update version to 0.4.1 ·
    wlroots 0.4.1
    Guido Günther (1):
          rootston: Make add_{switch,binding}_config static
    athrungithub (1):
          clang compile fix #1572
    emersion (1):
          Bump version to 0.4
  • 0.4
    wlroots 0.4
    Brian Ashworth (4):
          xwm: stack below on map
          drm: do not modeset to current mode
          wlr_output: do not modeset to current mode
          backend/drm: fix modeset on drm fd resume
    Connor E (2):
          Make popup inert when destroyed.
          Add build-*/ to gitignore.
    Drew DeVault (2):
          Use freebsd/latest for FreeBSD builds
          Revert "drm: do not modeset to current mode"
    Geoff Greer (1):
          Add a wlr_output_set_subpixel()
    Ivan Molodetskikh (2):
          data-control: add primary selection support
          Update data-control
    Jan Beich (1):
          Add xcb-errors to FreeBSD build
    Markus Ongyerth (1):
          Prevent NULL dereference in tablet_tool handler
    Rouven Czerwinski (1):
          backend/drm: fix memory leak in realloc crtcs
    Scott Anderson (1):
          backend/drm: Unset cursor on cleanup
    Sebastian Krzyszkowiak (3):
          Post protocol error on invalid wl_surface scale
          rootston: don't try to maximize fullscreen surfaces
          rootston: surface_at: check for fullscreen surfaces in between TOP and OVERLAY layers
    Uli Schlachter (1):
          xwm: Add _NET_CLIENT_LIST support
    Vincent Vanlaer (3):
          Allow cursor render surface to be used as fb
          Copy cursor surface to secondary gpu if necessary
          Add workaround for hardware cursors on nouveau
    emersion (21):
          Bump project version to 0.3
          data-device: destroy previous source when starting drag
          xdg-shell: destroy child popups on unmap
          Deprecate old protocols
          primary-selection-v1: copy from gtk-primary-selection
          surface: error out on invalid transform
          subsurface: add map/unmap events
          xwayland, data-device: fix surface state on unmap
          data-device: make old offers inert before sending selection
          backend/drm: fix NULL dereference when unsetting cursor
          xwayland: don't use SOCK_CLOEXEC
          xwayland: remove remaining SOCK_CLOEXEC
          data-device: refactor wlr_drag
          data-device: fix drag cleanup if not started
          rootston: cancel drag on invalid serial
          data-offer: send WL_DATA_OFFER_ERROR_INVALID_FINISH
          data-device: unbreak wl_data_source.cancel during drag-and-drop
          rootston: move part of desktop.c to view.c, use an interface for views
          rootston: add a view child interface
          rootston: make roots_view embedded and remove unions
          data-device: check if there's a source before sending dnd_finish
    mnussbaum (1):
          Allow compositors to run as systemd user units
  • 0.3
  • 0.2
    wlroots 0.2
    Cedric Sodhi (1):
          Tell Mesa not to attempt X11 headers
    Cosimo Cecchi (1):
          xcursor: Support XDG user data dir location
    Drew DeVault (26):
          Merge pull request #1307 from emersion/static-analysis
          Merge pull request #1289 from ixru/fix-cursor-visibility
          Merge pull request #1327 from RyanDwyer/xwm-unset-minmax-hints
          Add FreeBSD build
          Merge pull request #1338 from emersion/wayland-swap-interval
          Merge pull request #1340 from emersion/fix-input-method-destroy
          Merge pull request #1332 from emersion/shm-open
          Merge pull request #1346 from emersion/fix-schedule-frame-mgpu
          Merge pull request #1341 from emersion/view-at-unmapped
          Merge pull request #1350 from emersion/check-gles2-bgra-ext
          Merge pull request #1261 from arandomhuman/damage-control
          Merge pull request #1357 from emersion/xopen-source
          Merge pull request #1358 from emersion/xcursor-heap
          Merge pull request #1364 from ManDay/master
          Merge pull request #1356 from emersion/egl-renderable-type
          Merge pull request #1369 from ascent12/wayland_backend
          Merge pull request #1372 from emersion/config10
          Merge pull request #1373 from emersion/fix-teardown-segfaults
          Merge pull request #1366 from emersion/render-software-cursors
          Merge pull request #1375 from emersion/tablet-segfault
          Merge pull request #1392 from emersion/disable-static-analysis
          Merge pull request #1396 from emersion/fix-destroyed-subsurface
          Merge pull request #1384 from emersion/data-multiple-devices
          Merge pull request #1387 from emersion/rename-gtk-primary-selection
          Merge pull request #1399 from emersion/fix-wl-backend-zero-vla
          Merge pull request #1400 from emersion/xcursor-fixes
    Ilia Bozhinov (1):
          output: add wlr_output_preferred_read_format()
    Julio Galvan (1):
          Fix compilation error on musl
    Philipp Ludwig (1):
          xcursor: fix crash when encountering cursor themes with circular dependencies
    Rostislav Pehlivanov (2):
          Skip interlaced modes during drm mode detection
          Fix interlaced mode rejection
    Ryan Dwyer (3):
          xwm: Unset min/max size hints if they're not used
          Merge pull request #1335 from emersion/fucking-transparency
          Merge pull request #1395 from emersion/text-input-log-newline
    Scott Anderson (11):
          backend/wayland: Move registry into backend
          backend/wayland: Use specific wl_global versions
          backend/wayland: Move initilisation code earlier
          backend/wayland: Make header order consistent
          backend/x11: Rename xcb_conn to xcb
          backend/x11: Make header order consistent
          backend/x11: Move atom initilisation earlier
          backend/x11: Check for xinput extension
          backend/x11: Add new Xinput events
          backend/x11: Remove old input functions
          backend/x11: Hide cursor with Xfixes
    Sorcus (1):
          Fix "variable ‘cursor_default’ set but not used"
    Tobias Stoeckmann (1):
          xcursor: Fix heap overflows when parsing malicious files
    buffet (1):
          Fixed loc count in readme
    emersion (48):
          backend: fix use-after-free in wlr_backend_autocreate
          tablet-v2: fix memory leak on OOM, fix resource version
          Update version to 0.1
          xwayland: fix typo to enable transparency
          Merge pull request #1336 from swaywm/freebsd
          idle: allow zero timeout
          render: on Wayland, make eglSwapBuffers non-blocking
          Merge pull request #1337 from emersion/idle-zero-timeout
          Merge pull request #1339 from MrSorcus/master
          input-method-v2: initialize destroy signal
          util: use shm_open for in-memory files
          xwayland: don't fail if XDG_RUNTIME_DIR is not set
          rootston: fix segfault in view_at
          rootston: fix segfault when destroying unmapped fullscreen views
          backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variable
          backend/drm: fix frame scheduling on secondary GPUs
          Merge pull request #1344 from emersion/no-atomic-gamma
          render/gles2: remove assumptions about supported formats
          backend/drm: specify minimum config attributes
          render/gles2: check for GL_OES_EGL_image_external
          surface: fix wlr_surface_get_effective_damage to give surface coords
          Use _POSIX_C_SOURCE, use shm_open
          examples: only link clients to wlroots if necessary
          Merge pull request #1362 from julio641742/patch-1
          Merge pull request #1361 from sghctoma/fix-shm
          render: correctly set EGL_RENDERABLE_TYPE
          backend/wayland: handle WL_EVENT_WRITABLE for Wayland socket
          Use #if instead of #ifdef for wlroots config data
          xdg-shell: don't destroy xdg role state on role destroy
          tablet-v2: fix segfault on display destroy
          Merge pull request #1368 from ascent12/x11_backend
          output: remove wlr_output_set_fullscreen_surface
          output: add wlr_output_render_software_cursors
          output: make wlr_egl flip the damage
          gtk-primary-selection: support multiple devices
          gtk-primary-selection: track resources
          Merge pull request #1382 from atomnuker/master
          Merge pull request #1380 from emersion/gtk-primary-selection-multiple-devices
          Merge pull request #1385 from atomnuker/master
          Rename wlr_primary_selection to wlr_gtk_primary_selection
          Merge pull request #1390 from ammen99/fix-preferred-read-format
          Merge pull request #1391 from buffet/fix-loc-count
          Disable Clang static analysis
          text-input-v3: remove newline in log message
          data-device: allow multiple devices for the same seat
          data-device: never cancel the source when offer is destroyed
          surface: fix destroyed subsurfaces handling
          backend/wayland: fix zero-length VLA
    ixru (2):
          Fix cursor visibility on surface commit
          Better placement of visibility check
    random human (5):
          wlr_surface: fix surface damage transformation
          wlr_surface: fix surface damage on resize
          wlr_surface: remove duplicated damage calculation
          wlr_surface: more consistent argument naming in surface_update_damage
          wlr_surface: add wlr_surface_get_effective_damage
    sghctoma (3):
          Force ftruncate for shared mem. objects on FreeBSD
          Use ftruncate to set shared memory object's size
          Remove WLR_HAS_POSIX_FALLOCATE from build system
  • 0.1
    wlroots 0.1
    This is a meaningless line drawn in the sand.