1cdef8da57 
								
							 
						 
						
							
							
								
								render: drop wlr_renderer_blit_dmabuf  
							
							... 
							
							
							
							It can be replaced with wlr_renderer_bind_buffer. blit_dmabuf is
broken as-is (dies on an assertion). 
							
						 
						
							2021-04-08 09:09:03 +02:00  
				
					
						
							
							
								 
						
							
								78d21fa131 
								
							 
						 
						
							
							
								
								render/gles2: remove depth and bpp gles2_pixel_format, use drm pixel format  
							
							
							
						 
						
							2021-03-25 10:55:54 +01:00  
				
					
						
							
							
								 
						
							
								9601a2abf0 
								
							 
						 
						
							
							
								
								output: improve transform matrix calculation  
							
							... 
							
							
							
							Compute only the transform matrix in the output. The projection matrix
will be calculated inside the gles2 renderer when we start rendering.
The goal is to help the pixman rendering process. 
							
						 
						
							2021-03-10 15:33:36 +01:00  
				
					
						
							
							
								 
						
							
								27fba3df43 
								
							 
						 
						
							
							
								
								render: use DRM formats in wlr_texture_from_pixels  
							
							
							
						 
						
							2021-02-23 16:09:26 +01:00  
				
					
						
							
							
								 
						
							
								b54ef3372d 
								
							 
						 
						
							
							
								
								render: use DRM formats in wlr_renderer_read_pixels  
							
							
							
						 
						
							2021-02-23 16:09:26 +01:00  
				
					
						
							
							
								 
						
							
								00bf6674b3 
								
							 
						 
						
							
							
								
								output: use DRM format in wlr_output_preferred_read_format  
							
							
							
						 
						
							2021-02-23 16:09:26 +01:00  
				
					
						
							
							
								 
						
							
								ddfee63055 
								
							 
						 
						
							
							
								
								render: use DRM formats in wlr_renderer_get_shm_texture_formats  
							
							
							
						 
						
							2021-02-23 16:09:26 +01:00  
				
					
						
							
							
								 
						
							
								549435aee5 
								
							 
						 
						
							
							
								
								render/gles2: replace wlr_gles2_texture.wl_format with drm_format  
							
							
							
						 
						
							2021-02-23 16:09:26 +01:00  
				
					
						
							
							
								 
						
							
								fab396f149 
								
							 
						 
						
							
							
								
								render/gles2: convert format table to DRM formats  
							
							
							
						 
						
							2021-02-23 16:09:26 +01:00  
				
					
						
							
							
								 
						
							
								bfd020047d 
								
							 
						 
						
							
							
								
								render/gles2: remove current_buffer checks  
							
							... 
							
							
							
							All backends now use wlr_swapchain. This means the renderer is
guaranteed to have a current_buffer bound.
Remove the legacy code used for EGLSurface. 
							
						 
						
							2021-02-19 23:36:00 +01:00  
				
					
						
							
							
								 
						
							
								8aa38fe73e 
								
							 
						 
						
							
							
								
								render/egl: remove *config_attribs and wlr_egl->config  
							
							... 
							
							
							
							Breaking changes:
Both "EGLint *config_attribs" and "wlr_egl->config" no longer exist. 
							
						 
						
							2021-01-29 10:03:24 +01:00  
				
					
						
							
							
								 
						
							
								afdf4dc890 
								
							 
						 
						
							
							
								
								render/gles2: make EGL context current in bind_buffer  
							
							... 
							
							
							
							Instead of requiring callers to manually make the EGL context current
