Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						44f815409d 
					 
					
						
						
							
							[client] imgui: ensure the pointer shape is correct  
						
						... 
						
						
						
						Since we only update imgui's cursor location when the overlay is
enabled, if the last cursor position was showing a shape that is
incorrect when we re-enter the overlay the cursor will be wrong. This
corrects this by updating the location as we enter overlay mode. 
						
						
					 
					
						2021-08-05 06:55:41 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						6e7f39edee 
					 
					
						
						
							
							[client] app: allow selective full invalidation  
						
						... 
						
						
						
						Overlays only need to trigger a new frame if they have changed and not
full window invalidation, this change allows for this. 
						
						
					 
					
						2021-08-05 06:47:36 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						6c84c0eca6 
					 
					
						
						
							
							[client] overlay: move keybinds and config into the overlays  
						
						... 
						
						
						
						This adds a new `earlyInit` call which allows the overlay to register
options before actually being intialized. Also the keybind handling and
state tracking for each overlay has been moved internal to the overlay
itself. 
						
						
					 
					
						2021-08-05 06:40:06 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						d90e658e3b 
					 
					
						
						
							
							[client] main: fix incorrectly hiding the cursor dot in captureOnly mode  
						
						
						
						
					 
					
						2021-08-05 06:11:12 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						85f3a71dd5 
					 
					
						
						
							
							[client] overlay: remember and restore the grab and pointer state  
						
						... 
						
						
						
						When entering overlay mode if the cursor was previously grabbed we
should restore the state when exiting overlay mode. This will also
correct the pointer setting it to NONE or SQUARE depending on the prior
grab state. 
						
						
					 
					
						2021-08-05 06:03:09 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						38ddfc0b61 
					 
					
						
						
							
							[client] core: never allow warp when the overlay is active  
						
						
						
						
					 
					
						2021-08-05 05:48:59 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						ff01a197f3 
					 
					
						
						
							
							[client] overlay: don't use the internal function directly for config  
						
						
						
						
					 
					
						2021-08-05 00:57:54 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						6c44bbb53e 
					 
					
						
						
							
							[client] egl: use a ui switch for damage display instead of a keybind  
						
						
						
						
					 
					
						2021-08-05 00:56:31 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f3f0157d3c 
					 
					
						
						
							
							[client] overlay: allow registration of runtime configuration options  
						
						
						
						
					 
					
						2021-08-05 00:56:31 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						51b9cd4e5a 
					 
					
						
						
							
							[all] copyright: use unicode copyright sign ©  
						
						... 
						
						
						
						This is done for consistency with the license strings in appstrings.c. 
						
						
					 
					
						2021-08-04 21:16:35 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						0941bd0fe5 
					 
					
						
						
							
							[client] imgui: move cursor change to after rendering overlays  
						
						... 
						
						
						
						This allows it to take into the overlays into consideration when deciding
which cursor is to be shown. 
						
						
					 
					
						2021-08-04 10:52:05 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						8ebaf92006 
					 
					
						
						
							
							[client] main: rename frameTimings to uploadTimings  
						
						
						
						
					 
					
						2021-08-04 10:38:30 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						62cd5e9c57 
					 
					
						
						
							
							[client] main: add graph for time spent rendering  
						
						... 
						
						
						
						This is the time spent in the on_render function, not the time between
frames. Having this information helps diagnose slowdowns in renderers. 
						
						
					 
					
						2021-08-04 10:38:30 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						9192e2039a 
					 
					
						
						
							
							[client] imgui: another missed file  
						
						... 
						
						
						
						Clearly I need to get some sleep :) 
						
						
					 
					
						2021-08-04 10:37:05 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						d2c36b8449 
					 
					
						
						
							
							[client] overlay: add new configuration overlay [wip]  
						
						
						
						
					 
					
						2021-08-04 10:27:47 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						80c9f7223a 
					 
					
						
						
							
							[client] wayland: fix failure to build  
						
						
						
						
					 
					
						2021-08-04 07:21:57 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						c15d0dc672 
					 
					
						
						
							
							[client] ds: waitFrame now returns a bool to force rendering if needed  
						
						... 
						
						
						
						X11 needs to calibrate to get the best possible latency, as such it
