xserver/present
Sultan Alsawaf 9108a2bf55 present: add awareness for drivers with TearFree
When a driver uses TearFree to flip all frames synchronized to the vblank
interval, Present has no idea and still assumes that each presentation
occurs immediately upon copying its damages to the primary scanout. This
faulty assumption breaks presentation timestamping, potentially leading to
A/V de-synchronization and dropped frames.

Present needs to have some awareness of a driver using TearFree so that it
can know when each presentation actually becomes visible on the screen.

Teach Present about drivers using TearFree by expanding PresentFlipReason
to allow drivers to export some contextual info about TearFree when Present
cannot page-flip directly anyway.

PRESENT_FLIP_REASON_DRIVER_TEARFREE indicates that a driver has TearFree
enabled but doesn't have a TearFree flip currently pending.

PRESENT_FLIP_REASON_DRIVER_TEARFREE_FLIPPING indicates that a driver has a
TearFree flip currently pending.

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
2022-12-19 23:56:27 -08:00
..
meson.build present: Move present_wnmd.c contents to hw/xwayland/xwayland-present.c 2021-07-09 16:11:22 +02:00
present.c present: fallback get_crtc to return crtc belonging to screen with present extension 2021-07-20 08:10:46 +02:00
present.h present: add awareness for drivers with TearFree 2022-12-19 23:56:27 -08:00
present_event.c present: Include dix-config.h instead of xorg-config.h 2020-09-15 11:41:34 +02:00
present_execute.c present: Include dix-config.h instead of xorg-config.h 2020-09-15 11:41:34 +02:00
present_fake.c Don't hardcode fps for fake screen 2021-07-29 08:09:00 +00:00
present_fence.c present: Include dix-config.h instead of xorg-config.h 2020-09-15 11:41:34 +02:00
present_notify.c present: Include dix-config.h instead of xorg-config.h 2020-09-15 11:41:34 +02:00
present_priv.h present: Drop flip_idler member from present_vblank_rec 2021-07-09 16:20:56 +02:00
present_request.c present: Include dix-config.h instead of xorg-config.h 2020-09-15 11:41:34 +02:00
present_scmd.c present: add awareness for drivers with TearFree 2022-12-19 23:56:27 -08:00
present_screen.c present: Move present_wnmd.c contents to hw/xwayland/xwayland-present.c 2021-07-09 16:11:22 +02:00
present_vblank.c present: Drop flip_idler member from present_vblank_rec 2021-07-09 16:20:56 +02:00
presentext.h present: Add Present extension 2013-10-31 16:59:18 -07:00