Draft: Add DRI3/Present protocol for explicit synchronization
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:
- it's GPU driver friendly, as most GPU use syncobj for command submission
- light weight, send FD once then use raw number afterwards
- 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.
Merge request reports
Activity
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.