needs the scene to render so that the render time of the scene can be
accounted for in the delay calculation. 
						
						
					 
					
						2021-08-04 06:49:35 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						0f7fa32d12 
					 
					
						
						
							
							[client] x11: move sleep and calibration code outside of the event loop  
						
						... 
						
						
						
						Sleeping in the x11 event loop is not ideal as it will introduce latency
when processing other events, instead do this in the waitFrame handler. 
						
						
					 
					
						2021-08-04 06:34:27 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						6933c278ce 
					 
					
						
						
							
							[client] x11: cosmetics  
						
						
						
						
					 
					
						2021-08-04 06:14:27 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						7fc717a839 
					 
					
						
						
							
							[client] x11: don't setup XPresent if jitRender is not enabled  
						
						
						
						
					 
					
						2021-08-04 06:12:21 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						4e435e6199 
					 
					
						
						
							
							[client] ds: tell the display server if jitRender is requested  
						
						
						
						
					 
					
						2021-08-04 06:05:42 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						366ec16a63 
					 
					
						
						
							
							[client] config: use DEBUG_WARN, not fprintf for output  
						
						
						
						
					 
					
						2021-08-04 05:55:34 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						04c9694ffa 
					 
					
						
						
							
							[client] config: ensure mouseRedraw is on if jitRender is in use  
						
						
						
						
					 
					
						2021-08-04 05:54:59 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f7682c289a 
					 
					
						
						
							
							[client] egl: always render the black bar areas  
						
						... 
						
						
						
						Failure to render these causes artifacts/ghosting when the overlays are
using this area, as such we need to always render this area of the
screen. 
						
						
					 
					
						2021-08-03 22:29:04 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						4b4a75475a 
					 
					
						
						
							
							[client] egl: fix out by one error with letterbox rendering  
						
						... 
						
						
						
						This replaces the scaled `destRect` with a version that uses doubles
correcting the rounding error that is causing a failure to properly
clear the black bar areas. 
						
						
					 
					
						2021-08-03 22:27:46 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						55703b61b7 
					 
					
						
						
							
							[client] egl: remove texture copy in DMABUF path  
						
						... 
						
						
						
						With more efficient rendering due to buffer age support, we no longer need
to copy the texture to avoid excessive dmabuf copies. 
						
						
					 
					
						2021-08-03 21:37:31 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						8545d15c85 
					 
					
						
						
							
							[client] egl: warn when EGL_EXT_buffer_age is not supported  
						
						
						
						
					 
					
						2021-08-03 21:37:31 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						87aac8cf03 
					 
					
						
						
							
							[client] egl: use buffer age extension to render only damaged parts  
						
						... 
						
						
						
						We avoid rendering any area that has not changed since the buffer was used
and also not covered by an overlay. 
						
						
					 
					
						2021-08-03 21:37:31 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						f9977332a6 
					 
					
						
						
							
							[client] egl: convert desktop to use desktop_rects  
						
						
						
						
					 
					
						2021-08-03 21:37:31 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						2dca056526 
					 
					
						
						
							
							[client] egl: refactor damage mesh generation into desktop_rects  
						
						... 
						
						
						
						This mesh will later be used to render only damaged portions of the desktop.
We also moved the coordinate transformation for damage overlay into a matrix
and computed by the shader. 
						
						
					 
					
						2021-08-03 21:37:31 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						dd31a7ef93 
					 
					
						
						
							
							[client] egl: clean up splash background shader  
						
						
						
						
					 
					
						2021-08-03 21:12:46 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						a25c93b28e 
					 
					
						
						
							
							[client] wayland: document wlroots viewport handling workaround  
						
						... 
						
						
						
						Add a comment so we don't forget and remove the "useless" code. 
						
						
					 
					
						2021-08-03 21:12:25 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						03ed8b7304 
					 
					
						
						
							
							[client] x11: added code to calibrate a delay for presentation  
						
						... 
						
						
						
						XPresent doesn't give us the time before presentation, but the time just
after. This code calculates and calibrates a delay to sleep for before
signaling the wait event for render when using jitRender 
						
						
					 
					
						2021-08-03 07:51:03 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						504bf02855 
					 
					
						
						
							
							[client] x11: provide an empty rect region to XPresentPixmap  
						
						... 
						
						
						
						Providing None informs the comppositor that there is full screen damage,
