aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-11-23input-device: remove wlr_input_device.linkSimon Ser
This field's ownership is unclear: it's in wlr_input_device, but it's not managed by the common code, it's up to each individual backend to use it and clean it up. Since this is a backend implementation detail, move it to the backend-specific structs.
2021-11-22wlr_drag: emit destroy after wl_data_device.leaveIsaac Freund
2021-11-22backend/wayland: report parent presentation clockSimon Ser
There's no guarantee that the parent Wayland compositor uses CLOCK_MONOTONIC for reporting presentation timestamps, they could be using e.g. CLOCK_MONOTONIC_RAW or another system-specific clock. Forward the value via wlr_backend_impl.get_presentation_clock. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3254#note_1143061
2021-11-22linux-dmabuf-v1: hide wlr_linux_buffer_params_v1Simon Ser
The parameters are used when the client is in the process of building a buffer. There's no reason why this internal implementation detail should be exposed in our public header.
2021-11-19ci/archlinux: enable address and undefined sanitizersSimon Zeni
2021-11-19tinywl: build with meson if examples option is enabledSimon Zeni
2021-11-19backend/drm: scan leases on ueventSimon Ser
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3181
2021-11-19drm-lease-v1: listen to lease destroy eventSimon Ser
2021-11-19backend/drm: introduce wlr_drm_leaseSimon Ser
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3183
2021-11-19Introduce WLR_DEVICE_LEASE eventsSimon Ser
This will allow the DRM backend to reload its lessee list.
2021-11-19output: remove XRGB8888 cursor fallback formatManuel Stoeckl
All graphics drivers supporting cursor planes support ARGB8888, the default cursor format, so this fallback is almost certainly unused. Essentially all cursor themes use alpha transparency to make it clearer where relative to the screen content the cursor hotspot is. It is better to fall back to a slightly slower software cursor than it is to fall back to the opaque square that is a hardware cursor without an alpha channel.
2021-11-19output: Add function to set preferred render formatManuel Stoeckl
This change introduces new double buffered state to the wlr_output, corresponding to the buffer format to render to. The format being rendered to does not control the bit depth of colors being sent to the display; it does generally determine the format with which screenshot data is provided. The DRM backend _may_ sent higher bit depths if the render format depth is increased, but hardware and other limitations may apply.
2021-11-19output: use XRGB8888 format instead of ARGB8888Manuel Stoeckl
Most (and possibly all) compositors using wlroots only ever render fully opaque content. To provide better performance, this change switches the default format used by wlr_output buffers from ARGB8888 to the opaque XRGB8888. Compositors like mutter, kwin, and weston already default to XRGB8888, so this change is unlikely to expose any new bugs in underlying drivers and hardware. This does not affect the hardware cursor's buffer format, which is still ARGB8888 by default. As part of this change, the X11 backend (which does not support changing format at runtime) now picks a true color, 24 bit depth visual (i.e. XRGB8888) instead of a 32 bit depth (ARGB8888) one.
2021-11-19output: lift up output format fallback logicManuel Stoeckl
This makes it possible for the two functions using output_pick_format (output_pick_cursor_format and output_create_swapchain) to select different buffer formats.
2021-11-19tinywl: init output render before commitSimon Zeni
2021-11-19backend: fix attempt_backend_by_name multi backend self insertionSimon Zeni
2021-11-19backend/multi: add asserts in wlr_multi_backend_addSimon Zeni
2021-11-19output: fix renderer buffer cap sanity check in wlr_output_init_renderSimon Ser
The backend and renderer don't directly interact together, so there's no point in checking that their buffer caps intersect. What we want to check is that: - The backend and allocator buffer caps are compatible, because the backend consumes buffers to display them. - The renderer and allocator buffer caps are compatible, because the renderer imports buffers to sample them or render to them. For instance, when running with the DRM backend and the Pixman renderer, the (backend & renderer) check will fail because backend = DMABUF and renderer = DATA_PTR.
2021-11-19docs: mention WLR_RENDERER=vulkan.Érico Nogueira
This option was added with commit 8e346922508aa3eaccd6e12f2917f6574f349843.
2021-11-18backend: remove wlr_backend_get_rendererSimon Zeni
2021-11-18backend/multi: remove backend_get_rendererSimon Zeni
2021-11-18backend/drm: stop initializing backend rendererSimon Zeni
2021-11-18backend/headless: don't store the parent rendererSimon Zeni
2021-11-18backend/x11: get renderer from wlr_x11_outputSimon Zeni
2021-11-18types/wlr_scene: use renderer from wlr_outputSimon Zeni
2021-11-18types/wlr_screencopy_v1: use renderer from outputSimon Zeni
2021-11-18backend: remove backend_get_allocatorSimon Zeni
2021-11-18backend: remove backend ensure renderer and allocator checkSimon Zeni
2021-11-18tinywl: autocreate allocator and init outputSimon Zeni
2021-11-18examples: init wlr_output with allocator and rendererSimon Zeni
2021-11-18output: add wlr_output_init_renderSimon Ser
Co-authored-by: Simon Zeni <simon@bl4ckb0ne.ca>
2021-11-17Improve wlr_drm_format documentationDemi Marie Obenour
A wlroots user can easily get confused and think that `cap` refers to wlroots buffer capabilities, not array capacity.
2021-11-17Remove support for DMA-BUF flagsSimon Ser
They are never used in practice, which makes all of our flag handling effectively dead code. Also, APIs such as KMS don't provide a good way to deal with the flags. Let's just fail the DMA-BUF import when clients provide flags.
2021-11-17linux-dmabuf-v1: properly validate flagsSimon Ser
We were send a protocol error if INTERLACED or BOTTOM_FIRST was set. This is incorrect for the zwp_linux_dmabuf_params.create code-path because this kills the client without allowing it to gracefully handle the error. We should only send a protocol error if the client provides a bit not listed in the protocol definition.
2021-11-15backend/headless: unlink input device on destroyRoman Gilg
Removing an input device requires unlinking it from the list of all headless input devices. For that implement a destroy function.
2021-11-14util/token: don't leak /dev/urandom fd to childrenRaphael Robatsch
Closes #3324.
2021-11-09egl: use alts for EGL_EXT_device_enum, if missingCole Mickens
2021-11-09render/allocator: make wlr_allocator part of the public APISimon Zeni
2021-11-08text-input: fix type of send_preedit_string() argsIsaac Freund
The protocol uses a signed integer here, which is also what the wlr_input_method_v2_preedit_string struct provides to compositors from the input method protocol. Sway currently just passes those int32_t values directly to this function leading to an implicit conversion.
2021-11-08output: drop wlr_output_export_dmabufSimon Ser
Callers can access output->front_buffer instead.
2021-11-08screencopy-v1: stop using wlr_output_export_dmabufSimon Ser
2021-11-08export-dmabuf-v1: stop using wlr_output_export_dmabufSimon Ser
2021-11-07text-input/input-method: handle strdup() failureIsaac Freund
2021-11-07scene: fix calloc size mismatchSimon Ser
2021-11-06CONTRIBUTING.md: add CoC sectionKirill Primak
2021-11-06output: fix leak of wlr_drm_formatIsaac Freund
2021-11-02backend/drm: handle per-connector hotplug eventsSimon Ser
When a connector ID is specified in a hotplug event, don't scan all connectors. Only scan the connector that has changed.
2021-11-02backend/session: introduce wlr_device_change_eventSimon Ser
This struct contains additional information for session device change events, such as the DRM connector ID that has changed.
2021-11-02xwayland: add support for -noTouchPointerEmulationSimon Ser
This allows compositors to handle touch pointer emulation manually, instead of having Xwayland do it [1]. [1]: https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/691
2021-11-02render: completely disable gles2 if requested but libEGL is foundJan Beich
For `required` to disable search the value needs to be of `feature` type. Checking `gles2` via `in` keyword returns a `bool` but `required: false` makes the dependency optional instead of disabled.