Quantum 
							
						 
					 
					
						
						
							
						
						a980cd9406 
					 
					
						
						
							
							[client] egl: log when EGL_EXT_image_dma_buf_import is unavailable  
						
						
						
						
					 
					
						2021-07-29 17:03:44 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						6c64965703 
					 
					
						
						
							
							[client] egl: make functions that do not need linking static  
						
						
						
						
					 
					
						2021-07-29 16:54:56 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						134829cbf2 
					 
					
						
						
							
							[client] imgui: make graph y-axis configurable  
						
						... 
						
						
						
						The default of [0, 50] makes sense for FPS/UPS graphs, but does not for
things like the import graph. The latter should not take more than 5 ms
for sure.
This commit allows the min/max y-axis value to be specified when registering
the graph. 
						
						
					 
					
						2021-07-29 15:54:15 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						009ae02e32 
					 
					
						
						
							
							[client] egl: add graph tracking time taken to import frame  
						
						... 
						
						
						
						This tracks the time taken to load the frame buffer into an OpenGL texture. 
						
						
					 
					
						2021-07-29 10:08:52 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						120fe63c0f 
					 
					
						
						
							
							[client] egl: keep x/y coordinates of cursor rectangle non-negative  
						
						... 
						
						
						
						This shifts the rectangles upwards instead of cutting off the rectangles,
but it keeps the code simple. 
						
						
					 
					
						2021-07-26 07:56:46 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						181b165a4b 
					 
					
						
						
							
							[client] egl: generate correct cursor damage with cursor rotation  
						
						
						
						
					 
					
						2021-07-25 17:35:29 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						d9cdc8d26c 
					 
					
						
						
							
							[client] egl: rotate damage rectangles according to client side rotation  
						
						
						
						
					 
					
						2021-07-25 16:56:48 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						d0722349e6 
					 
					
						
						
							
							[client] egl: make damage overlay support rendering rotated rectangles  
						
						
						
						
					 
					
						2021-07-25 16:56:48 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						60a58d4d8d 
					 
					
						
						
							
							[client] all: make it possible to signal full window invalidation  
						
						... 
						
						
						
						Now that we are drawing with damage rects, when the window is hidden and
then exposed the window may not get fully redrawn. This provides
`app_invalidateWindow` for the display server backend to call when the
screen needs a full redraw. 
						
						
					 
					
						2021-07-25 15:29:29 +10:00 
						 
				 
			
				
					
						
							
							
								arcnmx 
							
						 
					 
					
						
						
							
						
						3b37898eb2 
					 
					
						
						
							
							[all] use cmake FindPkgConfig IMPORTED_TARGETs  
						
						
						
						
					 
					
						2021-07-24 12:35:48 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						f09738678e 
					 
					
						
						
							
							[client] fonts: remove font rendering machinery  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						0c35d9b057 
					 
					
						
						
							
							[client] opengl: remove font management  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						cb9774bbd2 
					 
					
						
						
							
							[client] egl: remove font management  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						dd0edc1394 
					 
					
						
						
							
							[client] renderers: remove alert handling  
						
						
						
						
					 
					
						2021-07-23 20:18:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						5153d35bb5 
					 
					
						
						
							
							[client] renderer: remove on_help from renderer interface  
						
						
						
						
					 
					
						2021-07-23 18:04:05 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						5d053128ac 
					 
					
						
						
							
							[client] imgui: use improved high DPI rendering  
						
						... 
						
						
						
						This actually makes imgui render at a higher resolution, avoiding scaling
and resulting blurriness. 
						
						
					 
					
						2021-07-23 16:07:42 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						df0397b10b 
					 
					
						
						
							
							[client] imgui: track last rectangles for overlays  
						
						... 
						
						
						
						This is necessary in case overlays change size. When this happens, we must