before binding a buffer and unsetting it after unbinding a buffer, do
it inside wlr_renderer_bind_buffer.
This hides renderer-specific implementation details inside the
wlr_renderer interface. Non-GLES2 renderers may not use EGL.
This removes all EGL dependencies from the backends.
References: https://github.com/swaywm/wlroots/issues/2618 
References: https://github.com/swaywm/wlroots/pull/2615#issuecomment-756687006  
							
						 
						
							2021-01-16 09:06:17 +01:00  
				
					
						
							
							
								 
						
							
								02a086599c 
								
							 
						 
						
							
							
								
								render/gles2: save/restore EGL context in destroy_buffer  
							
							... 
							
							
							
							It can be surprising that destroying a buffer changes the EGL context,
especially since this can be triggered from anywhere wlr_buffer_unlock
is called.
Prevent this from happening by saving and restoring the EGL context. 
							
						 
						
							2021-01-14 12:00:06 +01:00  
				
					
						
							
							
								 
						
							
								3f7e0cf5f0 
								
							 
						 
						
							
							
								
								render/egl: remove surface and buffer age args from make_current  
							
							... 
							
							
							
							These aren't used anymore. 
							
						 
						
							2021-01-12 11:31:04 +01:00  
				
					
						
							
							
								 
						
							
								1d461687d2 
								
							 
						 
						
							
							
								
								render/egl: replace init/finish with create/destroy  
							
							... 
							
							
							
							This ensures wlr_gles2_renderer can properly take ownership of the
wlr_egl.
Closes: https://github.com/swaywm/wlroots/issues/2612  
							
						 
						
							2021-01-12 11:31:04 +01:00  
				
					
						
							
							
								 
						
							
								2585f322cb 
								
							 
						 
						
							
							
								
								render/gles2: fix EGL use-after-free  
							
							... 
							
							
							
							The wlr_egl was cleaned up too early.
While at it, also fix a memory leak.
Fixes: b899a412e3 
							
						 
						
							2021-01-12 10:45:14 +01:00  
				
					
						
							
							
								 
						
							
								b899a412e3 
								
							 
						 
						
							
							
								
								backend: remove wlr_egl from all backends  
							
							
							
						 
						
							2021-01-07 17:11:22 +01:00  
				
					
						
							
							
								 
						
							
								3fd8098881 
								
							 
						 
						
							
							
								
								render/gles2: require GL_EXT_unpack_subimage  
							
							... 
							
							
							
							We implicitly depended on this extension. 
							
						 
						
							2020-12-15 14:55:18 +01:00  
				
					
						
							
							
								 
						
							
								f91e89fd9f 
								
							 
						 
						
							
							
								
								render/gles2: query alpha size from render buffer  
							
							... 
							
							
							
							If we're using a render buffer, query the alpha size from it.
Closes: https://github.com/swaywm/wlroots/issues/2527  
							
						 
						
							2020-12-09 21:45:28 +01:00  
				
					
						
							
							
								 
						
							
								be8403e73d 
								
							 
						 
						
							
							
								
								render/gles2: don't eglGetConfigAttrib on EGL_NO_CONFIG_KHR  
							
							... 
							
							
							
							If we don't have an EGL config, don't try to query anything from it. 
							
						 
						
							2020-12-09 21:45:28 +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  
				
					
						
							
							
								 
						
							
								eb8360bda3 
								
							 
						 
						
							
							
								
								render: introduce wlr_renderer_get_drm_fd  
							
							
							
						 
						
							2020-11-15 22:54:07 +01:00  
				
					
						
							
							
								 
						
							
								1245730ea2 
								
							 
						 
						
							
							
								
								render/gles2: fix y-inverted output when rendering to buffer  
							
							
							
						 
						
							2020-11-15 22:48:42 +01:00  
				
					
						
							
							
								 
						
							
								6136fe87d1 
								
							 
						 
						
							
							
								
								render/gles2: implement wlr_renderer_bind_buffer  
							
							
							
						 
						
							2020-11-15 22:48:42 +01:00  
				
					
						
							
							
								 
						
							
								1dbcfdaf81 
								
							 
						 
						
							
							
								
								render/gles2: remove gles2_procs  
							
							... 
							
							
							
							Move the global into wlr_gles2_renderer. This removes global state and
