87969c1c7c 
								
									
								
							
								 
							
						 
						
							
							
								
								xdg-decoration: send missing protocol errors  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								039cca8a51 
								
							
								 
							
						 
						
							
							
								
								xwm: emit new_surface/destroy on associate/dissociate  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								ad51983b23 
								
							
								 
							
						 
						
							
							
								
								xwm: make atom_map static  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								9ac94516b8 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Skip direct scanout if there is no damage  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								774d2c82f0 
								
							
								 
							
						 
						
							
							
								
								xwm: remove misleading comment  
							
							... 
							
							
 
							
							The surfaces are stored in the bottom-to-top order, as specified
in include/xwayland/xwm.h and expected by
wlr_xwayland_surface_restack(). 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								38839ac536 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: simplify get_gamma_control error handling  
							
							... 
							
							
 
							
							Allocate resources only after checking the request. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								9108717d5d 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: fix handling of duplicate control  
							
							... 
							
							
 
							
							When a new client comes in and tries to create a
zwlr_gamma_control_v1 object for an output which already has one,
we were destroying the old object and early-returning. The early
return causes the new object to not be set up properly: it's not
inserted in the list and doesn't get the gamma_size event.
Fix this by destroying the new object, and leave the old object
intact, which is what was the intent I think.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3605  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								3a200aa279 
								
							
								 
							
						 
						
							
							
								
								tinywl: init server to zeros  
							
							... 
							
							
 
							
							This fixes e.g. accessing grabbed_view on a toplevel unmap if no
toplevel was grabbed before. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								5ae17de23f 
								
									
								
							
								 
							
						 
						
							
							
								
								xdg-shell: improve validation of resize edges  
							
							... 
							
							
 
							
							The current validation doesn't catch some invalid values such as 3 or 7. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								97c8ad7c65 
								
							
								 
							
						 
						
							
							
								
								backend/wayland: fix leak of some globals  
							
							... 
							
							
 
							
							Fix a few globals which weren't properly cleaned up. Discovered
in [1].
[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3604  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								cab47d33e2 
								
							
								 
							
						 
						
							
							
								
								util/log: prefix WLR_REL_SRC_DIR with underscore  
							
							... 
							
							
 
							
							Just like _WLR_FILENAME and _WLR_ATTRIB_PRINTF, this makes it more
obvious that this isn't part of our API. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								af5cc860e1 
								
							
								 
							
						 
						
							
							
								
								backend/wayland: destroy zwp_linux_buffer_params_v1 objects  
							
							... 
							
							
 
							
							Don't leak these. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								a160304289 
								
							
								 
							
						 
						
							
							
								
								backend/drm: use libdisplay-info for CVT mode generation  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								35da997001 
								
							
								 
							
						 
						
							
							
								
								backend/drm: use libdisplay-info to parse EDID  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								40117e1e0d 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: prefer render node for wlr_renderer_get_drm_fd()  
							
							... 
							
							
 
							
							Instead of returning a primary node from wlr_renderer_get_drm_fd(),
prefer to return a render node if any. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								8db0d82890 
								
							
								 
							
						 
						
							
							
								
								examples/dmabuf-capture: fix frame_number deprecated in FFmpeg 6.0  
							
							... 
							
							
 
							
							Fixes the following error:
    ../examples/dmabuf-capture.c:524:33: error: 'frame_number' is deprecated [-Werror=deprecated-declarations]
      524 |                                 ctx->avctx->frame_number, get_fifo_size(&ctx->vid_frames));
          |                                 ^~~ 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								bec94cc040 
								
							
								 
							
						 
						
							
							
								
								backend: move #ifdefs to nested functions  
							
							... 
							
							
 
							
							Instead of littering #ifdefs everywhere, move them to the dedicated
attempt_XXX_backend() functions. This makes the logic in
wlr_backend_autocreate() more readable, and provides better error
messages when the X11/Wayland backends are disabled at compile-time,
or when WLR_BACKENDS contains a backend disabled at compile-time. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								8acaabcbab 
								
							
								 
							
						 
						
							
							
								
								backend: make wlr_backend_autocreate() fail when DRM is missing  
							
							... 
							
							
 
							
							When we change the required dependencies for the DRM backend,
