Merge branch 'esync_cursor' into 'master'

Draft: cursor: explicit sync without `signal_release_with_buffer`

See merge request wlroots/wlroots!5302
This commit is contained in:
Félix Poisot 2026-06-04 08:01:37 +00:00
commit 3343731a9b
5 changed files with 56 additions and 11 deletions

View file

@ -36,6 +36,11 @@ struct wlr_output_mode {
struct wl_list link;
};
struct wlr_output_cursor_texture_sample_event {
struct wlr_drm_syncobj_timeline *release_timeline;
uint64_t release_point;
};
struct wlr_output_cursor {
struct wlr_output *output;
double x, y;
@ -51,6 +56,10 @@ struct wlr_output_cursor {
uint64_t wait_point;
struct wl_list link;
struct {
struct wl_signal texture_sample; // struct wlr_output_cursor_texture_sample_event
} events;
struct {
struct wl_listener renderer_destroy;
struct wlr_color_transform *color_transform;
@ -442,7 +451,8 @@ void wlr_output_lock_software_cursors(struct wlr_output *output, bool lock);
* This is a utility function that can be called when compositors render.
*/
void wlr_output_add_software_cursors_to_render_pass(struct wlr_output *output,
struct wlr_render_pass *render_pass, const pixman_region32_t *damage);
struct wlr_render_pass *render_pass, const pixman_region32_t *damage,
struct wlr_drm_syncobj_timeline *release_timeline, uint64_t release_point);
/**
* Get the set of DRM formats suitable for the primary buffer, assuming a
* buffer with the specified capabilities.