aboutsummaryrefslogtreecommitdiff
path: root/backend
AgeCommit message (Collapse)Author
2019-01-31backend/session/logind: dup FD with CLOEXECemersion
2019-01-29Require libdrm >= 2.4.95emersion
2019-01-29Merge pull request #1509 from emersion/gbm-fmt-mismatchDrew DeVault
backend/drm: fix GBM format mismatch
2019-01-29backend/drm: fix GBM format mismatchemersion
We create the EGL config with GBM_FORMAT_ARGB8888, but then initialize GBM BOs with GBM_FORMAT_XRGB8888. This mismatch confuses Mesa. Instead, we can always use GBM_FORMAT_ARGB8888, and use DRM_FORMAT_XRGB8888 when calling drmModeAddFB2. Fixes https://github.com/swaywm/wlroots/issues/1438
2019-01-28Implement the pointer-gestures-unstable-v1 protocolGreg V
This protocol relays touchpad gesture events produced by libinput to supporting clients (e.g. Evince, Eye of GNOME).
2019-01-26backend/wayland: handle wl_pointer.axis_stopemersion
2019-01-26pointer: add a frame eventemersion
Frame events group logically connected pointer events. It makes sense to make the backend responsible for sending frame events, since once the events are split (ie. once the frame events are stripped) it's not easy to figure out which events belongs to which frame again. This is also how Weston handles frame events. Fixes https://github.com/swaywm/wlroots/issues/1468
2019-01-24backend/x11 & backend/wayland: make set_title NULL-safeJente Hidskes
Set the default "wlroots - " title when the title argument to the set_title functions is NULL. Otherwise, for at least the Wayland backend, we'd crash because xdg_toplevel_set_title doesn't handle a NULL pointer.
2019-01-22backend/wayland: fix resizingBrian Ashworth
Before resizing the egl window, the buffers must be swapped
2019-01-20Add wlr_x11_output_set_titleJente Hidskes
2019-01-19backend/drm: fix state for outputs loosing their CRTCemersion
When there aren't enough CRTCs for all outputs, we try to move a CRTC from a disabled output to an enabled one. When this happens, the old output's state wasn't changed, so the compositor thought it was still enabled and rendering. This commit marks the old output as WLR_DRM_CONN_NEEDS_MODESET and sets its current mode to NULL.
2019-01-17Introduce noop backendRyan Dwyer
The noop backend is similar to headless, but it doesn't contain a renderer. It can be used as a place to stash views for when there's no physical outputs connected.
2019-01-10Add wlr_wl_output_set_titleDrew DeVault
2019-01-10Update Wayland backend to xdg-shell stableDrew DeVault
2019-01-07Simplify evdev includes on FreeBSD by relying on up-to-date packageJan Beich
As evdev-proto is installed by CI some files have been missed: ../examples/pointer-constraints.c:2:10: fatal error: 'linux/input-event-codes.h' file not found #include <linux/input-event-codes.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../examples/relative-pointer-unstable-v1.c:5:10: fatal error: 'linux/input-event-codes.h' file not found #include <linux/input-event-codes.h> ^~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-01-04Merge pull request #1432 from ForTheReallys/relative-pointersemersion
Relative pointers
2018-12-23backend/drm: get physical size from libdrmemersion
Values from libdrm are likely more reliable than raw values from the EDID. We were already using values from libdrm, but they were overwritten by parse_edid. See drm.c: wlr_conn->output.phys_width = drm_conn->mmWidth; wlr_conn->output.phys_height = drm_conn->mmHeight;
2018-12-21Standardize the wlr_box input paramatersTimidger
Fixes #1094
2018-12-21Add unaccelerated pointer values to wlr_event_pointer_motion eventsAlex Maese
2018-12-16backend/drm: don't insert duplicate custom modes, fix refresh rateemersion
2018-12-15[WIP][DONTMERGE]Add support for libinput_switch input devicesRyan Walklin
These are used primarily by laptops to signal the state of the lid (open/closed) and tablet mode if supported, based on ACPI events.
2018-12-09backend/drm: Fix uninitialized variableScott Anderson
2018-12-09backend/drm: Improve encoder logicScott Anderson
This fixes an issue that can occur with DP MST connectors not reporting any encoders.
2018-12-09backend/drm: fix disappeared output indicesemersion
This commit changes `scan_drm_connectors` to add new outputs to the end of the list. That way, it's easier to understand what's going on with indices. When we need to destroy outputs, we now walk the list in reverse order. This ensures indices remain correct while iterating and removing items from the list. We now also make outputs without a CRTC disappear (those are in WLR_DRM_CONN_NEEDS_MODESET state).
2018-12-06Merge pull request #1413 from emersion/logind-session-logsDrew DeVault
backend/session/logind: improve logging
2018-12-06backend/session/logind: improve loggingemersion
2018-12-04backend/drm: fix VLA overflowemersion
2018-11-27backend/wayland: fix zero-length VLAemersion
2018-11-22Fix interlaced mode rejectionRostislav Pehlivanov
2018-11-21Skip interlaced modes during drm mode detectionRostislav Pehlivanov
Fixes #3167 A better solution could be made if there's a need to.
2018-11-13backend/x11: Hide cursor with XfixesScott Anderson
2018-11-13backend/x11: Remove old input functionsScott Anderson
This also allows us to remove xcb-xkb, since Xinput will now give us the appropriate XKB modifiers with each event.
2018-11-13backend/x11: Add new Xinput eventsScott Anderson
2018-11-13backend/x11: Check for xinput extensionScott Anderson
2018-11-13backend/x11: Move atom initilisation earlierScott Anderson
There isn't any real reason to delay this until the backend is started.
2018-11-13backend/x11: Make header order consistentScott Anderson
2018-11-13backend/x11: Rename xcb_conn to xcbScott Anderson
When the Xlib connection is removed, this _conn suffix is going to be pointless. I'm removing this preemtively for that.
2018-11-12Merge pull request #1372 from emersion/config10Drew DeVault
Use #if instead of #ifdef for wlroots config data
2018-11-12Use #if instead of #ifdef for wlroots config dataemersion
This prevents some annoying issues when e.g. not including wlr/config.h or making a typo in the guard name.
2018-11-11backend/wayland: handle WL_EVENT_WRITABLE for Wayland socketemersion
We need to flush when the connection is writable again. This is important in case the write buffer becomes full. This is also what Weston does [1]. [1]: https://gitlab.freedesktop.org/wayland/weston/blob/master/libweston/compositor-wayland.c#L2593
2018-11-11backend/wayland: Make header order consistentScott Anderson
2018-11-11backend/wayland: Move initilisation code earlierScott Anderson
The renderer redesign is going to need the render fd before the backend is fully started, so we have to move the wl registry code to when the backend is created instead of when it is started. We also need to stash the wl_keyboard and emit it to library users later, once they've added their listeners and started the backend.
2018-11-11backend/wayland: Use specific wl_global versionsScott Anderson
Explicitly use the version we support instead of accepting the compositor's version.
2018-11-11backend/wayland: Move registry into backendScott Anderson
Registry was a very small file, and is heavily related to the backend, so there is not point in keeping them separate.
2018-11-10render: correctly set EGL_RENDERABLE_TYPEemersion
This should be set to EGL_OPENGL_ES2_BIT. Also fixes EGL config attributes in the headless and X11 backends.
2018-11-04backend/drm: specify minimum config attributesemersion
Since the format used by DRM is GBM_FORMAT_ARGB8888, we need at least a R, G, B and A channel.
2018-10-30Merge pull request #1346 from emersion/fix-schedule-frame-mgpuDrew DeVault
backend/drm: fix frame scheduling on secondary GPUs
2018-10-29backend/drm: fix frame scheduling on secondary GPUsemersion
There was a missing copy_drm_surface_mgpu call in drm_connector_schedule_frame so we asked for a pageflip with an unknown BO, resulting in ENOENT. Additionally, this commit makes schedule_frame return a bool indicating failures. This allows schedule_frame_handle_idle_timer to only set frame_pending to true if a frame has been successfully scheduled. Thus, if a pageflip fails, rendering won't be blocked forever anymore. In case a pageflip is already pending, true is returned because a frame has already been scheduled and will be sent sometime soon.
2018-10-28backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variableemersion
This allows the legacy interface to be used instead of atomic if needed. This is a workaround to make some Intel GPUs work (if this variable is unset) as well as to make some AMD GPUs work (if this variable is set).
2018-10-21Merge pull request #1307 from emersion/static-analysisDrew DeVault
Fix a few bugs found by the static analyzer