• Daniel Vetter's avatar
    drm/atomic-helper: Skip vblank waits for unchanged fbs · ab58e338
    Daniel Vetter authored
    Especially with legacy cursor ioctls existing userspace assumes that
    you can pile up lots of updates in one go. The super-proper way to
    support this would be a special commit mode which overwrites the last
    update. But getting there will be quite a bit of work.
    
    Meanwhile do what pretty much all the drivers have done for the plane
    update functions: Simply skip the vblank wait for the buffer cleanup
    if the buffer is the same. Since the universal cursor plane code will
    not recreate framebuffers needlessly this allows us to not slow down
    legacy pageflip events while someone moves the cursor around.
    
    v2: Drop the async plane update hunk from a previous attempt at this
    issue.
    
    v3: Fix up kerneldoc.
    
    v4: Don't oops so badly. Reported by Jasper.
    
    Cc: Rob Clark <robdclark@gmail.com>
    Cc: "Jasper St. Pierre" <jstpierre@mecheye.net>
    Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
    Reviewed-by: default avatarJasper St. Pierre <jstpierre@mecheye.net>
    Tested-by: default avatarJasper St. Pierre <jstpierre@mecheye.net>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    ab58e338
drm_atomic_helper.c 50.5 KB