Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						062d18d5fa 
					 
					
						
						
							
							[client] egl: don't allocate the texture ringbuffer unless needed  
						
						
						
						
					 
					
						2021-08-09 18:28:52 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						04a54598b3 
					 
					
						
						
							
							[client] egl: set a default scale for textures without filters  
						
						
						
						
					 
					
						2021-08-09 18:27:10 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						79dcc6d4f1 
					 
					
						
						
							
							Revert "[client] egl: set a default scale for textures without filters"  
						
						... 
						
						
						
						This reverts commit 57a74c156b 
						
						
					 
					
						2021-08-09 18:26:30 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						57a74c156b 
					 
					
						
						
							
							[client] egl: set a default scale for textures without filters  
						
						
						
						
					 
					
						2021-08-09 18:24:33 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						6882e5c59f 
					 
					
						
						
							
							[client] egl: provide the texture scale to the desktop shader  
						
						... 
						
						
						
						If the texture has a post-processing filter that has scaled the texture,
the desktop fragment shader needs to know this if it's doing linear
scaling. 
						
						
					 
					
						2021-08-09 18:22:28 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f7f8060447 
					 
					
						
						
							
							[client] egl: allow setting an output scale for a post-process shader  
						
						
						
						
					 
					
						2021-08-09 17:57:36 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						53461d7515 
					 
					
						
						
							
							[client] egl: simplify desktop vertex shader  
						
						... 
						
						
						
						In GLSL, using the / operator on two vectors of the same size divides the
vector component-wise, i.e. vec2(a, b) / vec2(c, d) == vec2(a / c, b / d). 
						
						
					 
					
						2021-08-09 17:51:13 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						9b87f4ba5e 
					 
					
						
						
							
							[client] egl: cycle through multiple textures for dmabuf  
						
						... 
						
						
						
						This avoids race conditions in GL drivers when attempting to render and
call glEGLImageTargetTexture2DOES on the same texture.
Also, when using glEGLImageTargetTexture2DOES, we do not need to allocate
storage for textures. 
						
						
					 
					
						2021-08-09 17:12:11 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f50ef4c23c 
					 
					
						
						
							
							[client] egl: remove includes from testing  
						
						
						
						
					 
					
						2021-08-09 14:13:03 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						86d6b67337 
					 
					
						
						
							
							[client] egl: rework egl to accomodate post-processing filtering  
						
						
						
						
					 
					
						2021-08-09 14:08:10 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						91d1b8d2cd 
					 
					
						
						
							
							[client] egl: refactor egl_texture_free to use project naming standards  
						
						
						
						
					 
					
						2021-08-08 17:52:13 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						baf9661530 
					 
					
						
						
							
							[client] egl: remove texture->ops indirection  
						
						
						
						
					 
					
						2021-08-08 17:31:52 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						2141046da9 
					 
					
						
						
							
							[client] opengl: refactor to use project naming standards  
						
						
						
						
					 
					
						2021-08-08 17:21:25 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						266ad27998 
					 
					
						
						
							
							[client] egl: refactor to use project naming standard  
						
						
						
						
					 
					
						2021-08-08 17:16:10 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						30ed563504 
					 
					
						
						
							
							[client] interface: refactor to use camlCase function names  
						
						
						
						
					 
					
						2021-08-08 15:43:42 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						d347b28481 
					 
					
						
						
							
							[client] egl: implement free for texture frambuffer  
						
						
						
						
					 
					
						2021-08-08 15:35:13 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						f8ae291090 
					 
					
						
						
							
							[client] interface: switch to using UPCAST for the renderer's data  
						
						
						
						
					 
					
						2021-08-08 15:32:01 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						45d1f27fb4 
					 
					
						
						
							
							[client] interface: rename LG_Renderer to LG_RendererOps  
						
						... 
						
						
						
						Part of the standardisation of using the `Ops` suffix for all interfaces 
						
						
					 
					
						2021-08-08 14:43:04 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						b822e255d8 
					 
					
						
						
							
							[client] egl: attempt DMABUF import and fallback if it fails  
						
						... 
						
						
						
						This should deal with drivers not supporting our DMABUF without attempting
