Skip to content
Snippets Groups Projects

Draft: Add DRI3/Present protocol for explicit synchronization

Open Qiang Yu requested to merge yuq825/xorgproto:topic/syncobj into master
3 unresolved threads

Hi, just send out this rough change to illustrate a way to explicit sync. Implementing it require a bunch of work, so I need communities' feedback at the begging to make sure it's the right way.

The key idea is using timeline syncobj as the wait and idle fence of present protocol. The reason to use timeline syncobj instead of sync_file is:

  1. it's GPU driver friendly, as most GPU use syncobj for command submission
  2. light weight, send FD once then use raw number afterwards
  3. may be required by some GPU which support user space command stream synchronization

Some guys (like @jekstrand) also mentioned similar way before, so I'm just the one who plan to implement it for X11 world.

Any feedback is welcome, thanks.

CC: @ajax @daenzer @daniels @airlied @danvet

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
39 39
40 40 2. Data Types
41 41
42 DRI3SYNCOBJ { XID }
43
44 Defines a unique object for client and server synchronization.
45 On Linux, it's based on timeline DRM syncobj.
  • 386
    387 Create an X11 object used to refer to a synchronization context.
    388 Combined with a sequence number, it can refer to any task fence
    389 in this context.
    390
    391 ┌───
    392 DRI3FDFromSyncobj
    393 drawable: DRAWABLE
    394 syncobj: DRI3SYNCOBJ
    395
    396 fd: FD
    397 └───
    398 Errors: IDchoice, Drawable, Match
    399
    400 Given a DRI3 Syncobj, get a file descriptor from server which
    401 can be converted to back implementation.
    Please register or sign in to reply
    Loading