Meson might auto-disable the backend for users missing the new
requirements. This results in confused users [1] because they don't
notice the "drm-backend: NO" line burried in the Meson logs, and
then get a black screen when starting the compositor.
Update wlr_backend_autocreate() to refuse to create a backend with
only libinput (without DRM).
Users really wanting to start their compositor with a libinput
backend and without a DRM backend can manually set WLR_BACKENDS.
[1]: https://github.com/swaywm/sway/issues/7457  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								5079000e49 
								
							
								 
							
						 
						
							
							
								
								output: allow modeset with buffer while frame is pending  
							
							... 
							
							
 
							
							Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3600  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								ab7eabac84 
								
							
								 
							
						 
						
							
							
								
								output: leverage wlr_output_configure_primary_swapchain()  
							
							... 
							
							
 
							
							Replace our current logic to setup the primary swapchain with
wlr_output_configure_primary_swapchain().
- Removes some code, reducing duplication
- Stop overwriting wlr_output.swapchain with a yet-to-be-tested
  swapchain: remove the error_destroy_swapchain label. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								fef8ab22e3 
								
							
								 
							
						 
						
							
							
								
								output: introduce wlr_output_configure_primary_swapchain()  
							
							... 
							
							
 
							
							The goal is to simplify wlr_output by moving all of its rendering
API into separate helpers. Here is a first step to sunset
wlr_output_attach_render(). Instead, compositors call
wlr_output_configure_primary_swapchain(), wlr_swapchain_acquire(),
wlr_renderer_begin_with_buffer() and wlr_output_attach_buffer().
Note that compositors can supply a base struct wlr_output_state.
This is useful to allocate a buffer suitable for submission with
a modeset, for instance.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3079 
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3197 
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3984  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								59acc69737 
								
							
								 
							
						 
						
							
							
								
								vulkan: silence -Wint-conversion on 32-bit architectures  
							
							... 
							
							
 
							
							render/vulkan/renderer.c:388:70: error: incompatible pointer to integer conversion passing 'void *' to parameter of type 'VkFence' (aka 'unsigned long long') [-Werror,-Wint-conversion]
        VkResult res = vkQueueSubmit(renderer->dev->queue, 1, &submit_info, NULL);
                                                                            ^~~~
render/vulkan/renderer.c:1141:81: error: incompatible pointer to integer conversion passing 'void *' to parameter of type 'VkFence' (aka 'unsigned long long') [-Werror,-Wint-conversion]
        VkResult res = vkQueueSubmit(renderer->dev->queue, submit_count, submit_infos, NULL);
                                                                                       ^~~~
/usr/include/sys/_null.h:34:14: note: expanded from macro 'NULL'
 #define NULL    ((void *)0)
                 ^~~~~~~~~~~
/usr/local/include/vulkan/vulkan_core.h:4054:49: note: passing argument to parameter 'fence' here
    VkFence                                     fence);
                                                ^
Fixes: a8a194d695 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								8619ffab21 
								
							
								 
							
						 
						
							
							
								
								swapchain: remove allocator listener on destroy  
							
							... 
							
							
 
							
							Past that point the wlr_allocator is gone and the listeners are
invalidated. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								254c5fc752 
								
							
								 
							
						 
						
							
							
								
								Switch to "meson setup"  
							
							... 
							
							
 
							
							Fixes this warning:
    WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								b33ab26fe7 
								
							
								 
							
						 
						
							
							
								
								render/swapchain: make public  
							
							... 
							
							
 
							
							We've had this struct for a while. It'd be useful for compositors
if they want to manage the swap chains themselves instead of being
forced to use wlr_output's. Some compositors might also want to use
a swapchain without an output. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								c667e64892 
								
							
								 
							
						 
						
							
							
								
								backend: disable DRM backend monitor when WLR_DRM_DEVICES is used  
							
							... 
							
							
 
							
							WLR_DRM_DEVICES specifies a static list of DRM devices to open
