Age | Commit message (Collapse) | Author |
|
When a client was creating multiple data devices for the same seat, we were
only creating one resource. This is a protocol error.
Instead, create one offer per data device.
This commit also makes offers inert when their source is destroyed.
Fixes part of https://github.com/swaywm/wlroots/issues/1041
Supersedes https://github.com/swaywm/wlroots/pull/1113
|
|
Render software cursors in compositor
|
|
|
|
Rendering in wlr_output_swap_buffers has unfortunate side-effects.
|
|
This wasn't using direct scan-out. Direct scan-out will probably
work differently with @ascent12's work anyway.
|
|
X11 backend improvements
|
|
|
|
This also allows us to remove xcb-xkb, since Xinput will now give us the
appropriate XKB modifiers with each event.
|
|
|
|
|
|
There isn't any real reason to delay this until the backend is started.
|
|
|
|
When the Xlib connection is removed, this _conn suffix is going to be
pointless. I'm removing this preemtively for that.
|
|
xdg-shell: don't destroy xdg role state on role destroy
|
|
Use #if instead of #ifdef for wlroots config data
|
|
Wayland backend improvements
|
|
ie. don't destroy surface->toplevel on xdg_toplevel destroy. Instead do this on
xdg_surface destroy.
This allows compositors to add toplevel listeners when the surface appears and
remove them when the surface is destroyed.
|
|
This prevents some annoying issues when e.g. not including wlr/config.h or
making a typo in the guard name.
|
|
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
|
|
|
|
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.
|
|
Explicitly use the version we support instead of accepting the
compositor's version.
|
|
Registry was a very small file, and is heavily related to the backend,
so there is not point in keeping them separate.
|
|
render: correctly set EGL_RENDERABLE_TYPE
|
|
This should be set to EGL_OPENGL_ES2_BIT.
Also fixes EGL config attributes in the headless and X11 backends.
|
|
Tell Mesa not to attempt X11 headers
|
|
If no X11 related things are being built, tell Mesa's eglplatform.h not to attempt inclusion of associated X11 header.
|
|
Force ftruncate for shared memory objects on FreeBSD
|
|
|
|
The posix_fallocate function should only be used with regular files.
|
|
Fix compilation error on musl
|
|
_XOPEN_SOURCE is needed for the strings.h ffs function on the musl libc implementation
|
|
FreeBSD does not allow to use posix_fallocate on shared memory objects.
|
|
xcursor: Fix heap overflows when parsing malicious files
|
|
It is possible to trigger heap overflows due to an integer overflow
while parsing images.
The integer overflow occurs because the chosen limit 0x10000 for
dimensions is too large for 32 bit systems, because each pixel takes
4 bytes. Properly chosen values allow an overflow which in turn will
lead to less allocated memory than needed for subsequent reads.
See also:
https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/?id=4794b5dd34688158fb51a2943032569d3780c4b8
https://gitlab.freedesktop.org/wayland/wayland/commit/5d201df72f3d4f4cb8b8f75f980169b03507da38
|
|
Use _POSIX_C_SOURCE, use shm_open
|
|
|
|
|
|
Fix damage tracking for surfaces with transforms
|
|
render/gles2: remove assumptions about supported formats
|
|
Transforms were applied, but scale wasn't.
|
|
|
|
Since the format used by DRM is GBM_FORMAT_ARGB8888, we need at least a R, G, B
and A channel.
|
|
We were assuming GL_BGRA_EXT was always supported.
We now check that it's supported for rendering. We fail if it isn't because
this format is specified as "always supported" by the Wayland protocol.
We also check if it's supported for reading pixels. A new preferred_read_format
function returns the preferred format that can be used to read pixels. This is
used by the screencopy protocol.
|
|
rootston: fix segfault in view_at
|
|
backend/drm: fix frame scheduling on secondary GPUs
|
|
backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variable
|
|
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.
|
|
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).
|
|
|