to identify the drivers and blacklist them. 
						
						
					 
					
						2021-08-08 09:53:47 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						037b76750a 
					 
					
						
						
							
							[client] egl: revert glsync changes  
						
						... 
						
						
						
						`process` and `bind` are called from the same thread in order, there is
no need for atomic usage here.
This reverts commit 3d7dbd6371b3db1ba10b 
						
						
					 
					
						2021-08-08 09:44:59 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						e949f2f8d2 
					 
					
						
						
							
							[client] egl: texture_framebuffer should call the stream init  
						
						
						
						
					 
					
						2021-08-08 09:43:28 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						88c91d4752 
					 
					
						
						
							
							[egl] texture: use more appropriate vairable names (parent & this)  
						
						
						
						
					 
					
						2021-08-08 09:35:56 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						3d7dbd6371 
					 
					
						
						
							
							[client] egl: sync is now an atomic, access it as such  
						
						
						
						
					 
					
						2021-08-08 09:26:36 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						b3db1ba10b 
					 
					
						
						
							
							[client] egl: eliminate GLsync object leaks  
						
						... 
						
						
						
						It used to be the case that we overwrite this->sync even if it was non-zero
when updating the texture, without deleting the sync object. If we update
faster than we render, the result would be leaking sync objects.
This commit ensures that sync objects are deleted when they are replaced. 
						
						
					 
					
						2021-08-08 09:19:04 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						12d256c7c8 
					 
					
						
						
							
							[client] egl: do a full redraw if nightvision is toggled  
						
						
						
						
					 
					
						2021-08-08 08:42:08 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						3e32e01c30 
					 
					
						
						
							
							[client] egl/imgui: use imgui for night vision gain configuration  
						
						
						
						
					 
					
						2021-08-08 08:42:01 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						ac3677d9ae 
					 
					
						
						
							
							[client] egl: implement partial copies for framebuffer textures  
						
						... 
						
						
						
						This uses the same line sweep algorithm originally created to copy DXGI
textures to IVSHMEM to implement the copy from IVSHMEM to memory-mapped
pixel buffer objects. 
						
						
					 
					
						2021-08-08 08:30:11 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						e755f0befa 
					 
					
						
						
							
							[client] egl: correct letterbox area clear attempt  #3  - sigh  
						
						
						
						
					 
					
						2021-08-07 04:00:18 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						9f6ad864ed 
					 
					
						
						
							
							[client] egl: correct letterbox area clear attempt  #2  :)  
						
						
						
						
					 
					
						2021-08-07 03:44:47 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						e5a138d854 
					 
					
						
						
							
							[client] egl: properly clear the letterbox areas  
						
						
						
						
					 
					
						2021-08-07 03:28:52 +10:00 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						162b1b93db 
					 
					
						
						
							
							[client] main: don't include the swap into the render timings  
						
						... 
						
						
						
						If vsync is enabled the swap will block until vblank skewing the timing
metrics. 
						
						
					 
					
						2021-08-07 01:45:42 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						5d3c00717a 
					 
					
						
						
							
							[client] egl/imgui: use imgui for scaling algorithm selection  
						
						
						
						
					 
					
						2021-08-06 22:49:49 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						dc7fd74327 
					 
					
						
						
							
							[client] egl: refactor config dialog into main egl module  
						
						... 
						
						
						
						This will allow other things like scaling to be implemented. 
						
						
					 
					
						2021-08-06 22:49:49 +10:00 
						 
				 
			
				
					
						
							
							
								Quantum 
							
						 
					 
					
						
						
							
						
						65e550a61c 
					 
					
						
						
							
							[client] egl: pad buffer damage by 1px when rendering desktop  
						
						... 
						
						
						
						We want to add extra padding to deal with scaling, which may end up blending
with neighbouring pixels. 
						
						
					 
					
						2021-08-05 08:05:30 +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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								Geoffrey McRae 
							
						 
					 
					
						
						
							
						
						14839dc54e 
					 
					
						
						
							
							[client] egl: there should only ever be a single sync object  
						
						
						
						
					 
					
						2021-08-03 00:47:59 +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