aboutsummaryrefslogtreecommitdiff
path: root/include/backend
AgeCommit message (Collapse)Author
2024-02-29backend/libinput: use NULL to indicate missing device nameSimon Ser
libinput guarantees that the name is non-NULL, and an empty string if unset. However wlroots uses NULL to indicate that an input device name is unset.
2024-02-28pointer: drop enum wlr_axis_relative_directionSimon Ser
Instead, use enum wl_pointer_axis_relative_direction from the Wayland protocol.
2024-02-28pointer: drop enum wlr_axis_sourceSimon Ser
Instead, use enum wl_pointer_axis_source from the Wayland protocol.
2024-02-21backend/drm: don't destroy previous DRM master blobsSimon Ser
On startup, we fetch the previous MODE_ID blob ID so that compositors can keep using the previous mode if they want to. However, that blob doesn't belong to us, it belongs to the previous DRM master. As a result, we get an error when trying to destroy it. Fix this by tracking whether the blob belongs to us or not. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3811
2024-02-21backend/drm: fix broken link to KMS property docsSimon Ser
The Linux graphics section of 01.org is no more. Link to more official docs instead.
2024-02-15backend/drm: move restore logic to drm.cSimon Ser
We'll need to use a bunch of internal functions from that file in the next commits.
2024-02-14backend/drm: atomically reset state after VT switchSimon Ser
Allows the KMS driver to parallelize the modesets, so should be faster than going through each CRTC one by one.
2024-02-14backend/drm: drop wlr_drm_backend arg from create_mode_blob()Simon Ser
No need for this, the backend can be grabbed from the connector.
2024-01-25backend/multi: take wl_event_loop instead of wl_displaySimon Ser
2024-01-25backend/drm: drop wl_display argumentSimon Ser
We can grab the event loop from the wlr_session instead.
2024-01-25backend/x11: take wl_event_loop instead of wl_displaySimon Ser
2024-01-25backend/wayland: take wl_event_loop instead of wl_displaySimon Ser
2024-01-25backend/libinput: drop wl_display argumentSimon Ser
We can grab the event loop from the wlr_session instead.
2024-01-25backend/headless: take wl_event_loop instead of wl_displaySimon Ser
2024-01-23backend/wayland: populate pointer axis relative directionSimon Ser
2023-12-30backend/drm: save current refresh rateSimon Ser
wlr_output.refresh is populated by core wlr_output, and thus will be zero for a custom mode with an unset refresh rate. Save the refresh rate from the drmModeModeInfo in wlr_drm_connector instead. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3791
2023-11-30backend/drm: remove wlr_drm_renderer.backendSimon Ser
This is unused.
2023-11-30backend/drm: move drm_plane_finish_surface() to drm.cSimon Ser
This function touches queued_fb/current_fb, which the renderer has nothing to do with.
2023-11-30backend/drm: split wlr_drm_fb related functions into separate fileSimon Ser
2023-11-27backend/x11: don't send ConfigureRequest with the same sizeKirill Primak
Under X11, ConfigureNotify means that the window has already been resized. Sending ConfigureRequest with the received size is not only useless, but also can confuse the window manager, which will probably reply with the current (i.e. *old*) size causing a configure loop. Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3769
2023-11-23backend/session: take wl_event_loop instead of wl_displaySimon Ser
wl_display holds a lot more than wlr_session needs: wlr_session only needs to wait for a FD to become readable, but wl_display provides full access to the Wayland client and protocol objects. Switch to wl_event_loop to better reflect the above.
2023-11-19backend/drm: add wlr_drm_connector_state.nonblockSimon Ser
Instead of having this condition checked in multiple places, centralize it so that they don't go out-of-sync.
2023-11-17backend/drm: Destroy page flips on backend destroyAlexander Orzechowski
When we destroy the backend, page flips will no longer be invoked meaning those won't clean up the page flips for us.
2023-11-17backend/drm: Track page flips in listAlexander Orzechowski
2023-11-17backend/drm: introduce page-flip tracking structSimon Ser
Introduce a per-page-flip tracking struct passed to the kernel when we request a page-flip event for an atomic commit. The kernel will pass us back this pointer when delivering the event. This eliminates any risk of mixing up events together. In particular, if two events are pending, or if the CRTC of a connector is swapped, we no longer blow up in the page-flip event handler. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3753
2023-10-30backend: drop wlr_backend_get_presentation_clock()Simon Ser
We can just assume CLOCK_MONOTONIC everywhere. Simplifies the backend API, and fixes clock mismatches when multiple backends are used together with different clocks.
2023-10-02docs: replace the less commonly used "::" with "."Kirill Primak
2023-09-28backend/drm: Add async page flip support to legacyvaxerski
Atomic doesn't support such flags yet.
2023-08-16backend/wayland: wait for xdg_surface.configure explicitlySimon Ser
We were assuming a roundtrip was enough to get an xdg_surface.configure event. That's not the case, the protocol spec doesn't make such a guarantee.
2023-08-16backend/wayland: add wlr_wl_output_create_from_surface()Simon Ser
By using this function, a compositor can display a wlroots compositor in a sub-surface, for instance.
2023-08-16backend/wayland: tag wl_surfaceSimon Ser
When integrating wlroots with another toolkit, wlroots may receive wl_pointer.enter events for surfaces not backed by a wlr_output. Ignore such surfaces by tagging the ones we're aware of with wl_proxy_set_tag().
2023-08-16backend/wayland: take existing wl_display in wlr_wl_backend_create()Simon Ser
This allows compositors to use an existing wl_display, to integrate wlroots with an existing toolkit.
2023-06-30backend/drm: handle output layer damageSimon Ser
2023-06-12backend/drm: clip FB damageSimon Ser
The kernel complains when the damage exceeds the FB bounds: [73850.448326] i915 0000:00:02.0: [drm:drm_atomic_check_only] [PLANE:31:plane 1A] invalid damage clip 0 0 2147483647 2147483647 Make the DRM backend behave like the Wayland one and allow compositors to damage (0, 0, INT32_MAX, INT32_MAX) to repaint everything without needing to know the exact buffer size. Closes: https://github.com/swaywm/sway/issues/7632
2023-06-05Add some missing includes/declarationsKirill Primak
2023-06-05backend/wayland: add scaling support for output layersSimon Ser
Use the viewporter protocol to scale output layers.
2023-05-11wlr_drm_format: Rework wlr_drm_format_intersectAlexander Orzechowski
Now it takes a reference to a destination format
2023-03-28backend/wayland: only unmap layers when necessarySimon Ser
2023-03-24backend/wayland: support touch cancel eventsRose Hudson
since wayland doesn't provide a touch id in cancel events, track what points are active so we can cancel all of them timestamp is also not provided - use 0 because no one's paying attention to that anyway Closes #3000
2023-02-28backend/drm: use libdisplay-info for CVT mode generationSimon Ser
2023-02-28backend/drm: use libdisplay-info to parse EDIDSimon Ser
2023-02-21backend/drm: drop wlr_drm_layer.pending_{width,height}Simon Ser
No need to store this info in struct wlr_drm_layer. We can just extract the size when we need it.
2023-02-20backend/drm: send output layer feedback eventsSimon Ser
2023-02-20backend/drm: add support for output layersSimon Ser
2023-02-20backend/drm: add libliftoff composition layerSimon Ser
This will be useful for implementing the output layers API.
2023-02-20backend/drm: add libliftoff interfaceSimon Ser
2023-02-20backend/drm: init wlr_drm_plane for all plane typesSimon Ser
2023-02-20backend/wayland: implement output layersSimon Ser
2023-02-02backend/wayland: handle wl_registry.global_remove for wl_seatSimon Ser
Destroy the struct wlr_wl_seat when the global is removed.
2023-02-02backend/wayland: make destroy_wl_seats() handle a single seatSimon Ser
Instead of destroying all seats, destroy a single one. We only need to destroy all seats at one call-site (backend_destroy), but we'll need to destroy a single seat elsewhere in the next commit.