91f813ffb7 
								
							
								 
							
						 
						
							
							
								
								output_layout: return wlr_output_layout_output when adding output  
							
							... 
							
							
 
							
							This will be used for the scene-graph integration. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								72787db98a 
								
							
								 
							
						 
						
							
							
								
								compositor: drop wlr_surface_destroy_role_object()  
							
							... 
							
							
 
							
							This function is now unnecessary. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								bd5c4f4a4a 
								
							
								 
							
						 
						
							
							
								
								xdg-shell: rework roles  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								f0cc712af1 
								
							
								 
							
						 
						
							
							
								
								xdg-shell: don't return anything from create_xdg_surface()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								9b8cd1f5d6 
								
							
								 
							
						 
						
							
							
								
								buffer: make wlr_client_buffer functions private  
							
							... 
							
							
 
							
							We want to eventually remove this. Let's make sure compositors
don't start using either of these functions. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								bdc34401ba 
								
									
								
							
								 
							
						 
						
							
							
								
								xdg-decoration: store an xdg_toplevel instead of xdg_surface  
							
							... 
							
							
 
							
							Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3685  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								22b6581a18 
								
							
								 
							
						 
						
							
							
								
								backend/wayland: wait for xdg_surface.configure explicitly  
							
							... 
							
							
 
							
							We were assuming a roundtrip was enough to get an
xdg_surface.configure event. That's not the case, the protocol
spec doesn't make such a guarantee. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								d3d3e19ffd 
								
							
								 
							
						 
						
							
							
								
								render: split render pass API into separate header  
							
							... 
							
							
 
							
							Keeps the main wlr_renderer.h a tad more tidy. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								568b1943b9 
								
							
								 
							
						 
						
							
							
								
								wlr_output: Nuke wlr_output_update_enabled  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								f1ba70ffa6 
								
							
								 
							
						 
						
							
							
								
								wlr_output: Make wlr_output_update_{custom,}_mode private  
							
							... 
							
							
 
							
							Backends should be using wlr_output_send_request_state to request
modesets to the compositor. This will be inlined and removed next commit. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6cda3e251c 
								
							
								 
							
						 
						
							
							
								
								output: Add initialization state to wlr_output_init  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								8678633fc9 
								
							
								 
							
						 
						
							
							
								
								backend/wayland: add wlr_wl_output_create_from_surface()  
							
							... 
							
							
 
							
							By using this function, a compositor can display a wlroots
compositor in a sub-surface, for instance. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								4f88886199 
								
							
								 
							
						 
						
							
							
								
								backend/wayland: tag wl_surface  
							
							... 
							
							
 
							
							When integrating wlroots with another toolkit, wlroots may receive
wl_pointer.enter events for surfaces not backed by a wlr_output.
Ignore such surfaces by tagging the ones we're aware of with
wl_proxy_set_tag(). 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								dd24991c9e 
								
							
								 
							
						 
						
							
							
								
								backend/wayland: take existing wl_display in wlr_wl_backend_create()  
							
							... 
							
							
 
							
							This allows compositors to use an existing wl_display, to integrate
wlroots with an existing toolkit. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								77dc1c28aa 
								
							
								 
							
						 
						
							
							
								
								xwayland: drop wlr_xwayland_surface.events.set_pid  
							
							... 
							
							
 
							
							The PID of an X11 window cannot change.
This is a remnant from the days when we queried the PID with a
window property, instead of using XRes. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								42a5b6f62a 
								
							
								 
							
						 
						
							
							
								
								compositor: add "mapped" flag doc  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								529f1b82ee 
								
							
								 
							
						 
						
							
							
								
								xwayland/shell: don't listen to wlr_surface.events.destroy  
							
							... 
							
							
 
							
							The wlr_xwayland_surface_v1 will be destroyed automatically
from xwl_surface_role_destroy(). 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								2f859f5bec 
								
									
								
							
								 
							
						 
						
							
							
								
								wlr_output: add comments for signal parameters  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								e8d545a977 
								
									
								
							
								 
							
						 
						
							
							
								
								xdg-shell: add support for v6  
							
							... 
							
							
 
							
							This adds the suspended toplevel state 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								04e4e06986 
								
							
								 
							
						 
						
							
							
								
								cursor-shape-v1: new protocol implementation  
							
							... 
							
							
 
							
							References: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/194  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								f3cf830e9a 
								
							
								 
							
						 
						
							
							
								
								wlr_idle_inhibit_manager_v1: add comments for signal parameters  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								7791ffe058 
								
							
								 
							
						 
						
							
							
								
								data-device: remove undefined grab interface decls  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								c6603288fb 
								
							
								 
							
						 
						
							
							
								
								xdg-shell: update stale docs  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								000081db19 
								
							
								 
							
						 
						
							
							
								
								cursor, output: apply viewport to cursor  
							
							... 
							
							
 
							
							Instead of passing the scale, pass the source and destination
