2a3c62b4d2 
								
							 
						 
						
							
							
								
								[WIP][DONTMERGE]Add support for libinput_switch input devices  
							
							... 
							
							
							
							These are used primarily by laptops to signal
the state of the lid (open/closed) and tablet
mode if supported, based on ACPI events. 
							
						 
						
							2018-12-15 14:42:35 +11:00  
				
					
						
							
							
								 
						
							
								fec88770dd 
								
							 
						 
						
							
							
								
								backend/drm: Fix uninitialized variable  
							
							
							
						 
						
							2018-12-09 22:55:53 +13:00  
				
					
						
							
							
								 
						
							
								efdd4d6ea2 
								
							 
						 
						
							
							
								
								backend/drm: Improve encoder logic  
							
							... 
							
							
							
							This fixes an issue that can occur with DP MST connectors not reporting
any encoders. 
							
						 
						
							2018-12-09 22:48:00 +13:00  
				
					
						
							
							
								 
						
							
								f8056a0350 
								
							 
						 
						
							
							
								
								backend/drm: fix disappeared output indices  
							
							... 
							
							
							
							This commit changes `scan_drm_connectors` to add new outputs to the end of the
list. That way, it's easier to understand what's going on with indices.
When we need to destroy outputs, we now walk the list in reverse order. This
ensures indices remain correct while iterating and removing items from the
list.
We now also make outputs without a CRTC disappear (those are in
WLR_DRM_CONN_NEEDS_MODESET state). 
							
						 
						
							2018-12-09 10:12:52 +01:00  
				
					
						
							
							
								 
						
							
								20f5fc9e2e 
								
							 
						 
						
							
							
								
								Merge pull request  #1413  from emersion/logind-session-logs  
							
							... 
							
							
							
							backend/session/logind: improve logging 
							
						 
						
							2018-12-06 18:03:33 -05:00  
				
					
						
							
							
								 
						
							
								e23fe328a6 
								
							 
						 
						
							
							
								
								backend/session/logind: improve logging  
							
							
							
						 
						
							2018-12-06 17:01:17 +01:00  
				
					
						
							
							
								 
						
							
								491f1dbf75 
								
							 
						 
						
							
							
								
								backend/drm: fix VLA overflow  
							
							
							
						 
						
							2018-12-04 18:56:29 +01:00  
				
					
						
							
							
								 
						
							
								408e2a77e9 
								
							 
						 
						
							
							
								
								backend/wayland: fix zero-length VLA  
							
							
							
						 
						
							2018-11-27 23:18:12 +01:00  
				
					
						
							
							
								 
						
							
								91513c89cd 
								
							 
						 
						
							
							
								
								Fix interlaced mode rejection  
							
							
							
						 
						
							2018-11-22 17:52:52 +00:00  
				
					
						
							
							
								 
						
							
								dc9fdd6385 
								
							 
						 
						
							
							
								
								Skip interlaced modes during drm mode detection  
							
							... 
							
							
							
							Fixes  #3167 
A better solution could be made if there's a need to. 
						
							2018-11-21 19:23:48 +00:00  
				
					
						
							
							
								 
						
							
								d3ee69f76b 
								
							 
						 
						
							
							
								
								backend/x11: Hide cursor with Xfixes  
							
							
							
						 
						
							2018-11-13 10:55:03 +13:00  
				
					
						
							
							
								 
						
							
								70ae76304e 
								
							 
						 
						
							
							
								
								backend/x11: Remove old input functions  
							
							... 
							
							
							
							This also allows us to remove xcb-xkb, since Xinput will now give us the
appropriate XKB modifiers with each event. 
							
						 
						
							2018-11-13 10:55:03 +13:00  
				
					
						
							
							
								 
						
							
								d89e868cc9 
								
							 
						 
						
							
							
								
								backend/x11: Add new Xinput events  
							
							
							
						 
						
							2018-11-13 10:42:02 +13:00  
				
					
						
							
							
								 
						
							
								88b2d6fe25 
								
							 
						 
						
							
							
								
								backend/x11: Check for xinput extension  
							
							
							
						 
						
							2018-11-13 10:41:37 +13:00  
				
					
						
							
							
								 
						
							
								9c1b87f210 
								
							 
						 
						
							
							
								
								backend/x11: Move atom initilisation earlier  
							
							... 
							
							
							
							There isn't any real reason to delay this until the backend is started. 
							
						 
						
							2018-11-13 10:40:52 +13:00  
				
					
						
							
							
								 
						
							
								ab2c57984b 
								
							 
						 
						
							
							
								
								backend/x11: Make header order consistent  
							
							
							
						 
						
							2018-11-13 10:40:52 +13:00  
				
					
						
							
							
								 
						
							
								51a283cbe4 
								
							 
						 
						
							
							
								
								backend/x11: Rename xcb_conn to xcb  
							
							... 
							
							
							
							When the Xlib connection is removed, this _conn suffix is going to be
