• Daniel Vetter's avatar
    drm/i915: Clear fb_tracking.busy_bits also for synchronous flips · fdbff928
    Daniel Vetter authored
    The current/old frontbuffer might still have gpu frontbuffer rendering
    pending. But once flipped it won't have the corresponding frontbuffer
    bits any more and hence the request retire function won't ever clear
    the corresponding busy bits. The async flip tracking (with the
    flip_prepare and flip_complete functions) already does this, but
    somehow I've forgotten to do this for synchronous flips.
    
    Note that we don't track outstanding rendering of the new framebuffer
    with busy_bits since all our plane update code waits for previous
    rendering to complete before displaying a new buffer. Hence a new
    buffer will never be busy.
    
    v2: Drop the spurious inline Ville spotted.
    
    v3: Don't touch flip_bits in the synchronsou frontbuffer_flip
    function, noticed by Paulo.
    
    v4: Remove one more inline that slipped through (Paulo).
    Reported-by: default avatarPaulo Zanoni <przanoni@gmail.com>
    Cc: Paulo Zanoni <przanoni@gmail.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Testcase: igt/kms_frontbuffer_tracking/fbc-modesetfrombusy
    Tested-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    fdbff928
intel_frontbuffer.c 9.91 KB