boxes.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3676  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								657ca2205f 
								
							
								 
							
						 
						
							
							
								
								wlr_gamma_control: add missing forward declarations  
							
							... 
							
							
 
							
							Fixes an error seen in labwc CI builds with -Werror:
    ../subprojects/wlroots/include/wlr/types/wlr_gamma_control_v1.h:44:16:
    error: ‘struct wlr_output_state’ declared inside parameter list
    will not be visible outside of this definition or declaration [-Werror]
       44 |         struct wlr_output_state *output_state);
          |                ^~~~~~~~~~~~~~~~ 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								67447d6cb4 
								
							
								 
							
						 
						
							
							
								
								presentation-time: add separate helper for zero-copy  
							
							... 
							
							
 
							
							The backend is not able to tell whether a surface is being
presented via direct scan-out or not. The backend will set
ZERO_COPY if the buffer submitted via the output commit was
presented in a zero-copy fashion, but will no know whether the
buffer comes from the compositor or the client. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								fe84bfc8d9 
								
							
								 
							
						 
						
							
							
								
								scene: add wlr_scene_output_sample_event  
							
							... 
							
							
 
							
							This contains the output and a bool indicating direct scan-out. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								88942d43fd 
								
							
								 
							
						 
						
							
							
								
								scene: rename output_present event to output_sample  
							
							... 
							
							
 
							
							Using "present" is confusing here: the event is emitted when the
buffer is being sampled to be displayed on an output, not when it's
being presented on-screen.
Rename to match the presentation-time terminology. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								4811d9fb18 
								
							
								 
							
						 
						
							
							
								
								render: document wlr_buffer_pass_options.timer  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								b7dca21c2b 
								
							
								 
							
						 
						
							
							
								
								render: constify struct wlr_buffer_pass_options  
							
							... 
							
							
 
							
							Let's not allow renderer implementations to mutate the passed in
options. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								214df8eda0 
								
							
								 
							
						 
						
							
							
								
								scene_output: optionally record and report timings  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								5bb0057794 
								
							
								 
							
						 
						
							
							
								
								xwayland: document event data  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								19ba3f0c2a 
								
							
								 
							
						 
						
							
							
								
								xwayland: drop struct wlr_xwayland_move_event  
							
							... 
							
							
 
							
							This only contains the xsurface, which isn't particularly useful. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								972c5f0c11 
								
							
								 
							
						 
						
							
							
								
								xwayland: document associate/dissociate events  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6f8287128b 
								
							
								 
							
						 
						
							
							
								
								output: drop wlr_output_cursor_set_image()  
							
							... 
							
							
 
							
							This function takes a pointer to memory with a hardcoded format
and many parameters to describe the pixel buffer.
wlr_output_cursor_set_buffer() can be used instead. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								0fc532f8de 
								
							
								 
							
						 
						
							
							
								
								cursor: remove wlr_cursor_set_image()  
							
							... 
							
							
 
							
							Superseded by wlr_cursor_set_buffer(). 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								18bafbfc57 
								
							
								 
							
						 
						
							
							
								
								xcursor-manager: drop wlr_xcursor_manager_set_cursor_image()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								71c87ff4b8 
								
							
								 
							
						 
						
							
							
								
								cursor: add wlr_cursor_set_buffer()  
							
							... 
							
							
 
							
							A saner replacement for wlr_cursor_set_image():
- Takes a wlr_buffer instead of numerous parameters and a hardcoded
  format.
- The scale is not used to filter outputs.
- A ref to the buffer is kept to apply it to new outputs. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								aa1055134d 
								
							
								 
							
						 
						
							
							
								
								backend/drm: handle output layer damage  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								13f096b0ac 
								
							
								 
							
						 
						
							
							
								
								output-layer: add wlr_output_layer_state.damage  
							
							... 
							
							
 
							
							Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3593  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								c68c9f1685 
								
							
								 
							
						 
						
							
							
								
								wlr_scene_buffer: Publicize some state  
							
							... 
							
							
 
							
							The sway scene port relies on this to create a copy of the buffer for
