Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Explicit Sync #104

Merged
merged 1 commit into from
Mar 20, 2024
Merged

Implement Explicit Sync #104

merged 1 commit into from
Mar 20, 2024

Commits on Feb 23, 2024

  1. egl-wayland: implement linux-drm-syncobj-v1

    This implements the explicit sync linux-drm-syncobj-v1 protocol for EGL.
    
    Most of this change involves wayland-protocol handling boilerplate. The
    protocol works by allowing the creation of timelines (i.e. DRM syncobjs)
    and per-surface states. We can then specify acquire and release points
    during our surface state configuration which will tell the compositor
    when it can access the buffer or notify us when it is finished accessing
    the buffer.
    
    Sync point signaling takes place during acquire_surface_image. We choose
    our two release point values and send them to the compositor.  In the
    acquire case, the EGLSync will be created first and will be populated
    with a fence representing the GPU work. We can extract its syncfd and
    import it at the acquire point. We choose the release point during
    image acquisition, but don't actually create an EGLSync for it until
    later when the compositor has added a fence to the release point. We
    check if this has taken place after every surface commit.
    
    Separate timelines are used for the acquire and release points. Each
    stream image will have its own timeline, otherwise our signaling of
    acquire points would implicitly signal the still-pending release points.
    amshafer committed Feb 23, 2024
    Configuration menu
    Copy the full SHA
    7a996ad View commit details
    Browse the repository at this point in the history