allows us to have multiple renderers with different GL loaders. 
							
						 
						
							2020-07-28 06:59:07 -06:00  
				
					
						
							
							
								 
						
							
								62da61716f 
								
							 
						 
						
							
							
								
								render/gles2: make push/pop debug functions take a wlr_renderer  
							
							
							
						 
						
							2020-07-28 06:59:07 -06:00  
				
					
						
							
							
								 
						
							
								26af316b3b 
								
							 
						 
						
							
							
								
								render/gles2: make wlr_gles2_texture_from_* private  
							
							... 
							
							
							
							These functions are unused by compositors (see e.g. [1]) and prevent
wlr_gles2_texture from accessing wlr_gles2_renderer state. This is an
issue for proper teardown [2] and for accessing GLES2 extensions.
[1]: https://github.com/swaywm/wlroots/pull/1962#issuecomment-569511830 
[2]: https://github.com/swaywm/wlroots/pull/1962  
							
						 
						
							2020-07-28 06:59:07 -06:00  
				
					
						
							
							
								 
						
							
								e05a85327f 
								
							 
						 
						
							
							
								
								render: gles2: Fix y-inversion in gles2_blit_dmabuf()  
							
							
							
						 
						
							2020-07-01 11:43:02 +02:00  
				
					
						
							
							
								 
						
							
								4a4da256dd 
								
							 
						 
						
							
							
								
								render/gles2: use glGetAttribLocation instead of hardcoded indices  
							
							
							
						 
						
							2020-06-24 20:01:19 +02:00  
				
					
						
							
							
								 
						
							
								315bf08733 
								
							 
						 
						
							
							
								
								render: add wlr_render_subtexture_with_matrix  
							
							... 
							
							
							
							This renders only a subset of the texture, instead of the full texture. 
							
						 
						
							2020-06-17 09:10:54 -06:00  
				
					
						
							
							
								 
						
							
								78d6eed6b3 
								
							 
						 
						
							
							
								
								render: Fix blit_dmabuf() breakage due to API change  
							
							
							
						 
						
							2020-06-08 21:37:32 +02:00  
				
					
						
							
							
								 
						
							
								b64a8a7f98 
								
							 
						 
						
							
							
								
								render: Add wlr_renderer_blit_dmabuf()  
							
							
							
						 
						
							2020-06-08 20:49:41 +02:00  
				
					
						
							
							
								 
						
							
								e91417ea8d 
								
							 
						 
						
							
							
								
								render: stop making EGL context current in wlr_egl_init  
							
							... 
							
							
							
							This leaves an EGL context current behind. wlr_gles2_renderer_create was
assuming the EGL context was already current because of this (because it
called a GL function right off the bat). 
							
						 
						
							2020-06-02 14:23:24 -06:00  
				
					
						
							
							
								 
						
							
								1edc42157b 
								
							 
						 
						
							
							
								
								render/egl: introduce wlr_egl_unset_current  
							
							... 
							
							
							
							This function can be called after wlr_egl_make_current to cleanup the
EGL context. This avoids having lingering EGL contexts that make things
work by chance.
Closes: https://github.com/swaywm/wlroots/issues/2197  
							
						 
						
							2020-05-19 14:56:20 +02:00  
				
					
						
							
							
								 
						
							
								5dc3a9c754 
								
							 
						 
						
							
							
								
								render/gles2: add wlr_gles2_renderer_check_ext  
							
							
							
						 
						
							2020-04-22 22:40:54 +02:00  
				
					
						
							
							
								 
						
							
								d10f8a98ec 
								
							 
						 
						
							
							
								
								render: only expose linux-dmabuf if EGL extension is supported  
							
							... 
							
							
							
							Only expose linux-dmabuf extension if EGL_EXT_image_dmabuf_import_ext is