saved surface purposes. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								be05097968 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_state_init()  
							
							... 
							
							
 
							
							This changes the semantics of wlr_output_state. Instead of having
fields with uninitialized memory when missing from the committed
bitflag, all fields are always initialized (and maybe NULL/empty),
just like we do in wlr_surface_state. This reduces the chances of
footguns when reading a field, and removes the need to check for
the committed bitfield everywhere.
A new wlr_output_state_init() function takes care of initializing
the Pixman region. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								8a5b5e6f28 
								
							
								 
							
						 
						
							
							
								
								compositor: listen to role_resource destroy signal  
							
							... 
							
							
 
							
							Call wlr_surface_destroy_role_object() when the role_resource is
destroyed. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								89cb484220 
								
							
								 
							
						 
						
							
							
								
								compositor: replace role_data with role_resource  
							
							... 
							
							
 
							
							This increases type safety, makes it more obvious that role_data
must represent the role object, and will allow for automatic
cleanup when the resource is destroyed. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								fc9b58e84d 
								
							
								 
							
						 
						
							
							
								
								compositor: don't call role unmap hook without an object  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								0f67580aab 
								
							
								 
							
						 
						
							
							
								
								compositor: introduce wlr_surface_set_role_object()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								4b7c526578 
								
							
								 
							
						 
						
							
							
								
								output: Introduce wlr_output_state_copy()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								b625a13156 
								
							
								 
							
						 
						
							
							
								
								output: attach buffer to state in output_ensure_buffer()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								2ac31fc630 
								
							
								 
							
						 
						
							
							
								
								wlr_scene: Introduce wlr_scene_buffer_set_filter_mode  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								2044cc2311 
								
							
								 
							
						 
						
							
							
								
								render: Introduce wlr_render_texture_options.blend_mode  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6bd44c4fcd 
								
							
								 
							
						 
						
							
							
								
								renderer: Introduce wlr_scale_filter_mode  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								3ee0f52e09 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: Dynamically create texture views  
							
							... 
							
							
 
							
							Now that we are dynamically creating pipeline layouts, we need separate
texture views for each pipeline layout we choose to use with a texture. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								8a387b5558 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: Dynamically create pipeline layouts  
							
							... 
							
							
 
							
							These will happen lazily when pipelines get created. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								3623005858 
								
							
								 
							
						 
						
							
							
								
								render/vulkan/pipeline_key: Add blending  
							
							... 
							
							
 
							
							This will become necessary when we switch away from scissoring. For the
time being, this cleans things up a bit and allows for a trivial
blending implementation for textures when that comes. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								9d31372930 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: Handle quad pipeline through generic pipeline path  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								97fdd57eb2 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: Dynamically handle pipeline creation for textures  
							
							... 
							
							
 
							
							If we ever wanted to handle dynamic state that requires new pipelines
such as using different texture filters those can be added here with more
ease. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								220402b717 
								
							
								 
							
						 
						
							
							
								
								cursor: add wlr_cursor_unset_image()  
							
							... 
							
							
 
							
							It's pretty awkward to call wlr_cursor_set_image() with 6 zeroes.
Hide that awkwardness in wlroots. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								da04b066ea 
								
							
								 
							
						 
						
							
							
								
								cursor: add wlr_cursor_set_xcursor()  
							
							... 
							
							
 
							
							This keeps track of the last set XCursor. If it hasn't changed,
skip the texture upload.
In the future, support for animated XCursors can be added.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3436  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								7ce9459715 
								
							
								 
							
						 
						
							
							
								
								output: add documentation for wlr_output_state  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								753f3cc4fa 
								
							
								 
							
						 
						
							
							
								
								compositor: add wlr_surface_role.no_object  
							
							... 
							
							
 
							
							This commit allows to make a role as not represented by an object,
which fixes calling role commit handlers for roles like cursor
surfaces.
Fixes: 099b9de752 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								670915eeea 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_state_set_layers()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								4339c37f99 
								
							
								 
							
						 
						
							
							
								
								backend/drm: clip FB damage  
							
							... 
							
							
 
							
							The kernel complains when the damage exceeds the FB bounds:
    [73850.448326] i915 0000:00:02.0: [drm:drm_atomic_check_only] [PLANE:31:plane 1A] invalid damage clip 0 0 2147483647 2147483647