instead we provide an empty rectangle to prevent this behaviour. 
						
						
					 
					
						2021-08-03 07:49:59 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						4d9ab81ef4 
					 
					
						
						
							
							[client] egl: assert the update provdided is a dmabuf  
						
						
						
						
					 
					
						2021-08-03 04:03:37 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f3413815a9 
					 
					
						
						
							
							[client] egl: re-implement DMABUF (untested)  
						
						
						
						
					 
					
						2021-08-03 03:59:03 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						50f9baedba 
					 
					
						
						
							
							[client] x11: remove junk code from evaluation  
						
						
						
						
					 
					
						2021-08-03 01:11:46 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						5d5e4ede1a 
					 
					
						
						
							
							[client] egl: use new EGL damage count semantics  
						
						... 
						
						
						
						After the damage queue PR, EGL damage count 0 means no change, and -1 means
invalidate the entire window. However, several other places have different
semantics, and we are not handling them correctly:
1. KVMFR uses 0 to signal invalidating the entire frame, so if we receive 0
   rectangles in egl_on_frame, we should set damage count to -1.
2. The damage overlay treated 0 as full damage, which is now incorrect. This
   is fixed, and now it treats 0 as no update, and -1 as full damage. 
						
						
					 
					
						2021-08-03 00:57:32 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						8d78a5aa95 
					 
					
						
						
							
							[commit] wayland: invalidate window on scale changes  
						
						... 
						
						
						
						This makes it not require new frames for new scale to be properly applied. 
						
						
					 
					
						2021-08-03 00:57:04 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						14839dc54e 
					 
					
						
						
							
							[client] egl: there should only ever be a single sync object  
						
						
						
						
					 
					
						2021-08-03 00:47:59 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						891ee3e789 
					 
					
						
						
							
							[client] x11: make use of the x11 present extension for jitRender  
						
						... 
						
						
						
						This implementation is a bit dodgy and needs some work but is currently
functional. Consider this feature highly experiemental under X11. 
						
						
					 
					
						2021-08-02 23:59:26 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						037788f562 
					 
					
						
						
							
							[client] egl: do not set ops, this is done in texture.c  
						
						
						
						
					 
					
						2021-08-02 23:42:46 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						13d9c84dc9 
					 
					
						
						
							
							[client] egl: replace monolithic EGLTexture with modular version  
						
						... 
						
						
						
						The way things were handled in EGLTexture is not only very hard to
follow, but broken. This change set breaks up EGLTexture into a modular
design making it easier to implement the various versions.
Note that DMABUF is currently broken and needs to be re-implemented. 
						
						
					 
					
						2021-08-02 23:37:33 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						e23144aecd 
					 
					
						
						
							
							[client] overlay: add new needs_render for realtime overlays  
						
						
						
						
					 
					
						2021-08-01 21:13:59 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						23c77e8508 
					 
					
						
						
							
							[client] egl: use a lock for desktop damage to eliminate all races  
						
						... 
						
						
						
						There used to be a possible race when a bunch of rectangle is appended, but
the total count is not updated before it's read. Using a lock eliminates
all such races. 
						
						
					 
					
						2021-08-01 19:54:56 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						f08e2ece93 
					 
					
						
						
							
							[client] wayland: implement stopWaitFrame  
						
						
						
						
					 
					
						2021-08-01 19:54:28 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						f64310320a 
					 
					
						
						
							
							[client] ds: add stopWaitFrame to terminate waitFrame early  
						
						... 
						
						
						
						This is used on exit to unblock the render thread. 
						
						
					 
					
						2021-08-01 19:54:28 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						695b7b793c 
					 
					
						
						
							
							[client] main: allow 'catchup' when using jitRender  
						
						
						
						
					 
					
						2021-08-01 19:32:01 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						986f92d0db 
					 
					
						
						
							
							[client] main: use skipFrame and signal frameEvent  
						
						... 
						
						
						
						We need to signal frameEvent to render the first frame. Otherwise, wayland
fails to configure the window, as configuration happens in EGL swap. 
						
						
					 
					
						2021-08-01 18:54:55 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						2e4614cbc4 
					 
					
						
						
							
							[client] wayland: make waitFrame work when not rendering  
						
						... 
						
						
						
						Implement skipFrame and do various things to wake waitFrame. 
						
						
					 
					
						2021-08-01 18:54:55 +10:00