Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • wlroots wlroots
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 345
    • Issues 345
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 138
    • Merge requests 138
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.

  • wlrootswlroots
  • wlrootswlroots
  • Merge requests
  • !3282

Add explicit synchronization, with timelines

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Simon Ser requested to merge github/fork/emersion/explicit-sync-timeline into master Oct 20, 2021
  • Overview 4
  • Commits 11
  • Pipelines 7
  • Changes 22

This PR implements explicit synchronization. Unlike previous attempts, it uses a timeline abstraction based on drm_syncobj like Vulkan.

To inter-operate with other APIs (KMS, EGL, linux-explicit-synchronization-v1), the timeline points can be converted from/to sync_file FDs.

Test with: build/examples/explicit-sync -s weston-simple-dmabuf-egl. Use WAYLAND_DEBUG=server to check that fences are exchanged. To test the DMA-BUF sync_file extraction, use weston-simple-egl as test client (requires kernel patch).

TODO:

  • Write an example compositor
  • Extract sync_file from DMA-BUF when client doesn't support linux-explicit-synchronization-v1
  • Add wlr_texture upload synchronization
  • Figure out if this API is okay for Vulkan
  • Detect support in backends and renderers
  • Add support for EGL_EXT_image_implicit_sync_control (Mesa support still missing, but let's create a good excuse for them to add it)
  • Add support for cached state to linux-explicit-synchronization-v1
  • Documentation
  • Sanity checks (e.g. in wlr_output_commit)
  • Consider ref'counting wlr_render_timeline
  • Output cursors let's wait until output layers for this

Previous work:

  • https://github.com/swaywm/wlroots/pull/2070
  • https://github.com/swaywm/wlroots/pull/1685

Future work:

  • Multi-GPU support in the DRM backend
  • Wayland backend support
  • Vulkan renderer support
Edited May 27, 2022 by Simon Ser
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/emersion/explicit-sync-timeline