• Alexandros Frantzis's avatar
    gl-renderer: Emit GPU rendering begin and end timeline timepoints · df0e4b96
    Alexandros Frantzis authored
    Use EGL fence sync objects to emit timepoints for the beginning and the
    end of rendering on the GPU. The timepoints are emitted asynchronously
    using the sync file fds associated with the fence sync objects. The sync
    file fds are acquired using the facilities provided by the
    EGL_ANDROID_native_fence_sync extension.
    
    The asynchronous timepoint submissions are stored in a list in
    gl_output_state until they are executed, and any pending submissions
    that remain at output destruction time are cleaned up.
    
    If timelining is inactive or the required EGL extensions are not
    present, then GPU timepoint processing and emission are skipped.
    
    Note that the GPU timestamps returned by sync files are in the
    CLOCK_MONOTONIC clock domain, and are thus compatible with the
    timeline timestamps (which also are in the CLOCK_MONOTONIC domain).
    Signed-off-by: Alexandros Frantzis's avatarAlexandros Frantzis <alexandros.frantzis@collabora.com>
    Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
    Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    df0e4b96
weston-egl-ext.h 8.47 KB