• Daniel Vetter's avatar
    drm/i915: Tighting frontbuffer tracking around flips · 11c9b6c6
    Daniel Vetter authored
    So I think I've spotted a small gap in the frontbuffer tracking
    while discussing the logic with Paulo on irc:
    
    1. Userspace schedules gpu rendering to the current frontbuffer.
    This gets tracked in dev_priv->fb_tracking.busy_bits.
    
    2. We pageflip a fully rendered buffer before the frontbuffer
    rendering completes.
    
    3. The request retiring will never clear busy_bits (since at retire
    time the old frontbuffer won't have obj->frontbuffer_bits set), so
    these bits now are stuck until someone again does a bit of frontbuffer
    tracking.
    
    If we clear stale busy_bits in flip_prepare this gap is closed.
    Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    11c9b6c6
intel_frontbuffer.c 9.4 KB