54ec17ff64 
								
							 
						 
						
							
							
								
								backend/drm: use plural form for possible_crtcs  
							
							... 
							
							
							
							Make it clearer that this is a bitmask of CRTC indices. 
							
						 
						
							2020-12-23 12:14:36 +01:00  
				
					
						
							
							
								 
						
							
								f6fc4c2883 
								
							 
						 
						
							
							
								
								subsurface: handle NULL parent in get_root_surface  
							
							
							
						 
						
							2020-12-22 15:55:05 +01:00  
				
					
						
							
							
								 
						
							
								d3bcd63a40 
								
							 
						 
						
							
							
								
								backend/drm: remove drm_fb_acquire  
							
							... 
							
							
							
							Instead, import the buffer into GBM and KMS in drm_fb_import. Also move
the multi-GPU copy there if necessary. 
							
						 
						
							2020-12-22 15:53:10 +01:00  
				
					
						
							
							
								 
						
							
								5ee8b12dc3 
								
							 
						 
						
							
							
								
								backend/drm: make drm_fb_acquire return a FB ID  
							
							
							
						 
						
							2020-12-22 15:53:10 +01:00  
				
					
						
							
							
								 
						
							
								d09abe86c1 
								
							 
						 
						
							
							
								
								backend/drm: drop export_drm_bo  
							
							... 
							
							
							
							Not used anymore. 
							
						 
						
							2020-12-22 15:53:10 +01:00  
				
					
						
							
							
								 
						
							
								d6dbdd97e9 
								
							 
						 
						
							
							
								
								backend/x11: re-use pixmaps  
							
							... 
							
							
							
							Instead of re-importing a buffer each time we submit a frame, re-use the
pixmaps if possible. 
							
						 
						
							2020-12-21 16:31:07 +01:00  
				
					
						
							
							
								 
						
							
								defcd9b025 
								
							 
						 
						
							
							
								
								backend/wayland: re-use wl_buffers  
							
							... 
							
							
							
							Instead of re-importing a buffer each time we submit a new frame, re-use
the wl_buffer objects if possible. 
							
						 
						
							2020-12-21 16:30:47 +01:00  
				
					
						
							
							
								 
						
							
								352fdd1bb0 
								
							 
						 
						
							
							
								
								backend/drm: remove unused wlr_drm_plane.drm_format  
							
							
							
						 
						
							2020-12-18 11:44:50 +01:00  
				
					
						
							
							
								 
						
							
								248c7787c7 
								
							 
						 
						
							
							
								
								backend/drm: refactor wlr_output destruction  
							
							... 
							
							
							
							Instead of hand-rolling our own manual wlr_output cleanup function, rely
on wlr_output_destroy to remove an output from the compositor's state. 
							
						 
						
							2020-12-18 10:48:44 +01:00  
				
					
						
							
							
								 
						
							
								019ffe8a5b 
								
							 
						 
						
							
							
								
								backend/drm: introduce wlr_drm_connector.name  
							
							... 
							
							
							
							The DRM backend is a little special when it comes to wlr_outputs: the
wlr_drm_connectors are long-lived and are created even when no screen is
connected.
A wlr_drm_connector only advertises a wlr_output to the compositor when
a screen is connected. As such, most of wlr_output's state is invalid
when the connector is disconnected.
We want to stop using wlr_output state on disconnected connectors.
Introduce wlr_drm_connector.name which is always valid regardless of the
connector status to avoid reading wlr_output.name when disconnected. 
							
						 
						
							2020-12-18 10:48:44 +01:00  
				
					
						
							
							
								 
						
							
								c89b131f29 
								
							 
						 
						
							
							
								
								backend/drm: introduce wlr_drm_conn_log  
							
							... 
							
							
							
							Simplify and unify connector-specific logging with a new
wlr_drm_conn_log macro. This makes it easier to understand which
connector a failure is about, without having to explicitly integrate the
connector name in each log message. 
							
						 
						
							2020-12-18 10:48:44 +01:00  
				
					
						
							
							
								 
						
							
								f0c1b32120 
								
							 
						 
						
							
							
								
								util/time: add timespec_from_nsec  
							
							
							
						 
						
							2020-12-18 10:37:08 +01:00  
				
					
						
							
							
								 
						
							
								d37214cb16 
								
							 
						 
						
							
							
								
								render/drm_format_set: add wlr_drm_format_{create,add}  
							
							
							
						 
						
							2020-12-18 09:41:12 +01:00  
				
					
						
							
							
								 
						
							
								9cd3f03f65 
								
							 
						 
						
							
							
								
								backend/drm: add wlr_drm_backend.name  
							
							... 
							
							
							
							Save the DRM device name in a wlr_drm_backend field, so that we can
