• Paulo Zanoni's avatar
    drm/i915: fix FBC frontbuffer tracking flushing code · 6f4551fe
    Paulo Zanoni authored
    Due to the way busy_bits was handled, we were not doing any flushes if
    we didn't previously get an invalidate. Since it's possible to get
    flushes without an invalidate first, remove the busy_bits early
    return.
    
    So now that we don't have the busy_bits guard anymore we'll need the
    origin check for the GTT tracking (we were not doing anything on GTT
    flushes due to the GTT check at invalidate()).
    
    As a last detail, since we can get multiple consecutive flushes,
    disable FBC before updating it, otherwise intel_fbc_update() will just
    keep FBC enabled instead of restarting it.
    
    Notice that this does not fix any of the current IGT tests due to the
    fact that we still have a few intel_fbc() calls at points where we
    also have the frontbuffer tracking calls: we didn't fully convert to
    frontbuffer tracking yet. Once we remove those calls and start relying
    only on the frontbuffer tracking infrastructure we'll need this patch.
    Signed-off-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
    Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    6f4551fe
intel_frontbuffer.c 8.8 KB