aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-25backend: error out when missing DRM and libinput in wlr_backend_autocreate()Simon Ser
Instead of returning an empty multi backend, fail with a clear error when both the DRM and libinput backends are disabled.
2022-11-25backend/session: disable libseat examples for subproject by defaultSimon Ser
We have no use for these.
2022-11-25shm: add create() function without a wlr_rendererSimon Ser
This allows compositors which don't use wlr_renderer to still use wlroots' wl_shm implementation.
2022-11-25render/vulkan: add support for RGB565 texture formatManuel Stoeckl
Since this does not have a matching _SRGB-type vulkan format, add a new shader variant/pipeline to perform the sRGB->linear texture conversion.
2022-11-24scene: introduce wlr_scene_buffer.events.outputs_updateKirill Primak
This event is useful for e.g. sending the preferred buffer scale to the client.
2022-11-24compositor: make renderer optionalSimon Ser
This is a first step towards moving texture uploading out of wlr_compositor. This commit allows compositors to opt-out of the texture uploading by passing a NULL wlr_renderer. An immediate user of this is gamescope, which currently implements a stub wlr_renderer just to make wlr_compositor happy.
2022-11-24compositor: release current buffer after commit eventSimon Ser
Some compositors may want to access the original buffer in their commit handler.
2022-11-24compsitor: document wlr_compositor_create()Simon Ser
2022-11-24backend/multi: stop pulling <wlr/backend/session.h>Simon Ser
Unused.
2022-11-24render/gles2, render/pixman: stop pulling <wlr/backend.h>Simon Ser
No reason why the GLES2/Pixman renderers should depend on the backend.
2022-11-24backend: stop pulling <wlr/backend/session.h>Simon Ser
We can just forward-declare the struct instead.
2022-11-24backend/session: drop unused <libudev.h>Simon Ser
We don't actually need to pull that header here.
2022-11-24render: stop pulling <wlr/backend.h>Simon Ser
Let's just forward-declare struct wlr_backend instead. We need to fixup the Vulkan renderer: it needs makedev(), which got included by chance via <wlr/backend.h> → <wlr/backend/session.h> → <libudev.h>.
2022-11-24seat/pointer: Initialize low_res_valueGuido Günther
Fixes In file included from /usr/include/wayland-server-core.h:32, from ../types/seat/wlr_seat_pointer.c:6: In function 'wl_fixed_from_double', inlined from 'wlr_seat_pointer_send_axis' at ../types/seat/wlr_seat_pointer.c:367:6: /usr/include/wayland-util.h:641:17: error: 'low_res_value' may be used uninitialized [-Werror=maybe-uninitialized] 641 | u.d = d + (3LL << (51 - 8)); | ~~^~~~~~~~~~~~~~~~~~~ ../types/seat/wlr_seat_pointer.c: In function 'wlr_seat_pointer_send_axis': ../types/seat/wlr_seat_pointer.c:329:16: note: 'low_res_value' was declared here 329 | double low_res_value; | ^~~~~~~~~~~~~
2022-11-22Relax 80 column limitSimon Ser
80 cols is a bit short. Linux uses a soft 100 limit, let's do the same.
2022-11-21render/vulkan: update shm texture data in one batchManuel Stoeckl
2022-11-18xwayland/xwm: add support for xwayland-shell-v1Simon Ser
2022-11-18xwayland/shell: add wlr_xwayland_shell_v1_surface_from_serial()Simon Ser
2022-11-18xwayland/server: delay non-lazy startupSimon Ser
This allows users to setup event listeners before the server is actually started.
2022-11-18xwayland/server: add start signalSimon Ser
This can be used to know when wlr_xwayland_server decides to start a new Xwayland process. At that point the wl_client has already been created but the Xwayland process hasn't been started yet.
2022-11-18xwayland: add wlr_xwayland_shell_v1_destroy()Simon Ser
2022-11-18xwayland: add wlr_xwayland_shell_v1_set_client()Simon Ser
2022-11-18xwayland-shell-v1: new protocol implementationSimon Ser
References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/163
2022-11-17wl-drm: use resource interfaceSimon Ser
Instead of hardcoding builtin resource types in wlr_buffer_from_resource(), use the modular resource interface.
2022-11-17linux-dmabuf-v1: use resource interfaceSimon Ser
Instead of hardcoding builtin resource types in wlr_buffer_from_resource(), use the modular resource interface.
2022-11-17Nuke deprecated include/wlr/types/wlr_surface.hKirill Primak
Use wlr_compositor.h and wlr_subcompositor.h instead.
2022-11-17xdg-shell: send invalid_size errorsKirill Primak
2022-11-17output: drop wlr_output_damage_whole()Simon Ser
This function is not used anymore. Backends have no good reason to damage outputs.
2022-11-17backend/drm: don't damage output on CRTC changeSimon Ser
There's no reason why the output should be damaged here. The current buffer doesn't need to be re-painted.
2022-11-17output: call wlr_output_update_enabled() after commitSimon Ser
Backends no longer need to manually call wlr_output_update_enabled() in their commit hook: wlr_output will take care of that.
2022-11-17allocator/drm_dumb: use libdrm dumb buffer helpersSimon Ser
References: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/272
2022-11-16wlr_seat: clear `drag->seat_client` when destroyedbi4k8
This was previously a use-after-free in `wlr_drag.c`.
2022-11-15backend: rename backend to multi in wlr_backend_autocreate()Simon Ser
This function deals with multiple kinds of backends. Make it more obvious that this variable holds the multi backend which is returned to the user.
2022-11-15backend: drop wlr_backend_get_session()Simon Ser
This no longer has purpose.
2022-11-15backend: return wlr_session in wlr_backend_autocreate() callSimon Ser
Up until now, wlr_backend_autocreate() created the wlr_session and then stuffed it into struct wlr_multi_backend so that compositors can grab it later. This is an abuse of wlr_multi_backend and the wlr_backend API: wlr_backend_get_session() and wlr_multi_backend.session only exist to accomodate the needs of wlr_backend_autocreate(). What's more, the DRM and libinput backends don't implement wlr_backend_impl.get_session. Instead, return the struct wlr_session to the compositor in the wlr_backend_autocreate() call. wlr_backend_get_session() will be removed in the next commit.
2022-11-15output: Initialize request_stateAlexander Orzechowski
2022-11-15shm: allow accessing multiple shm mapping concurrentlySimon Ser
Use a basic linked list to store the currently active mappings. Note that we don't actually need to implement a full lock-free atomic linked list here. The signal handler will never write to the list, it will only read it. Only the main thread will write. We need to always expose a consistent view of the list to the signal handler (the main thread might be interrupted at any point by the signal handler).
2022-11-15buffer: drop wlr_shm_client_bufferSimon Ser
It's been superseded by wlr_shm.
2022-11-15render: use wlr_shm in wlr_renderer_init_wl_shm()Simon Ser
2022-11-15Introduce wlr_shmSimon Ser
This is a re-implementation of wl_shm. The motivations for using this over the one shipped in libwayland are: - Properly handle SIGBUS when accessing a wl_buffer's underlying data after the wl_buffer protocol object has been destroyed. With the current code, we just crash if the client does that and then shrinks the backing file. - No need to fight the wl_shm_buffer API anymore. This was awkward because we weren't notified when clients created a wl_shm buffer, and this doesn't play well with our wlr_buffer abstraction. - Access to the underlying FD. This makes it possible to forward the wl_shm buffer to a parent compositor with the Wayland/X11 backends. - Better stride checks. We can use our format table to ensure that the stride is consistent with the bpp and width.
2022-11-15render/pixel_format: import pixel_format_info_check_stride()Simon Ser
We'll use this function from wlr_shm too. Add some assertions, use int32_t (since the wire protocol uses that, and we don't want to use 16-bit integers on exotic systems) and switch the stride check to be overflow-safe.
2022-11-15input-inhibitor: deprecateKirill Primak
The protocol itself has been deprecated.
2022-11-15render/vulkan: detect device lossSimon Ser
2022-11-15render/egl: enable EGL_LOSE_CONTEXT_ON_RESETSimon Ser
This allows the GLES2 renderer to figure out when a GPU reset happens.
2022-11-15render/gles2: query glGetGraphicsResetStatusKHRSimon Ser
Call glGetGraphicsResetStatusKHR in wlr_renderer_begin to figure out when a GPU reset occurs. Destroy the renderer when this happens (the OpenGL context is defunct).
2022-11-15render: add wlr_renderer.events.lostSimon Ser
2022-11-15scene: check wlr_renderer_begin return valueSimon Ser
2022-11-15output: check wlr_renderer_begin return valueSimon Ser
2022-11-15render: make wlr_renderer_begin return a boolSimon Ser
2022-11-15render: allow wlr_renderer_impl.begin to failSimon Ser
Make it return a bool to indicate success/failure. Adapt the various implementations to check errors.