easily use it for logging purposes. 
							
						 
						
							2020-12-17 20:48:47 +01:00  
				
					
						
							
							
								 
						
							
								da2a216934 
								
							 
						 
						
							
							
								
								backend/drm: add wlr_drm_connector.backend  
							
							... 
							
							
							
							This allows the DRM code to have direct access to the wlr_drm_backend
without having to go through an upcast via get_drm_backend_from_backend. 
							
						 
						
							2020-12-15 22:56:14 +01:00  
				
					
						
							
							
								 
						
							
								93cd3a79b2 
								
							 
						 
						
							
							
								
								backend/drm: stop using GBM flags  
							
							... 
							
							
							
							gbm_bo_create_with_modifiers doesn't take GBM flags, so our
wlr_gbm_allocator interface doesn't either. We were still internally
using GBM flags in the DRM backend, leading to awkward back-and-forth
conversions.
The only flag passed to drm_plane_init_surface was GBM_BO_USE_LINEAR, so
turn that into a bool to make sure other flags can't be passed in.
Move the "force linear" logic out of init_drm_surface, because the
supplied wlr_drm_format should already contain that information. 
							
						 
						
							2020-12-13 13:20:39 +01:00  
				
					
						
							
							
								 
						
							
								c59aacf944 
								
							 
						 
						
							
							
								
								backend/x11: query modifiers supported by X11 server  
							
							
							
						 
						
							2020-12-13 12:16:52 +01:00  
				
					
						
							
							
								 
						
							
								d79a00bf02 
								
							 
						 
						
							
							
								
								backend/x11: switch to wlr_swapchain  
							
							
							
						 
						
							2020-12-13 12:16:52 +01:00  
				
					
						
							
							
								 
						
							
								441bac139f 
								
							 
						 
						
							
							
								
								backend/wayland: use wlr_swapchain for cursor surface  
							
							
							
						 
						
							2020-12-13 12:16:28 +01:00  
				
					
						
							
							
								 
						
							
								3923ff005d 
								
							 
						 
						
							
							
								
								backend/wayland: use wlr_swapchain for main surface  
							
							... 
							
							
							
							The cursor surface still uses a wl_egl_window.
References: https://github.com/swaywm/wlroots/issues/1352  
							
						 
						
							2020-12-13 12:16:28 +01:00  
				
					
						
							
							
								 
						
							
								6ff478632a 
								
							 
						 
						
							
							
								
								backend/drm: remove EGL config  
							
							... 
							
							
							
							Since we're using wlr_swapchain, we don't need to provide an EGL config. 
							
						 
						
							2020-12-09 14:25:41 +01:00  
				
					
						
							
							
								 
						
							
								863acb26c0 
								
							 
						 
						
							
							
								
								backend/drm: stop tracking overlay planes  
							
							... 
							
							
							
							We don't do anything with them. Once we do, we can easily add this back. 
							
						 
						
							2020-12-08 18:38:42 +01:00  
				
					
						
							
							
								 
						
							
								c9760569ae 
								
							 
						 
						
							
							
								
								docs: fix error in wlr_output_set_damage() comment  
							
							... 
							
							
							
							output-buffer-local coordinates are neither scaled nor transformed 
							
						 
						
							2020-12-07 20:45:36 +01:00  
				
					
						
							
							
								 
						
							
								431ec52b9c 
								
							 
						 
						
							
							
								
								xwayland: use pipe instead of SIGUSR1 to signal readiness  
							
							... 
							
							
							
							Closes: https://github.com/swaywm/wlroots/issues/2154  
							
						 
						
							2020-12-07 12:24:56 +01:00  
				
					
						
							
							
								 
						
							
								82443ea46b 
								
							 
						 
						
							
							
								
								render/drm_format_set: introduce wlr_drm_format_intersect  
							
							... 
							
							
							
							Intersects modifiers from two wlr_drm_format structs. If either format