damage the larger of the overlays' rectangles this frame and last frame.
This erases the overlay from where it is no longer appears.
In order to do this, we must keep track of the rectangles for every overlay
with no exception. We cannot short-circuit the generation of rectangles if
we run out of buffer space, and we must allocate space for MAX_OVERLAY_RECTS
rectangles for every frame. Otherwise, we will not know where to erase the
overlay if it disappears. 
						
						
					 
					
						2021-07-23 15:54:18 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						334bfeecea 
					 
					
						
						
							
							[client] egl: correctly handle mixing imgui and non-imgui overlays  
						
						... 
						
						
						
						This allows the full frame to be damaged when both types are visible. 
						
						
					 
					
						2021-07-23 15:53:59 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						947eac52f6 
					 
					
						
						
							
							[client] renderers: treat -1 as full damage and 0 as no overlay  
						
						... 
						
						
						
						This makes everything consistent. 
						
						
					 
					
						2021-07-22 18:57:34 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						515f08d2da 
					 
					
						
						
							
							[client] egl: transform overlay damage coordinates  
						
						... 
						
						
						
						EGL uses bottom-up y-coordinate while we use top-down. 
						
						
					 
					
						2021-07-22 18:32:18 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						58ab77d237 
					 
					
						
						
							
							[client] egl: avoid overflowing damage buffer  
						
						... 
						
						
						
						We allocate 10 rectangles for overlay damage as agreed on Discord. 
						
						
					 
					
						2021-07-22 18:32:18 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						fdbdf6f167 
					 
					
						
						
							
							[client] app: implement new overlay rendering framework  
						
						... 
						
						
						
						This change set implements a framework for overlays to be registered
that make use of ImGui. See `overlay/fps` for a simple implementation
example. 
						
						
					 
					
						2021-07-22 17:27:30 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						27e3be3778 
					 
					
						
						
							
							[client] egl: free desktop damage after rendering  
						
						
						
						
					 
					
						2021-07-22 13:12:07 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						08293c8721 
					 
					
						
						
							
							[egl] damage: only update the damage vbo if there was a new frame  
						
						
						
						
					 
					
						2021-07-21 17:29:46 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						6389a06903 
					 
					
						
						
							
							[client] main: let the renderer know if it's rendering a whole new frame  
						
						... 
						
						
						
						While the renderer can internally track this it would be better to
simply provide this information to the renderer directly so it can make
better decisions on how best to update the screen. 
						
						
					 
					
						2021-07-21 17:26:48 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						1a88996c47 
					 
					
						
						
							
							[client] opengl: don't include <GL/glx.h>  
						
						... 
						
						
						
						The OpenGL renderer backend should not depend on any particular
implementation of OpenGL, as it's used by both X11 and Wayland. 
						
						
					 
					
						2021-07-21 12:33:01 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						563ad18f4e 
					 
					
						
						
							
							[client] egl: improve cursor damage logic  
						
						... 
						
						
						
						1. Use atomics and return exact cursor positions from egl_cursor_render
   to avoid race conditions between cursor render and update.
2. Instead of messing with lastCursorValid in various overlays, simply use
   the hasOverlay/hadOverlay logic for cursor damage. This simplifies the
   logic greatly.
As a result, I believe all cursor-related artifacts are fixed.
Note to reviewer: as atomic_init and atomic_store are implemented as macros,
it is currently not possible to pass structs as compound literals due to the
comma being interpreted as an argument separator by the preprocessor. 
						
						
					 
					
						2021-07-20 11:29:13 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						b8effaf42c 
					 
					
						
						
							
							[client] egl: use glGetError and codes for errors in gl* functions  
						
						... 
						
						
						
						We used to use DEBUG_EGL_ERROR for gl* functions, which just yields
EGL_SUCCESS even when there are errors. 
						
						
					 
					
						2021-07-19 19:36:46 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						7c872d2d9e 
					 
					
						
						
							
							[client] egl: properly use OpenGL ES  
						
						... 
						
						
						
						Instead of using the desktop <GL/gl.h>, we properly use the OpenGL ES 3.x
headers. Also, we now use GL_EXT_buffer_storage for MAP_PERSISTENT_BIT_EXT
and MAP_COHERENT_BIT_EXT as the core versions are only available in desktop
OpenGL 4.4. Similarly, we need GL_EXT_texture_format_BGRA8888 for GL_BGRA_EXT
as GL_BGRA is desktop-only. 
						
						
					 
					
						2021-07-18 20:44:32 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						ab31040d5f 
					 
					
						
						
							
							[client] all: use imgui for FPS/UPS display  
						
						
						
						
					 
					
						2021-07-18 20:43:17 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						42d8f31eba 
					 
					
						
						
							
							[client] imgui: use ES 3.0 and remove glew dependency  
						
						... 
						
						
						
						If we specifically tell ImGui's OpenGL 3.x backend to target OpenGL ES 3.0,
