Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • mutter mutter
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,020
    • Issues 1,020
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 135
    • Merge requests 135
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOME
  • muttermutter
  • Merge requests
  • !724

Sync timelines to hardware vsync

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Daniel van Vugt requested to merge vanvugt/mutter:smoother-timelines into gnome-3-36 Aug 14, 2019
  • Overview 37
  • Commits 2
  • Pipelines 32
  • Changes 7

Previously clutter timelines advanced according to g_source_get_time. But that meant the spatial stepping of animations was visibly sensitive to any irregularities in the main loop. It also represented a time older [1] than the intended presentation time of each frame.

Now we instead use master_clock_get_next_presentation_time. This ensures we get the smoothness of hardware vsync as well as being closer to the actual presentation time.

This means, for example, backends like Xorg that move the hardware cursor independently of repaints will have their animations more closely matching the hardware cursor position. So the cursor appears to stick more closely when dragging windows or on the lock screen etc.

[1] "older" = (refresh_interval - sync_delay) = ~14ms for 60Hz

Closes: #25 (closed)

Edited Sep 18, 2019 by Daniel van Vugt
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: smoother-timelines