wlroots/types
Alexander Orzechowski 14e1987f50 wlr_scene: Don't special case swapchain buffers
This fixes direct scanout VRR. As direct scanout buffers are not part
of the swapchain, we would mistakenly union instead of subtract the damage
meaning it will just accumulate indefinitely.

The reason for this existing in the first place is for compositors that
might want to sidestep scene and commit their own buffers to the output.
In this case, scene could theoretically acknowledge that and update the
damage. Except, this really didn't work because WLR_OUTPUT_STATE_DAMAGE
would need to be defined which is optional. This patch also properly
acknowledges commits without damage.

In the use case of a weird compositor that might want to sidestep scene,
they can just trash the damage ring themselves.

Fixes: #3871
2024-08-14 11:23:02 -04:00
..
buffer Avoid using wayland-{client,server}.h 2024-04-17 13:37:12 +00:00
data_device seat: add serials to touch up events 2024-04-18 14:34:51 +00:00
output cursor: add support for linux-drm-syncobj-v1 2024-08-06 17:37:06 +00:00
scene wlr_scene: Don't special case swapchain buffers 2024-08-14 11:23:02 -04:00
seat seat/pointer: reset pressed buttons on focus change 2024-08-10 09:55:17 +03:00
tablet_v2 wlr_surface: fix argument order consistency 2024-07-13 19:56:58 +00:00
xdg_shell xdg-popup: don't set a role resource destroy handler 2024-08-14 13:32:16 +00:00
meson.build linux-drm-syncobj-v1: new protocol implementation 2024-06-12 18:40:25 +02:00
wlr_alpha_modifier_v1.c alpha-modifier-v1: add a missing NULL check in wlr_alpha_modifier_v1_get_surface_state() 2024-05-01 03:07:16 +03:00
wlr_compositor.c Rename wlr_surface_get_extends() to wlr_surface_get_extents() 2024-07-13 19:56:58 +00:00
wlr_content_type_v1.c content-type-v1: use wlr_surface_synced 2023-12-25 11:47:15 +01:00
wlr_cursor_shape_v1.c cursor-shape-v1: expose tablet tool in event 2024-03-05 11:20:05 +01:00
wlr_cursor.c cursor: add support for linux-drm-syncobj-v1 2024-08-06 17:37:06 +00:00
wlr_damage_ring.c wlr_damage_ring: Replace wlr_damage_ring_rotate_buffer with original list impl 2024-01-29 19:17:39 +00:00
wlr_data_control_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_drm_lease_v1.c drm-lease-v1: Free the wlr_drm_lease_v1 on error 2024-02-22 00:41:06 +01:00
wlr_drm.c render: drop wlr_renderer_get_dmabuf_texture_formats() 2024-04-21 11:27:29 +00:00
wlr_export_dmabuf_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_ext_foreign_toplevel_list_v1.c ext-foreign-toplevel-list: use correct interface and add missing handler 2024-08-12 22:31:31 +02:00
wlr_foreign_toplevel_management_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_fractional_scale_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_fullscreen_shell_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_gamma_control_v1.c wlr_gamma_control: Store gamma size when creating control 2024-04-01 23:00:48 +02:00
wlr_idle_inhibit_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00
wlr_idle_notify_v1.c idle-notify: make wl_global public 2024-03-18 08:12:53 +00:00
wlr_input_device.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_input_method_v2.c input-method: unmap popup surfaces on deactivate 2024-06-11 13:13:00 +00:00
wlr_keyboard_group.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_keyboard_shortcuts_inhibit_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_keyboard.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_layer_shell_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_linux_dmabuf_v1.c render: drop wlr_renderer_get_dmabuf_texture_formats() 2024-04-21 11:27:29 +00:00
wlr_linux_drm_syncobj_v1.c linux-drm-syncobj-v1: add helper to signal on buffer release 2024-08-06 17:37:06 +00:00
wlr_matrix.c matrix: remove wlr_matrix_projection() 2022-06-08 19:27:36 +00:00
wlr_output_layer.c output-layer: add feedback event 2023-02-20 18:38:57 +01:00
wlr_output_layout.c output-layout: fix missing global for outputs with a custom mode 2023-12-21 11:28:58 +01:00
wlr_output_management_v1.c output-management-v1: add wlr_output_configuration_v1_build_state() 2024-03-14 22:03:10 +00:00
wlr_output_power_management_v1.c output-power-management: send zwlr_output_power_v1.failed on output destroy 2024-08-01 15:24:20 +03:00
wlr_output_swapchain_manager.c output-swapchain-manager: new helper 2024-03-14 22:08:01 +00:00
wlr_pointer_constraints_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_pointer_gestures_v1.c wlr_pointer_gestures_v1: emit destroy signal in destroy function 2024-05-06 10:47:33 +03:00
wlr_pointer.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_presentation_time.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_primary_selection_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_primary_selection.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_region.c compositor: deprecate wlr/types/wlr_region.h 2023-11-24 15:09:31 +03:00
wlr_relative_pointer_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_screencopy_v1.c screencopy: Add some logging 2024-03-22 11:36:12 -04:00
wlr_security_context_v1.c security-context: constify lookup_client() 2024-03-18 08:18:51 +00:00
wlr_server_decoration.c Drop wl_client and user data assertions in bind handlers 2023-10-10 20:10:00 +03:00
wlr_session_lock_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_shm.c shm: add support for wl_shm version 2 2024-07-07 18:16:45 +02:00
wlr_single_pixel_buffer_v1.c single-pixel-buffer: make wl_global public 2024-03-18 08:12:53 +00:00
wlr_subcompositor.c compositor: drop wlr_surface.external_damage 2024-02-01 14:51:43 +00:00
wlr_switch.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_tablet_pad.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_tablet_tool.c input-device: unconfuse tablet naming 2024-02-29 16:09:07 +01:00
wlr_tearing_control_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_text_input_v3.c types/text-input-v3: assert on invalid _leave() and _enter() calls 2024-03-22 21:34:48 +00:00
wlr_touch.c Use struct initializers instead of memset() 2023-07-07 17:31:11 +02:00
wlr_transient_seat_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_viewporter.c viewporter: fix "has buffer" check 2024-03-24 02:20:18 +00:00
wlr_virtual_keyboard_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_virtual_pointer_v1.c pointer: use enum wl_pointer_button_state 2024-02-28 16:39:18 +00:00
wlr_xcursor_manager.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_xdg_activation_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_xdg_decoration_v1.c Define _POSIX_C_SOURCE globally 2024-02-15 15:41:12 +01:00
wlr_xdg_foreign_registry.c Use wl_signal_emit_mutable 2022-08-18 07:16:16 -04:00
wlr_xdg_foreign_v1.c xdg-foreign: clean up 2024-08-14 15:56:36 +03:00
wlr_xdg_foreign_v2.c xdg-foreign: clean up 2024-08-14 15:56:36 +03:00
wlr_xdg_output_v1.c treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical 2023-10-03 01:51:07 -04:00