mutter/doc/clutter-frame-scheduling.md
Daniel van Vugt 6fae16302b doc: Update the frame scheduling diagram to include SCHEDULED_LATER
Although since all SCHEDULED* states basically have the same transitions
it's easier to show them as a single state. The mermaid diagram also won't
render correctly if there is a mix of combined and singular states. We
must use either always combined states or always singular states.

Fixes: 5b214dc2b7 ("clutter/frame-clock: Allow scheduling an update in the future")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441>
2025-02-14 17:39:09 +00:00

553 B

Clutter Frame scheduling

ClutterFrameClock state diagram.

stateDiagram
    INIT --> SCHEDULED* : first frame scheduled
    IDLE --> SCHEDULED* : next frame scheduled
    SCHEDULED* --> IDLE : frame clock inhibited or mode changed
    SCHEDULED* --> SCHEDULED* : schedule upgraded to SCHEDULED_NOW
    SCHEDULED* --> DISPATCHING : the update time has arrived
    DISPATCHING --> PENDING_PRESENTED : the update has been handed to the backend
    PENDING_PRESENTED --> IDLE : frame was either presented or aborted with nothing to draw