229abfae0c 
								
							
								 
							
						 
						
							
							
								
								session-lock: use unified map logic  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								c63f3659c5 
								
							
								 
							
						 
						
							
							
								
								layer-shell: use unified map logic  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								b0437fc416 
								
							
								 
							
						 
						
							
							
								
								xdg-shell: use unified map logic  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								c590bb600f 
								
							
								 
							
						 
						
							
							
								
								subcompositor: use unified map logic  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6b40e08148 
								
							
								 
							
						 
						
							
							
								
								compositor: introduce unified map logic  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6668c822b3 
								
							
								 
							
						 
						
							
							
								
								cursor: unset wlr_output_cursor.texture on surface destroy  
							
							... 
							
							
 
							
							When the surface is destroyed, its current wlr_texture is about to
get destroyed as well. Reset wlr_output_cursor.texture to prevent
use-after-free.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3652  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								9c9e3f6263 
								
							
								 
							
						 
						
							
							
								
								cursor: ignore wlr_cursor_set_surface() with same surface  
							
							... 
							
							
 
							
							Avoids damaging the output and rendering the cursor again if it
hasn't changed. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								75d03f2b68 
								
							
								 
							
						 
						
							
							
								
								xwm: introduce associate/dissociate events  
							
							... 
							
							
 
							
							We'll soon introduce a unified wlr_surface map event. Up until now, compositors
have been using wlr_xwayland_surface's map event to setup various wlr_surface
related listeners (e.g. commit). This will no longer be possible when that
event is moved over to wlr_surface. Introduce new events where the compositor
can add/remove wlr_surface event listeners. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								2d6a09d9f0 
								
							
								 
							
						 
						
							
							
								
								Revert "xwm: emit new_surface/destroy on associate/dissociate"  
							
							... 
							
							
 
							
							Firing new_surface when a wlr_surface is associated to the X11 window is too
late: the X11 client might've sent configure events before that.
This reverts commit 039cca8a51https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3606  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								beb820b573 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: improve error handling in vulkan_begin_render_pass()  
							
							... 
							
							
 
							
							Release the command buffer if we end up not submitting it. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								0ba3ea3bcd 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: improve error handling in render_pass_submit()  
							
							... 
							
							
 
							
							Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								30aca4df0d 
								
							
								 
							
						 
						
							
							
								
								backend/drm: introduce wlr_drm_mode_get_info()  
							
							... 
							
							
 
							
							This allows compositors to get back the raw drmModeModeInfo and
look at DRM-specific fields and flags. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								ba276e5ac2 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: handle vulkan_record_stage_cb() failures  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								3f0487d310 
								
							
								 
							
						 
						
							
							
								
								backend/drm: move forward decl up for drmModeModeInfo  
							
							... 
							
							
 
							
							This allows doc generators to properly associate the doc comment
with the function instead of the typedef. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								5bcd537ff4 
								
							
								 
							
						 
						
							
							
								
								output/cursor: use new rendering API  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								8e81b4bb42 
								
							
								 
							
						 
						
							
							
								
								examples: convert to new rendering API  
							
							... 
							
							
 
							
							Left out multi-pointer (will be removed) and quads (requires
arbitrary rotation). 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								8fe29e6bd1 
								
							
								 
							
						 
						
							
							
								
								backend/drm: use new rendering API  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								93a6acae9f 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_begin_render_pass()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								95062904c7 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Introduce wlr_scene_buffer_set_opacity  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								2346b90a9f 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Make scene_rect_from_node public  
							
							... 
							
							
 
							
							This is in an effort to be more consistent with both already public
getters: wlr_scene_buffer_from_node and wlr_scene_tree_from_node 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								88f80c4a7c 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Make scene_tree_from_node public  
							
							... 
							
							
 
							
							This is to allow for compositors that want to be more implicit about