doesn't support modifiers, the resulting format won't support modifiers. 
							
						 
						
							2020-12-03 10:52:25 +01:00  
				
					
						
							
							
								 
						
							
								513eca8dab 
								
							 
						 
						
							
							
								
								build: add leftover WLR_HAS_LIBCAP  
							
							... 
							
							
							
							We don't support libcap anymore. This was left as a comment by Meson:
    /* #undef WLR_HAS_LIBCAP */ 
							
						 
						
							2020-12-03 00:05:38 +01:00  
				
					
						
							
							
								 
						
							
								de9ff46629 
								
							 
						 
						
							
							
								
								backend/drm: "scaling mode" is a connector property  
							
							... 
							
							
							
							It's not a CRTC property. Remove it altogether since it's unused. 
							
						 
						
							2020-11-30 11:57:08 +01:00  
				
					
						
							
							
								 
						
							
								2649600fa1 
								
							 
						 
						
							
							
								
								backend/drm: rotation is a plane property  
							
							... 
							
							
							
							"rotation" is a plane property, it's not a CRTC property. It was also
missing from plane_info. 
							
						 
						
							2020-11-30 11:57:08 +01:00  
				
					
						
							
							
								 
						
							
								d2329ac07a 
								
							 
						 
						
							
							
								
								xwm: add wlr_xwayland_surface_restack()  
							
							
							
						 
						
							2020-11-30 11:29:28 +01:00  
				
					
						
							
							
								 
						
							
								83a5d03bf3 
								
							 
						 
						
							
							
								
								render/egl: remove wlr_egl.external_only_dmabuf_formats  
							
							... 
							
							
							
							Replace it with wlr_egl.dmabuf_render_formats. 
							
						 
						
							2020-11-30 11:08:44 +01:00  
				
					
						
							
							
								 
						
							
								c94ab99ae2 
								
							 
						 
						
							
							
								
								render: rename wlr_renderer_get_formats  
							
							... 
							
							
							
							Rename wlr_renderer_get_formats to wlr_renderer_get_shm_texture_formats.
This makes it clear those formats are only suitable for shm import. 
							
						 
						
							2020-11-30 11:08:44 +01:00  
				
					
						
							
							
								 
						
							
								49115e9d5d 
								
							 
						 
						
							
							
								
								render: rename wlr_renderer_get_dmabuf_formats  
							
							... 
							
							
							
							Rename wlr_renderer_get_dmabuf_formats to
wlr_renderer_get_dmabuf_texture_formats. This makes it clear the formats
are only suitable for creating wlr_textures. 
							
						 
						
							2020-11-30 11:08:44 +01:00  
				
					
						
							
							
								 
						
							
								5d008d9030 
								
							 
						 
						
							
							
								
								render: introduce wlr_renderer_get_dmabuf_render_formats  
							
							... 
							
							
							
							It describes which DMA-BUF formats can be used to render. 
							
						 
						
							2020-11-30 11:08:44 +01:00  
				
					
						
							
							
								 
						
							
								61612ecb36 
								
							 
						 
						
							
							
								
								render: remove wlr_renderer_format_supported  
							
							... 
							
							
							
							Instead, callers can just use wlr_renderer_get_formats and iterate over
the list.
This function was unused in wlroots. 
							
						 
						
							2020-11-30 11:08:44 +01:00  
				
					
						
							
							
								 
						
							
								c15ca3793e 
								
							 
						 
						
							
							
								
								render: expand wlr_renderer_get{,_dmabuf}_formats docs  
							
							... 
							
							
							
							Make it clear formats returned are only suitable for import/sampling.
These formats can't be used to be rendered to. 
							
						 
						
							2020-11-30 11:08:44 +01:00  
				
					
						
							
							
								 
						
							
								52805feae9 
								
							 
						 
						
							
							
								
								backend/x11: log errors  
							
							... 
							
							
							
							Register an X11 error handler, and optionally use xcb-errors to print a
detailed message. 
							
						 
						
							2020-11-24 14:57:25 +01:00  
				
					
						
							
							
								 
						
							
								ebecc5404b 
								
							 
						 
						
							
							
								
								surface: Make send_enter store entered outputs  
							
							... 
							
							
							
							wlr_surface_send_enter now stores outputs that have been entered.
Combined with a new 'bind' event on wlr_output, this allows us to delay
enter events as necessary until the respective wl_output global has been
bound.
Closes: https://github.com/swaywm/wlroots/issues/2466  
							
						 
						
							2020-11-23 10:58:50 +01:00  
				
					
						
							
							
								 
						
							
								0e76f92de7 
								
							 
						 
						
							
							
								
								backend/session: replace session_signal with events.active  
							
							... 
							
							
							
							This is more idiomatic wlroots API. The new name makes it clear that the