Make the DRM backend behave like the Wayland one and allow compositors
to damage (0, 0, INT32_MAX, INT32_MAX) to repaint everything without
needing to know the exact buffer size.
Closes: https://github.com/swaywm/sway/issues/7632  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								96f1fdd113 
								
							
								 
							
						 
						
							
							
								
								seat: remove a TODO comment about simulating keyboard events  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								05dd08afe5 
								
							
								 
							
						 
						
							
							
								
								scene: introduce wlr_scene_output_build_state()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								ae7bad86dd 
								
							
								 
							
						 
						
							
							
								
								output: introduce wlr_output_state_set_damage()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								36376e2ddf 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: stop applying gamma LUTs implicitly  
							
							... 
							
							
 
							
							Make the compositor responsible for doing that, so that they can
properly integrate with their output commit sequence. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								ec9b79ef19 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: add wlr_gamma_control_v1_send_failed_and_destroy()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								026fc6eda0 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: add wlr_gamma_control_v1_apply()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								5d5cf34486 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_state_set_gamma_lut()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								6e635d2fd3 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: add wlr_gamma_control_manager_v1_get_control()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								70c1a57248 
								
							
								 
							
						 
						
							
							
								
								gamma-control-v1: introduce set_gamma event  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								1bf245e0fe 
								
							
								 
							
						 
						
							
							
								
								compositor: improve role-specific documentation  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								24a479a501 
								
							
								 
							
						 
						
							
							
								
								drag: don't set icon's role_data  
							
							... 
							
							
 
							
							Currently, an icon surface's role_data is set manually to a struct
wlr_drag_icon, which is hacky, incorrect (as role_data is supposed
to be the surface's role object, and drag icons don't have them), and
will be disallowed by future changes. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								544c0622fa 
								
							
								 
							
						 
						
							
							
								
								presentation-time: constify wlr_presentation_feedback_send_presented()  
							
							... 
							
							
 
							
							We don't need to mutate the event in this function. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								4c9eb6839d 
								
							
								 
							
						 
						
							
							
								
								compositor: add a note about ignored input regions  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								3dc646ea88 
								
							
								 
							
						 
						
							
							
								
								Add some missing includes/declarations  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								45ca284eee 
								
							
								 
							
						 
						
							
							
								
								render/gles2: implement timer API  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								9e8947e4d5 
								
							
								 
							
						 
						
							
							
								
								add render timer API  
							
							... 
							
							
 
							
							Based on five calls:
wlr_render_timer_create - creates a timer which can be reused across
  frames on the same renderer
wlr_renderer_begin_buffer_pass - now takes a timer so that backends can
  record when the rendering starts and finishes
wlr_render_timer_get_time - should be called as late as possible so that
  queries can make their way back from the GPU
wlr_render_timer_destroy - self-explanatory
The timer is exposed as an opaque `struct wlr_render_timer` so that
backends can store whatever they want in there. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								bd834fe8d1 
								
							
								 
							
						 
						
							
							
								
								util: add timespec_to_nsec  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								4c5eadecce 
								
							
								 
							
						 
						
							
							
								
								backend/wayland: add scaling support for output layers  
							
							... 
							
							
 
							
							Use the viewporter protocol to scale output layers. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								49e9be62ae 
								
							
								 
							
						 
						
							
							
								
								subcompositor: consider mapping on parent map  
							
							... 
							
							
 
							
							Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3654  
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								52b93f7eb4 
								
							
								 
							
						 
						
							
							
								
								output/cursor: fix scale and transform  
							
							... 
							
							
 
							
							Many issues here:
- wlr_output_cursor_set_buffer() takes a buffer already scaled for
  the output, not a buffer with scale=1.
- wlr_output_cursor.{width,height,hotspot_x,hotspot_y} are in output
  buffer coordinates.
- render_cursor_buffer() had hardcoded no-ops for scale and
  transform, instead of using the cursor surface's.