then no extension loader is necessary. 
						
						
					 
					
						2021-07-18 18:50:12 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						c6a6230a56 
					 
					
						
						
							
							[client] egl: revert "only copy damaged areas when using dmabuf"  
						
						... 
						
						
						
						This reverts commit a14de25661 
						
						
					 
					
						2021-07-18 18:48:35 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						a14de25661 
					 
					
						
						
							
							[client] egl: only copy damaged areas when using dmabuf  
						
						... 
						
						
						
						This speeds up the copy significantly when the frame only has small
amount of damage. 
						
						
					 
					
						2021-07-18 17:41:29 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						a4bf3c8088 
					 
					
						
						
							
							[client] egl: use debug context and make it configurable  
						
						... 
						
						
						
						The boolean option egl:debug is used to control whether we want debug
output or not. This defaults to true to aid in debugging. 
						
						
					 
					
						2021-07-18 15:55:50 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						6472c28473 
					 
					
						
						
							
							[client] egl: upload damage vertices with glBufferSubData  
						
						... 
						
						
						
						This avoids the issues surrounding glMapBuffer and glMapBufferRange in
OpenGL ES. 
						
						
					 
					
						2021-07-18 15:55:27 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						f49f2af6cd 
					 
					
						
						
							
							[client] egl: implement error reporting callback  
						
						... 
						
						
						
						This reports useful information from OpenGL on supported platforms. 
						
						
					 
					
						2021-07-18 13:54:16 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						061b9ba6c2 
					 
					
						
						
							
							[client] egl: use vertex array objects in model.c  
						
						... 
						
						
						
						This eliminates the need to bind the buffers and set up the vertices on
every frame. 
						
						
					 
					
						2021-07-18 11:58:47 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						d4f8426ae4 
					 
					
						
						
							
							[client] egl: correctly clean up vertex buffer objects  
						
						... 
						
						
						
						The code used to use hasBuffer, which was never set to true, so buffer
objects were always leaked instead. 
						
						
					 
					
						2021-07-18 11:58:47 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						2b3f31700b 
					 
					
						
						
							
							[client] egl: implement frame damage display  
						
						
						
						
					 
					
						2021-07-18 10:41:50 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						00eb26a34f 
					 
					
						
						
							
							[client] egl: do not use damage when overlays are visible  
						
						... 
						
						
						
						This allows the overlays to show up correctly. 
						
						
					 
					
						2021-07-18 10:41:50 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						442ab318fd 
					 
					
						
						
							
							[client] egl: use desktop frame damage information  
						
						
						
						
					 
					
						2021-07-18 10:41:50 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						eb357fa58a 
					 
					
						
						
							
							[client] egl: use glCopyTexSubImage2D to copy when using DMA  
						
						... 
						
						
						
						This removes the need for the driver to allocate texture storage and deleting
the previous allocation on every frame update. 
						
						
					 
					
						2021-07-18 10:34:21 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f08163fd72 
					 
					
						
						
							
							[client] imgui: added imgui to the client and OpenGL/EGL renderers  
						
						
						
						
					 
					
						2021-07-17 21:09:51 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						7b95cc72ed 
					 
					
						
						
							
							[client] opengl: do not render a sync pending texture  
						
						
						
						
					 
					
						2021-07-02 21:48:31 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						d24b031fc5 
					 
					
						
						
							
							[client] opengl: cosmetics  
						
						
						
						
					 
					
						2021-07-02 20:10:25 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						55d185ef9c 
					 
					
						
						
							
							[client] opengl: no need to re-bind the already bound texture  
						
						
						
						
					 
					
						2021-07-02 19:51:22 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						9cbc255448 
					 
					
						
						
							
							[client] opengl: do not prematurely delete overlay textures  
						
						... 
						
						
						
						Overlay textures exist for the lifetime of the renderer and as such
should not be deleted when the resolution changes. 
						
						
					 
					
						2021-07-02 19:50:31 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						212cc32097 
					 
					
						
						
							
							[client] opengl: deconfigure is idempotent  
						
						
						
						
					 
					
						2021-07-02 19:50:15 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f07e4839b1 
					 
					
						
						
							
							[client] egl: fix dmabuf support  
						
						
						
						
					 
					
						2021-06-08 20:51:09 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						964403b4f8 
					 
					
						
						
							
							[client] egl: tex is now an array, so check it properly for assignment  
						
						
						
						
					 
					
						2021-06-08 20:45:37 +10:00