• John Keeping's avatar
    drm/rockchip: don't wait for vblank if fb hasn't changed · f2227f46
    John Keeping authored
    As commented in drm_atomic_helper_wait_for_vblanks(), userspace relies
    on cursor ioctls being unsynced.  Converting the rockchip driver to
    atomic has significantly impacted cursor performance by making every
    cursor update wait for vblank.
    
    By skipping the vblank sync when the framebuffer has not changed (as is
    done in drm_atomic_helper_wait_for_vblanks()) we can avoid this for the
    common case of moving the cursor and only need to delay the cursor ioctl
    when the cursor icon changes.
    
    We cannot add the check on legacy_cursor_update since that results in
    the cursor bo being unreferenced while the hardware may still be reading
    it.  Fully supporting unsynced cursor updates is left for the future
    when the atomic helper framework supports async updates.
    Signed-off-by: default avatarJohn Keeping <john@metanate.com>
    Tested-by: default avatarHeiko Stuebner <heiko@sntech.de>
    f2227f46
rockchip_drm_fb.c 8.42 KB