how their scene is organized. Such a compositor may want to walk up
at a certain scene node to find something such as a surface to focus on. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								61c157269e 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Add documentation to wlr_scene_buffer_from_node  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								e07c77f846 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: implement render pass API  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								8af00d5534 
								
							
								 
							
						 
						
							
							
								
								renderer/gles2: Implement render pass interface  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								b1d26ed47b 
								
							
								 
							
						 
						
							
							
								
								renderer/gles2: Compute texture coordinates based off of vertex positions  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								45b2a8eee2 
								
							
								 
							
						 
						
							
							
								
								renderer/gles2: Merge get_buffer and create_buffer  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6f67bfe5ab 
								
							
								 
							
						 
						
							
							
								
								renderer/gles2: Interpret matrix as column major in shader  
							
							... 
							
							
 
							
							Avoids us needing to transpose. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								3de330ec85 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: add 10, 12, and 16-bit YCbCr formats  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								2c6aeed7d6 
								
							
								 
							
						 
						
							
							
								
								output: use pending render format if any  
							
							... 
							
							
 
							
							If a modeset contains a render format change, use that instead of
the current one stored in wlr_output.render_format.
This fixes render_bit_depth configuration not being applied without
a second modeset in Sway. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								28e8d92263 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: document TEXTURE_TRANSFORM_* in shader  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								f60b367db7 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: drop unused vulkan_has_extension()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								42eec38ab6 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: drop unused vulkan_change_layout_queue()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								4d634276a4 
								
							
								 
							
						 
						
							
							
								
								render/egl: check for EGL_EXT_device_query in get_egl_device_from_drm_fd()  
							
							... 
							
							
 
							
							We use eglQueryDeviceStringEXT() later on, which is optional and
requires support for the EGL_EXT_device_query extension. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								7099fa2ea4 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: de-dup pipeline layout initialization  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								16dea12dae 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: add more YCbCr formats  
							
							... 
							
							
 
							
							The Vulkan spec states:
> For the purposes of range expansion and Y′CBCR model conversion,
> the R and B components contain color difference (chroma) values
> and the G component contains luma.
The equations below that sentence also help understand the mapping. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								a682fa6c21 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: require support for linear filter for YCbCr  
							
							... 
							
							
 
							
							YCBCR_CONVERSION_LINEAR_FILTER is not enough: this one only covers
chromaFilter. For magFilter/minFilter we need FILTER_LINEAR as well. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								91d469d8c0 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: check format support before creating YCbCr sampler  
							
							... 
							
							
 
							
							We need to check whether the format supports dma_tex_ycbcr_features
before creating the YCbCr sampler. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								c7ae9dfaf8 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: generalize YCbCr format support  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								50b494d0f9 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: add init_{default,ycbcr}_pipeline_layout()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								5ea0eb3468 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: add vulkan_get_pipeline_layout()  
							
							... 
							
							
 
							
							Will make it easier to add more pipeline layouts for other YCbCr
formats. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								fd38761676 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: introduce struct wlr_vk_pipeline_layout  
							
							... 
							
							
 
							
							This will make it easier to create one pipeline layout (plus related
objects) per YCbCr format. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								db619009dc 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: use same sampler params for RGBA and NV12  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								9755016422 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: use VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE for default sampler  
							
							... 
							
							
 
							
							We don't actually need the REPEAT mode, and this makes things more
consistent with the YCbCr sampler (which requires CLAMP_TO_EDGE for
spec compliance).
Also drop borderColor which is unused for this mode. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								fe7c998666 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: use identity swizzle for YCbCr formats  
							
							... 
							
							
 
							
							Fixes the following validation error:
    [ VUID-VkImageViewCreateInfo-pNext-01970 ] Object 0: handle = 0x62e00003c400, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xf378e14b | vkCreateImageView(): If there is a VkSamplerYcbcrConversion, the imageView must be created with the identity swizzle. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								091aa5582a 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: fix VkPipelineLayout when texturing NV12  
							
							... 
							
							
 
							
							The default pipeline layout was always passed. However, for NV12 we
need to pass a different one. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								fc3ad784e0 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: extract quad pipeline init to separate function  
							
							... 
							
							
 
							
							Makes it clearer that all of these structs are for the quad pipeline. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								dc6402d153 
								
							
								 
							
						 
						
							
							
								
								util/box: transform empty boxes' origins  
							
							... 
							
							
 
							
							Not a huge fan of this, but changing this behavior would be a breaking change
to a stable API.
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3650  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								09f5a00585 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: fix YCbCr format check in vulkan_texture_from_pixels()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								5f4a35290d 
								
							
								 
							
						 
						
							
							
								
								util/box: always treat NULL boxes as empty  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								5d67bbde86 
								
							
								 
							
						 
						
							
							
								
								util/box: simplify empty box case in wlr_box_intersection()  
							
							
 
							
						 
						
							2 years ago