pointless. I'm removing this preemtively for that. 
							
						 
						
							2018-11-13 10:39:24 +13:00  
				
					
						
							
							
								 
						
							
								77dfac4fa4 
								
							 
						 
						
							
							
								
								Merge pull request  #1372  from emersion/config10  
							
							... 
							
							
							
							Use #if instead of #ifdef for wlroots config data 
							
						 
						
							2018-11-12 16:14:18 -05:00  
				
					
						
							
							
								 
						
							
								51bfdd620e 
								
							 
						 
						
							
							
								
								Use #if instead of #ifdef for wlroots config data  
							
							... 
							
							
							
							This prevents some annoying issues when e.g. not including wlr/config.h or
making a typo in the guard name. 
							
						 
						
							2018-11-12 10:12:46 +01:00  
				
					
						
							
							
								 
						
							
								180151ed09 
								
							 
						 
						
							
							
								
								backend/wayland: handle WL_EVENT_WRITABLE for Wayland socket  
							
							... 
							
							
							
							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  
							
						 
						
							2018-11-11 21:14:15 +01:00  
				
					
						
							
							
								 
						
							
								aaff4b8c00 
								
							 
						 
						
							
							
								
								backend/wayland: Make header order consistent  
							
							
							
						 
						
							2018-11-11 22:29:35 +13:00  
				
					
						
							
							
								 
						
							
								bbce92a923 
								
							 
						 
						
							
							
								
								backend/wayland: Move initilisation code earlier  
							
							... 
							
							
							
							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. 
							
						 
						
							2018-11-11 18:11:56 +13:00  
				
					
						
							
							
								 
						
							
								47545cf550 
								
							 
						 
						
							
							
								
								backend/wayland: Use specific wl_global versions  
							
							... 
							
							
							
							Explicitly use the version we support instead of accepting the
compositor's version. 
							
						 
						
							2018-11-11 18:11:56 +13:00  
				
					
						
							
							
								 
						
							
								4e03802057 
								
							 
						 
						
							
							
								
								backend/wayland: Move registry into backend  
							
							... 
							
							
							
							Registry was a very small file, and is heavily related to the backend,
so there is not point in keeping them separate. 
							
						 
						
							2018-11-11 18:11:56 +13:00  
				
					
						
							
							
								 
						
							
								09550032b7 
								
							 
						 
						
							
							
								
								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. 
							
						 
						
							2018-11-10 13:20:54 +01:00  
				
					
						
							
							
								 
						
							
								b5125ff328 
								
							 
						 
						
							
							
								
								backend/drm: specify minimum config attributes  
							
							... 
							
							
							
							Since the format used by DRM is GBM_FORMAT_ARGB8888, we need at least a R, G, B
and A channel. 
							
						 
						
							2018-11-04 09:00:55 +01:00  
				
					
						
							
							
								 
						
							
								70ca7daeb2 
								
							 
						 
						
							
							
								
								Merge pull request  #1346  from emersion/fix-schedule-frame-mgpu  
							
							... 
							
							
							
							backend/drm: fix frame scheduling on secondary GPUs 
							
						 
						
							2018-10-30 01:59:25 +01:00  
				
					
						
							
							
								 
						
							
								68362b37a8 
								
							 
						 
						
							
							
								
								backend/drm: fix frame scheduling on secondary GPUs  
							
							... 
							
							
							
							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. 
							
						 
						
							2018-10-29 20:38:57 +01:00  
				
					
						
							
							
								 
						
							
								443a38bd3f 
								
							 
						 
						
							
							
								
								backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variable  
							
							... 
							
							
							
							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). 
							
						 
						
							2018-10-28 23:43:21 +01:00  
				
					
						
							
							
								 
						
							
								e0cf97da69 
								
							 
						 
						
							
							
								
								Merge pull request  #1307  from emersion/static-analysis  
							
							... 
							
							
							
							Fix a few bugs found by the static analyzer 
							
						 
						
							2018-10-21 19:18:39 +02:00  
				
					
						
							
							
								 
						
							
								fa587b8ea9 
								
							 
						 
						
							
							
								
								Increase _POSIX_C_SOURCE to 200112L  
							
							... 
							
							
							
							CLOCK_MONOTONIC appeared in IEEE Std. 1003.1-200x, it was not part of
POSIX.1b (the 1993 version), and FreeBSD treats it accordingly. 
							
						 
						
							2018-10-17 08:33:19 +02:00  
				
					
						
							
							
								 
						
							
								f9eb5df80e 
								
							 
						 
						
							
							
								
								backend: fix use-after-free in wlr_backend_autocreate  
							
							... 
							
							
							
							Found by clang static analyzer. 
							
						 
						
							2018-10-13 10:58:59 +02:00  
				
					
						
							
							
								 
						
							
								b66041a9e5 
								
							 
						 
						
							
							
								
								backend/drm: don't reset conn->pageflip_pending in drm_connector_cleanup  
							
							... 
							
							
							
							If a pageflip is pending before cleanup, it's still pending after. This
