aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-07-05render: remove wl_drm support from wlr_rendererSimon Ser
Everything needs to go through the unified wlr_buffer interface now. If necessary, there are two ways support for EGL_WL_bind_wayland_display could be restored by compositors: - Either by using GBM to convert back EGL Wayland buffers to DMA-BUFs, then wrap the DMA-BUF into a wlr_buffer. - Or by wrapping the EGL Wayland buffer into a special wlr_buffer that doesn't implement any wlr_buffer_impl hook, and special-case that buffer type in the renderer.
2021-07-05render/gles2: use wlr_drm for wl_drm implementationSimon Ser
This allows use to remove all of our special wl_drm support code.
2021-07-05buffer: handle wl_drm buffersSimon Ser
This allows renderers to choose between implementing the old wlr_renderer_impl.texture_from_wl_drm hook, or opt for the new wlr_drm stub. The stub has the advantage of not requiring any special support code: stubbed wl_drm buffers look exactly like DMA-BUFs from linux-dmabuf-unstable-v1.
2021-07-05drm: add support for DMA-BUFsSimon Ser
Mesa's Vulkan WSI still uses wl_drm when modifiers aren't supported. This has been fixed in [1] but will take some time to be propagated to users. In the meantime, add a fallback. [1]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4942
2021-07-05Add a stub wl_drm implementationSimon Ser
This will allow us to remove all of our EGL wl_drm support code and remove some weird stuff we need just for wl_drm support. In particular, wl_drm buffers coming from the EGL implementation can't easily be wrapped into a wlr_buffer properly.
2021-07-05xcursor: improve documentationSimon Ser
2021-07-05backend/drm: don't clear pending cursor FB on failed commitSimon Ser
The previous fix tried to side-step cursor->pending_fb completely. However that messes up our buffer locking mechanism. Instead, stop clearing the pending cursor FB on a failed commit. The pending cursor FB will remain for the next commit. Fixes: 6c3d080e25e5 ("backend/drm: populate cursor plane's current_fb")
2021-07-05Revert "backend/drm: populate cursor plane's current_fb"Simon Ser
This reverts commit 6c3d080e25e56404228ad7704eed43e40fa0c623. Populating wlr_drm_plane.current_fb messes up the buffer's locking. The previous buffer is released while it's still being displayed on-screen.
2021-07-05region: drop leftover reference to the mailing listSimon Ser
As per [1], the mailing list isn't used anymore. [1]: https://github.com/swaywm/wlroots/pull/3016 Fixes: 82af6e720870 ("region: stabilize interface")
2021-07-05region: stabilize interfaceSimon Ser
References: https://github.com/swaywm/wlroots/issues/1008
2021-07-05Remove reference to the announce mailing listSimon Ser
The mailing list has never been used. I think listing the deprecated functions in the release notes is enough. I'd rather not add the burden of maintaining a separate communication medium.
2021-07-05surface: allow locking pending state in commit handlerSimon Ser
We were bumping the pending sequence number after emitting the commit event, so commit handlers were seeing inconsistent state where current.seq == pending.seq. This prevents commit handlers from immediately locking the pending state. Fix this by bumping the pending sequence number before firing the commit event.
2021-07-05backend/libinput: use wl_array for wlr_libinput_tablet.toolsSimon Ser
Instead of using a single-field wl_list, let's just use a wl_array.
2021-07-01buffer: make enum wlr_buffer_cap publicSimon Ser
Custom backends and renderers need to implement wlr_backend_impl.get_buffer_caps and wlr_renderer_impl.get_render_buffer_caps. They can't if enum wlr_buffer_cap isn't made public.
2021-07-01render: drop wlr_renderer_impl.texture_from_dmabufSimon Ser
2021-07-01render: use wlr_dmabuf_buffer in wlr_texture_from_dmabufSimon Ser
2021-07-01buffer: add wlr_dmabuf_bufferSimon Ser
2021-07-01render: drop wlr_renderer_impl.texture_from_pixelsSimon Ser
2021-07-01render: use wlr_readonly_data_buffer in wlr_texture_from_pixelsSimon Ser
2021-07-01buffer: introduce wlr_readonly_data_bufferSimon Ser
2021-07-01tablet-v2: fix pad and tool object versionsSimon Ser
These were hardcoded to 1. Instead, create the resource with the version of the parent object.
2021-07-01Drop wlr_listSimon Ser
2021-07-01tablet: stop using wlr_listSimon Ser
2021-07-01backend/libinput: stop using wlr_list internallySimon Ser
2021-07-01util/array: add array_remove_atSimon Ser
2021-07-01Remove unused wlr_list.h includesSimon Ser
2021-06-30render/egl: replace wlr_egl_create with wlr_egl_create_with_drm_fdSimon Ser
We never create an EGL context with the platform set to something other than EGL_PLATFORM_GBM_KHR. Let's simplify wlr_egl_create by taking a DRM FD instead of a (platform, remote_display) tuple. This hides the internal details of creating an EGL context for a specific device. This will allow us to transparently use the device platform [1] when the time comes. [1]: https://github.com/swaywm/wlroots/pull/2671
2021-06-30surface: accept commits with buffer size not divisible by scaleSimon Ser
There are still many situations where the buffer scale is not divisible by scale. The fix will require a tad more work, so let's just log the client error for now and continue handling the surface commit as usual. Closes: https://github.com/swaywm/sway/issues/6352
2021-06-30touch: document event data typesSimon Ser
2021-06-30pointer: document event data typesSimon Ser
2021-06-29surface: make wlr_subsurface_create privateSimon Ser
Same as [1], but for wlr_subsurface. [1]: https://github.com/swaywm/wlroots/pull/2814
2021-06-29surface: remove SURFACE_VERSIONSimon Ser
surface_create is now private, so no need to worry about the version being too high anymore.
2021-06-29Drop WLR_VERSION_API_*Simon Ser
These weren't set in the build, thus Meson was just dropping them in the generated file.
2021-06-25ci: make Meson warnings fatalSimon Ser
New warnings can be hard to notice in CI, since CI will just pass in that case. Meson sometimes uses warnings for important mistakes, e.g. invalid option. Let's turn warnings into errors so that we can spot these more easily.
2021-06-25ci: remove -Dlibseat from Alpine buildSimon Ser
This build option doesn't exist anymore.
2021-06-25build: use meson.global_build_root()Simon Ser
meson.build_root() is deprecated. References: https://github.com/mesonbuild/meson/pull/8629
2021-06-25xwayland: improve startup log messageSimon Ser
Logging the raw Xwayland command-line was incomplete, uninformative and confusing for end-users. Instead, print a proper message in English.
2021-06-24render/egl: make most functions privateSimon Ser
The wlr_egl functions are mostly used internally by the GLES2 renderer. Let's reduce our API surface a bit by hiding them. If there are good use-cases for one of these, we can always make them public again. The functions mutating the current EGL context are not made private because e.g. Wayfire uses them.
2021-06-24render/egl: remove stale wlr_egl_export_image_to_dmabuf declSimon Ser
This function has been removed, but we forgot to drop it from the header.
2021-06-24backend/drm: rename page_flip_handler to handle_page_flipSimon Ser
This is more consistent with the rest of the wlroots naming.
2021-06-23build: bump version to 0.15.0Simon Ser
2021-06-22Revert "build: workaround for meson disabler object not working with if not"Simon Ser
This reverts commit 9796abccedef881e99d293a2658c4da9466acd88. This Meson issue has been fixed upstream for a while. We require 0.56.0 so we should never hit an unpatched Meson.
2021-06-20backend: add output state allow-listsSimon Ser
Right now, when a new output state field is added, all backends by default won't reject it. This means we need to add new checks to each and every backend when we introduce a new state field. Instead, introduce a bitmask of supported output state fields in each backend, and error out if the user has submitted an unknown field. Some fields don't need any backend involvment to work. These are listed in WLR_OUTPUT_STATE_BACKEND_OPTIONAL as a convenience.
2021-06-20Revert "meson: Make private static library symbols local"Kenny Levinsen
This reverts commit 28d23ba6bda4f799b8d6689555cd33a40adda17e. The prelinking and symbol filtering pass breaks builds with link-time optimization enabled.
2021-06-19render: add get native paint target of rendererzccrs
Add wlr_pixman_buffer_get_current_image for wlr_pixman_renderer. Add wlr_gles2_buffer_get_current_fbo for wlr_gles2_renderer. Allow get the FBO/pixman_image_t, the compositor can be add some action for FBO(for eg, attach a depth buffer), or without pixman render to pixman_image_t(for eg, use QPainter of Qt instead of pixman).
2021-06-19render/pixman: add wlr_*_is_pixman and wlr_pixman_texture_get_imagezccrs
Add the following functions: - wlr_renderer_is_pixman - wlr_texture_is_pixman - wlr_pixman_texture_get_image
2021-06-19render/gles2: add wlr_renderer_is_gles2zccrs
Export the interface used to determine whether the wlr_renderer object is gles2.
2021-06-17xdg-activation-v1: fix wlr_xdg_activation_v1_create error pathSimon Ser
2021-06-17build: simplify version scriptSimon Ser
Let's expose all of our prefixed symbols. Instead of trying to have fine-grained rules and only expose our public API, let's just expose all symbols that won't cause a conflict. Users won't be able to use the symbols without a proper header declaration anyways. If they go through the process of re-defining wlr_ symbols manually, that's on them if their build breaks. This aligns the rules with [1]. [1]: https://github.com/swaywm/wlroots/pull/2969
2021-06-17ci: Build both static and sharedKenny Levinsen
This allows us to validate the objcopy trick in CI. It's basically free to build both static and shared libraries anyway. We only enable this for GCC builds right now, as Meson currently lacks support for prelinking with other compilers.