Fixes: b64e7e88bf 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								e75407fd4d 
								
							
								 
							
						 
						
							
							
								
								session-lock: remove unused wlr_session_lock_surface_v1.events.map  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								d086ee1b9e 
								
							
								 
							
						 
						
							
							
								
								compositor: remove wlr_surface_role.precommit  
							
							... 
							
							
 
							
							It was previously used to handle unmapping properly but is obsolete now. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								26676c8c07 
								
							
								 
							
						 
						
							
							
								
								xwm: use unified map logic  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								af4181f388 
								
							
								 
							
						 
						
							
							
								
								drag: use unified map logic  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								743da5c0ae 
								
							
								 
							
						 
						
							
							
								
								input-method: use unified map logic  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								f60b367db7 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: drop unused vulkan_has_extension()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								42eec38ab6 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: drop unused vulkan_change_layout_queue()  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								c7ae9dfaf8 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: generalize YCbCr format support  
							
							
 
							
						 
						
							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  
				
					
						
							
							
								 
						
							
							
								5f4a35290d 
								
							
								 
							
						 
						
							
							
								
								util/box: always treat NULL boxes as empty  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								96f3f3c92e 
								
							
								 
							
						 
						
							
							
								
								render/pixel-format: add support for block-based formats  
							
							... 
							
							
 
							
							Some formats like sub-sampled YCbCr use a block of bytes to
store the color values for more than one pixel. Update our format
table to be able to handle such formats. 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								78a1ac540e 
								
							
								 
							
						 
						
							
							
								
								render/pixel-format: add docs  
							
							
 
							
						 
						
							2 years ago  
				
					
						
							
							
								 
						
							
							
								10dd416694 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: allow rendering to non-8-bit buffers  
							
							... 
							
							
 
							
							This is implemented by a two-subpass rendering scheme; the first
subpass draws (and blends) onto a linear R16G16B16A16_SFLOAT buffer,
while the second subpass performs linear->srgb conversion, writing
onto the actual output buffer. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								300bd80772 
								
							
								 
							
						 
						
							
							
								
								wlr_drm_format_set: Store formats on array  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								90d08f8f1c 
								
							
								 
							
						 
						
							
							
								
								wlr_drm_format: Rework wlr_drm_format_intersect  
							
							... 
							
							
 
							
							Now it takes a reference to a destination format 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								340700cb70 
								
							
								 
							
						 
						
							
							
								
								wlr_drm_format: Change wlr_drm_format_dup to copy  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								099a147439 
								
							
								 
							
						 
						
							
							
								
								wlr_drm_format: Change wlr_drm_format_create to init  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								e427e019c4 
								
							
								 
							
						 
						
							
							
								
								wlr_drm_format: Don't take double pointer in wlr_drm_format_add  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								e6879616e7 
								
							
								 
							
						 
						
							
							
								
								wlr_drm_format: Make structure constant length  
							
							... 
							
							
 
							
							Don't store modifiers as part of the struct. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								84d07e7119 
								
							
								 
							
						 
						
							
							
								
								wlr_drm_format_set: Remove redundant text in comment for finish function  
							
							... 
							
							
 
							
							This is implied by the fact that this function finishes the state instead
of destroying it. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								b45396c790 
								
							
								 
							
						 
						
							
							
								
								wlr_drm_format: Introduce drm_format_finish  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								2a1234a820 
								
							
								 
							
						 
						
							
							
								
								wlr-export-dmabuf-v1: handle output destroy  
							
							... 
							
							
 
							
							We were storing a wlr_output without listening for the destroy
event.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3646  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								d933f5204b 
								
							
								 
							
						 
						
							
							
								
								output: drop wlr_output_cursor_set_surface  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								b64e7e88bf 
								
							
								 
							
						 
						
							
							
								
								output: add output_cursor_set_texture()  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								b03f71fe5f 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: add support for NV12  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								5adb1be3a7 
								
							
								 
							
						 
						
							
							
								
								drm_format_set_intersect: Require initialized dst and remove assert  
							
							... 
							
							
 
							
							The usages in linux_dmabuf zero out the dst before passing it so this
change should be fine. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								1ee75786b4 
								
							
								 
							
						 
						
							
							
								
								drm_format_set_union: Require initialized dst and remove assert  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								d7917d2076 
								
							
								 
							
						 
						
							
							
								
								xwayland: allow compositor to set withdrawn state  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								394accbe4a 
								
							
								 
							
						 
						
							
							
								
								wlr_compositer: Keep track if surface has committed a buffer before.  
							
							... 
							
							
 
							
							This would break if you are running with a NULL renderer. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								2dd9549085 
								
							
								 
							
						 
						
							
							
								
								drm_format_set: Mark as unstable  
							
							... 
							
							
 
							
							This is supposed to be an unstable interface and it was a mistake that
