1
0
Fork 0
mutter-performance-source/src
Michel Dänzer e3bbee2630
kms/impl-device: Track dispatch duration in crtc_frame_deadline_dispatch
And take it into account in meta_kms_crtc_get_deadline_evasion.

This uses the same fundamental approach as clutter frame clock scheduling:

Measure the deadline timer dispatch duration, keep track of the longest
duration, and set the timer to fire such that the longest measured
dispatch duration would result in it completing shortly before start of
vblank.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3612

v2:
* Move DEADLINE_EVASION_CONSTANT_US addition from
  meta_kms_crtc_determine_deadline to meta_kms_crtc_get_deadline_evasion.
* Calculate how long before start of vblank dispatch completed for
  debug output in crtc_frame_deadline_dispatch.
* Shorten over-long lines in crtc_frame_deadline_dispatch.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3934>
Signed-off-by: Mingi Sung <sungmg@saltyming.net>
(cherry picked from commit 88e7f353)
2024-09-15 13:58:58 +09:00
..
backends kms/impl-device: Track dispatch duration in crtc_frame_deadline_dispatch 2024-09-15 13:58:58 +09:00
common common/cogl-drm-formats: Split out format to string helper 2024-04-16 21:05:09 +00:00
compositor compositor: Mark window drag actor invisible 2024-09-14 21:21:59 +02:00
core Add debug topic "kms-deadline" 2024-09-15 13:58:58 +09:00
frames Revert "frames: Always initialize _MUTTER_FRAME_EXTENTS to zero" 2024-03-01 10:54:32 +01:00
meta Add debug topic "kms-deadline" 2024-09-15 13:58:58 +09:00
tests renderer-view/native: Update deadline evasion each frame 2024-09-15 13:58:57 +09:00
wayland wayland: Use the tool's current_tablet device instead of caching it 2024-09-14 21:26:54 +02:00
x11 display: Move X11 initial focus handling to MetaX11Display 2024-08-04 15:03:58 +00:00
meson.build common/cogl-drm-formats: Split out format to string helper 2024-04-16 21:05:09 +00:00
meta-private-enum-types.c.in build: Add missing include 2022-08-10 20:28:40 +02:00
meta-private-enum-types.h.in cleanup: Switch to pragma once 2023-08-07 22:24:36 +00:00