is used line 1177: drm_connector_cleanup is called and
conn->pageflip_pending is checked afterwards.
Fixes  #1297  
							
						 
						
							2018-10-09 14:54:33 +02:00  
				
					
						
							
							
								 
						
							
								8488ed2997 
								
							 
						 
						
							
							
								
								Merge pull request  #1298  from emersion/output-dangling-idle-frame  
							
							... 
							
							
							
							output: remove idle_frame event source when destroying output 
							
						 
						
							2018-10-09 13:41:04 +02:00  
				
					
						
							
							
								 
						
							
								77478ac302 
								
							 
						 
						
							
							
								
								backend/drm: set drmEventContext version to 2  
							
							... 
							
							
							
							As per [1] set drmEventContext version to 2, since wlroots does not use the
page_flip_handler2.
[1]: https://s-opensource.org/2017/04/12/libdrm-event-handling-youre-probably-wrong/  
							
						 
						
							2018-10-09 12:34:01 +02:00  
				
					
						
							
							
								 
						
							
								46b1ba386f 
								
							 
						 
						
							
							
								
								output: remove idle_frame event source when destroying output  
							
							... 
							
							
							
							This prevents the idle event to be activated on a destroyed
output.
This also makes the backend responsible for free-ing modes, as it
is the one allocating them and adding them to the list. Note that
the DRM backend (the only one using modes) already frees them. 
							
						 
						
							2018-10-09 10:55:03 +02:00  
				
					
						
							
							
								 
						
							
								885586a831 
								
							 
						 
						
							
							
								
								Merge pull request  #1280  from emersion/drm-link-status  
							
							... 
							
							
							
							backend/drm: add support for the link-status property 
							
						 
						
							2018-10-08 21:01:30 +02:00  
				
					
						
							
							
								 
						
							
								37de179013 
								
							 
						 
						
							
							
								
								backend/drm: fix zero-length VLAs  
							
							
							
						 
						
							2018-10-07 13:04:52 +02:00  
				
					
						
							
							
								 
						
							
								776008da69 
								
							 
						 
						
							
							
								
								backend/drm: properly handle GPUs without CRTCs  
							
							
							
						 
						
							2018-10-07 12:59:00 +02:00  
				
					
						
							
							
								 
						
							
								ba91422747 
								
							 
						 
						
							
							
								
								output: don't trigger a frame immediately in schedule_frame  
							
							... 
							
							
							
							This desynchronizes our rendering loop with the vblank cycle.
In case a compositor doesn't swap buffers but schedules a frame,
emitting a frame event immediately enters a busy-loop.
Instead, ask the backend to send a frame when appropriate. On
Wayland we can just register a frame callback on our surface. On
DRM we can do a no-op pageflip.
Fixes  #617 
Fixes  swaywm/sway#2748  
							
						 
						
							2018-10-05 16:18:37 +02:00  
				
					
						
							
							
								 
						
							
								eac7c2ad2f 
								
							 
						 
						
							
							
								
								output: add presentation refresh prediction  
							
							
							
						 
						
							2018-10-04 22:00:24 +02:00  
				
					
						
							
							
								 
						
							
								b0635bf3e7 
								
							 
						 
						
							
							
								
								Rename get_present_clock to get_presentation clock, use it  
							
							
							
						 
						
							2018-10-04 22:00:22 +02:00  
				
					
						
							
							
								 
						
							
								54e1287f30 
								
							 
						 
						
							
							
								
								backend: add get_present_clock  
							
							
							
						 
						
							2018-10-04 21:58:17 +02:00  
				
					
						
							
							
								 
						
							
								26b9d6dbb1 
								
							 
						 
						
							
							
								
								output: send present event from all backends  
							
							
							
						 
						
							2018-10-04 21:56:38 +02:00  
				
					
						
							
							
								 
						
							
								78389fe722 
								
							 
						 
						
							
							
								
								output: add present event  
							
							
							
						 
						
							2018-10-04 21:56:38 +02:00  
				
					
						
							
							
								 
						
							
								f5a147b739 
								
							 
						 
						
							
							
								
								backend/drm: add support for the link-status property  
							
							
							
						 
						
							2018-10-04 21:54:27 +02:00  
				
					
						
							
							
								 
						
							
								841d04db99 
								
							 
						 
						
							
							
								
								Merge pull request  #1262  from nyorain/session_fix  
							
							... 
							
							
							
							Improve session handling 
							
						 
						
							2018-10-04 17:36:39 +02:00  
				
					
						
							
							
								 
						
							
								b4d46aa9c2 
								
							 
						 
						
							
							
								
								Use sd_bus_get_property_trivial & remove numbering  
							
							
							
						 
						
							2018-10-04 14:04:06 +02:00  
				
					
						
							
							
								 
						
							
								7ab37bf152 
								
							 
						 
						
							
							
								
								backend/drm: update EDID manufacturers database  
							
							
							
						 
						
							2018-10-04 10:58:45 +02:00  
				
					
						
							
							
								 
						
							
								e88db9a3fb 
								
							 
						 
						
							
							
								
								backend/drm: reset gamma table on VT switch  
							
							
							
						 
						
							2018-10-03 10:53:35 +02:00