this header was not included. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								ec37d55a5e 
								
							
								 
							
						 
						
							
							
								
								Add union function for format sets  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								a93fc8afd6 
								
							
								 
							
						 
						
							
							
								
								render: introduce blend mode  
							
							... 
							
							
 
							
							Allow callers to pick the blend mode when rendering a rect. The
"none" mode can be used to disable blending and clear rects. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								f5a5712a02 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: use VK_KHR_synchronization2  
							
							... 
							
							
 
							
							This simplifies the vkQueueSubmit call, removing the need to pass
timeline semaphore point values as separate arrays. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								6830bfc17f 
								
							
								 
							
						 
						
							
							
								
								render/pixman: implement render pass API  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								6ce371a317 
								
							
								 
							
						 
						
							
							
								
								render/pixman: add begin_pixman_data_ptr_access()  
							
							... 
							
							
 
							
							This logic is used twice. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								587852056c 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_add_software_cursors_to_render_pass()  
							
							... 
							
							
 
							
							Same as wlr_output_render_software_cursors(), but takes a
struct wlr_render_pass. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								471249ae4f 
								
							
								 
							
						 
						
							
							
								
								render/pass: add legacy render pass implementation  
							
							... 
							
							
 
							
							Add a render pass implementation which leverages the legacy
rendering API. This is helpful during the migration. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								4a1ad32534 
								
							
								 
							
						 
						
							
							
								
								render: add render pass helpers  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								756dedae20 
								
							
								 
							
						 
						
							
							
								
								Add a new renderer API  
							
							... 
							
							
 
							
							Goals:
- Extensibility: we need to be able to add new params to the calls
  to render a texture/rect. For instance we'll need to add fences to
  the render texture operation for explicit sync purposes.
- No implicit state: no more bind_buffer, begin, end.
- No matrices: these hurt Pixman and we don't need them.
- Clip regions for optimized damage repainting.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3188  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								44069dfd5e 
								
							
								 
							
						 
						
							
							
								
								output-layer: add cropping support  
							
							... 
							
							
 
							
							Add a src_box state field. Use the SRC_* KMS props in the DRM
backend, reject the layers in the Wayland backend (for now, we can
support it later via viewporter). 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								92b726ef67 
								
							
								 
							
						 
						
							
							
								
								render/vulkan: use full names for extension command fields  
							
							... 
							
							
 
							
							This makes grepping much easier. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								25d9055281 
								
							
								 
							
						 
						
							
							
								
								xcursor: sync with libwayland  
							
							... 
							
							
 
							
							xcursor.c was copied over from libwayland-cursor. A lot of
cosmetic imporvements have been merged upstream. Copy-paste the
new version. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								00489b11a0 
								
							
								 
							
						 
						
							
							
								
								seat: Provide dummy resources for inert seats  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								dae2deb3c9 
								
							
								 
							
						 
						
							
							
								
								compositor: add wlr_surface_set_preferred_buffer_transform()  
							
							... 
							
							
 
							
							References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/220  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								42edd36785 
								
							
								 
							
						 
						
							
							
								
								compositor: add wlr_surface_set_preferred_buffer_scale()  
							
							... 
							
							
 
							
							References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/220  
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								0bb574239d 
								
							
								 
							
						 
						
							
							
								
								compositor: pass version in wlr_compositor_create  
							
							... 
							
							
 
							
							This allows wlroots to support newer versions of the interface
without breaking the API. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								b1e38fc7ea 
								
							
								 
							
						 
						
							
							
								
								output: Drop output_is_direct_scanout  
							
							
 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								9ef98452a3 
								
							
								 
							
						 
						
							
							
								
								output-damage: drop  
							
							... 
							
							
 
							
							Compositors can migrate to wlr_damage_ring. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								079ff9e6fb 
								
							
								 
							
						 
						
							
							
								
								output: add wlr_output_is_direct_scanout_allowed()  
							
							... 
							
							
 
							
							This lets compositors check whether direct scan-out is possible.
Compositors will soon be responsible for manually calling this
function. 
							
						 
						
							3 years ago  
				
					
						
							
							
								 
						
							
							
								835208db98 
								
							
								 
							
						 
						
							
							
								
								output-layer: add support for scaling buffers  
							
							... 
							
							
 
							
							This allows callers to set a destination size different from the
buffer size to scale them.
The DRM backend supports this. The Wayland backend doesn't yet
(we'd need to wire up viewporter). 
							
						 
						
							3 years ago