signal is emitted when wlr_session.active changes. 
							
						 
						
							2020-11-19 22:47:49 +01:00  
				
					
						
							
							
								 
						
							
								fbf11a41e1 
								
							 
						 
						
							
							
								
								backend/session: wait for DRM device if none found  
							
							... 
							
							
							
							Wait for a DRM device if none is found in wlr_session_find_gpus. This
can happen if the compositor is loaded before the display kernel driver.
This supersedes the logind CanGraphical property.
To test, e.g. with i915 and sway:
    rmmod -f i915
    sway &
    modprobe i915
Closes: https://github.com/swaywm/wlroots/issues/2093  
							
						 
						
							2020-11-19 22:47:49 +01:00  
				
					
						
							
							
								 
						
							
								76bcddf071 
								
							 
						 
						
							
							
								
								backend/session: introduce wlr_session.events.add_drm_card  
							
							... 
							
							
							
							This is triggered when a new DRM card is added.
An easy way to test this patch is `modprobe vkms`. 
							
						 
						
							2020-11-19 22:47:49 +01:00  
				
					
						
							
							
								 
						
							
								44a4792fd8 
								
							 
						 
						
							
							
								
								backend/session: operate on wlr_device  
							
							... 
							
							
							
							Instead of operating on FDs in {open,close}_device, operate on
wlr_devices. This avoids the device lookup in wlr_session and allows
callers to have access to wlr_device fields.
For now, we use it to remove wlr_session_signal_add and replace it with
a more idiomatic wlr_session.events.change field. In the future, other
events will be added. 
							
						 
						
							2020-11-19 22:47:49 +01:00  
				
					
						
							
							
								 
						
							
								6284af121f 
								
							 
						 
						
							
							
								
								texture: document that functions should not be called while rendering  
							
							
							
						 
						
							2020-11-19 11:35:04 +01:00  
				
					
						
							
							
								 
						
							
								e18599b05e 
								
							 
						 
						
							
							
								
								render/egl: stop including eglmesaext.h  
							
							... 
							
							
							
							This is a Mesa-specific header that was needed because some Wayland EGL
extensions were missing from the Khronos registry. Now that this has
been fixed [1] and Mesa [2] & glvnd [3] have sync'ed their headers, we
can drop this workaround.
[1]: https://github.com/KhronosGroup/EGL-Registry/pull/95 
[2]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4953 
[3]: https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/225  
							
						 
						
							2020-11-19 00:42:09 +01:00  
				
					
						
							
							
								 
						
							
								61f8cdfb9e 
								
							 
						 
						
							
							
								
								backend/headless: switch to wlr_swapchain  
							
							
							
						 
						
							2020-11-15 22:54:07 +01:00  
				
					
						
							
							
								 
						
							
								eb8360bda3 
								
							 
						 
						
							
							
								
								render: introduce wlr_renderer_get_drm_fd  
							
							
							
						 
						
							2020-11-15 22:54:07 +01:00  
				
					
						
							
							
								 
						
							
								c8d95acc37 
								
							 
						 
						
							
							
								
								render/egl: introduce wlr_egl_dup_drm_fd  
							
							
							
						 
						
							2020-11-15 22:54:07 +01:00  
				
					
						
							
							
								 
						
							
								c881008e1c 
								
							 
						 
						
							
							
								
								backend/drm: add support for wlr_swapchain multi-GPU  
							
							
							
						 
						
							2020-11-15 22:48:42 +01:00  
				
					
						
							
							
								 
						
							
								8058e338ea 
								
							 
						 
						
							
							
								
								backend/drm: get rid of wlr_drm_fb_type  
							
							... 
							
							
							
							Since all DRM FBs are backed by a wlr_buffer, there's no need for this
anymore. 
							
						 
						
							2020-11-15 22:48:42 +01:00  
				
					
						
							
							
								 
						
							
								c11c6c4568 
								
							 
						 
						
							
							
								
								render/swapchain: add support for buffer age  
							
							
							
						 
						
							2020-11-15 22:48:42 +01:00  
				
					
						
							
							
								 
						
							
								ef846a8839 
								
							 
						 
						
							
							
								
								backend/drm: use wlr_swapchain  
							
							
							
						 
						
							2020-11-15 22:48:42 +01:00