supported.
Closes: https://github.com/swaywm/wlroots/issues/2076  
							
						 
						
							2020-04-09 00:16:03 +00:00  
				
					
						
							
							
								 
						
							
								4a1015faff 
								
							 
						 
						
							
							
								
								render/gles2: only call wlr_egl_bind_display if supported  
							
							... 
							
							
							
							This allows us to hard-fail if the extension is advertised but we fail
to enable it. 
							
						 
						
							2020-04-09 00:16:03 +00:00  
				
					
						
							
							
								 
						
							
								c682d97841 
								
							 
						 
						
							
							
								
								Return failure of wlr_renderer_init_wl_display()  
							
							... 
							
							
							
							This makes it easier for the user of this library to properly handle
failure of this function.
The signature of wlr_renderer_impl.init_wl_display was also modified to
allow for proper error propagation. 
							
						 
						
							2020-03-23 15:19:16 +01:00  
				
					
						
							
							
								 
						
							
								6d3f3b9300 
								
							 
						 
						
							
							
								
								render/gles2: unbind textures after use  
							
							... 
							
							
							
							Keeping textures bound results in hard-to-debug situations where some GL
operations incorrectly affect the texture. 
							
						 
						
							2020-01-13 07:52:30 -07:00  
				
					
						
							
							
								 
						
							
								515679e4fe 
								
							 
						 
						
							
							
								
								Refactor EGL/GL API loading  
							
							... 
							
							
							
							Remove glapi.sh code generation, replace it with hand-written loading
code that checks extension strings before calling eglGetProcAddress.
The GLES2 renderer still uses global state because of:
- {PUSH,POP}_GLES2_DEBUG macros
- wlr_gles2_texture_from_* taking a wlr_egl instead of the renderer 
							
						 
						
							2019-12-20 01:03:34 +00:00  
				
					
						
							
							
								 
						
							
								5df606d8ab 
								
							 
						 
						
							
							
								
								render/gles2: do not set GL_TEXTURE_MAG_FILTER  
							
							
							
						 
						
							2019-11-26 09:42:10 -05:00  
				
					
						
							
							
								 
						
							
								4c9423278a 
								
							 
						 
						
							
							
								
								Introduce wlr_renderer_get_egl  
							
							
							
						 
						
							2019-11-11 19:10:10 +01:00  
				
					
						
							
							
								 
						
							
								85a2ee6d30 
								
							 
						 
						
							
							
								
								render/gles: Simplify textures a bit  
							
							... 
							
							
							
							We don't need our own enum for types. Instead we just use
GL_TEXTURE_{2D,EXTERNAL_OES}, which already describes usage.
Also fixes a situation where we were using GL_TEXTURE_2D in a situation
we should not have. wl_drm buffers are always GL_TEXTURE_EXTERNAL_OES,
no matter if they're RGB or any other format. 
							
						 
						
							2019-11-06 09:46:01 +01:00  
				
					
						
							
							
								 
						
							
								734c64a6cc 
								
							 
						 
						
							
							
								
								render/gles2: fix calculation for partial gles2 pixel read ( #1809 )  
							
							
							
						 
						
							2019-08-31 23:00:52 +03:00  
				
					
						
							
							
								 
						
							
								107a1789ea 
								
							 
						 
						
							
							
								
								render/gles2: print GL_RENDERER  
							
							... 
							
							
							
							This is often the name of the GPU and can help debugging graphics issues. 
							
						 
						
							2019-05-07 10:51:52 -06:00  
				
					
						
							
							
								 
						
							
								e42178d03f 
								
							 
						 
						
							
							
								
								render: switch wlr_renderer to wlr_drm_format_set  
							
							
							
						 
						
							2019-04-01 19:18:04 +03:00  
				
					
						
							
							
								 
						
							
								5445d8aad0 
								
							 
						 
						
							
							
								
								meson: enable more compiler warnings  
							
							
							
						 
						
							2019-03-01 09:20:23 +01:00