at startup.
Do not create DRM backends for hotplugged DRM devices when it's
set.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3595  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								7303e13808 
								
							
								 
							
						 
						
							
							
								
								backend: avoid adding NULL backend in attempt_backend_by_name()  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								2849712356 
								
							
								 
							
						 
						
							
							
								
								backend: create DRM backend monitor when WLR_BACKENDS is used  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								3874577d3c 
								
							
								 
							
						 
						
							
							
								
								output-layer: document interactions with screen capture  
							
							... 
							
							
 
							
							When e.g. screencopy-v1 is active, callers are responsible for
disabling output layers. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								bea6bee55d 
								
							
								 
							
						 
						
							
							
								
								backend/headless: unconditionally accept all output layers  
							
							... 
							
							
 
							
							We don't need to do anything special to handle these. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								8338d17d7e 
								
							
								 
							
						 
						
							
							
								
								backend/drm: drop wlr_drm_layer.pending_{width,height}  
							
							... 
							
							
 
							
							No need to store this info in struct wlr_drm_layer. We can just
extract the size when we need it. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								7215bd1e0f 
								
							
								 
							
						 
						
							
							
								
								output: expose wlr_output_state_set_buffer()  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								4629d0ef40 
								
							
								 
							
						 
						
							
							
								
								output: expose wlr_output_state_finish()  
							
							... 
							
							
 
							
							Same as the original function, but check for the bitfield before
calling pixman_region32_fini(), because that function expects an
initialized region. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								d25ab03326 
								
							
								 
							
						 
						
							
							
								
								screencopy-v1: drop unnecessary pixman_region32_t casts  
							
							... 
							
							
 
							
							The Pixman API now accepts const parameters. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								bbd5145d8a 
								
							
								 
							
						 
						
							
							
								
								backend/drm: drop unnecessary pixman_region32_t casts  
							
							... 
							
							
 
							
							The Pixman API now accepts const parameters. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								7d90cd055d 
								
							
								 
							
						 
						
							
							
								
								xwayland: Send synthetic ConfigureNotify per ICCCM 4.1.5  
							
							... 
							
							
 
							
							X11 clients expect a ConfigureNotify after a ConfigureRequest. If
the compositor/window manager chooses not to honor the request
(e.g. due to the window being maximized), XWayland will not send a
"real" ConfigureNotify event and the window manager is expected to
send a synthetic event instead. Otherwise, the X11 client is left
waiting and may not repaint its window properly.
For comparison, see Openbox's client_configure() or Weston's
weston_wm_window_send_configure_notify().
v2: Move logic to wlr_xwayland_surface_configure() 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								3ef9f91283 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Add dmabuf_feedback helper  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								4ddc20e14c 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Extract considering logic for direct scanout  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								323f0b94db 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Cleanup header includes  
							
							... 
							
							
 
							
							We don't need to pull wlr_compositor. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								9a425841b0 
								
							
								 
							
						 
						
							
							
								
								examples/output-layers: relay feedback events  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								849c362ffb 
								
							
								 
							
						 
						
							
							
								
								linux-dmabuf-v1: add helper for output layer feedback events  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								22d9df2af4 
								
							
								 
							
						 
						
							
							
								
								backend/drm: send output layer feedback events  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								e1335a792a 
								
							
								 
							
						 
						
							
							
								
								output-layer: add feedback event  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								4d6fbb2289 
								
							
								 
							
						 
						
							
							
								
								backend/drm: add support for output layers  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								2398621b8b 
								
							
								 
							
						 
						
							
							
								
								backend/drm: add libliftoff composition layer  
							
							... 
							
							
 
							
							This will be useful for implementing the output layers API. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								9d43e7e4d6 
								
							
								 
							
						 
						
							
							
								
								backend/drm: add libliftoff interface  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								b4e9487312 
								
							
								 
							
						 
						
							
							
								
								backend/drm: init wlr_drm_plane for all plane types  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								c3d969d2d4 
								
							
								 
							
						 
						
							
							
								
								examples/output-layers: new example  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								cd17b18495 
								
							
								 
							
						 
						
							
							
								
								backend/wayland: implement output layers  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								3e0ce761ad 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_set_layers()  
							
							
 
							
						 
						
							3 years ago