• Lyude Paul's avatar
    drm/nouveau/kms/nv50-: Correct size checks for cursors · c0a808b0
    Lyude Paul authored
    
    
    Found this while trying to make some changes to the kms_cursor_crc test.
    curs507a_acquire checks that the width and height of the cursor framebuffer
    are equal (asyw->image.{w,h}). This isn't entirely correct though, as the
    height of the cursor can be larger than the size of the cursor, as long as
    the width is the same as the cursor size and there's no framebuffer offset.
    
    Note that I'm not entirely sure why this wasn't previously breaking
    kms_cursor_crc tests - they all set up cursors with the height being one
    pixel larger than the actual size of the cursor. But this seems to fix
    things, and the code before was definitely incorrect - so it's not really
    worth looking into further imho.
    
    Changes since v1:
    * Don't use crtc_w everywhere for determining cursor layout, just use fb
      size again
    * Change check so that we only check that the w/h of the cursor plane is
      the same, the width of the scanout surface is the same as the framebuffer
      width, and that there's no offset being used for the cursor surface.
    Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
    Cc: Martin Peres <martin.peres@mupuf.org>
    Cc: Jeremy Cline <jcline@redhat.com>
    Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
    Reviewed-by: default avatarKarol Herbst <kherbst@redhat.com>
    Signed-off-by: default avatarKarol Herbst <kherbst@redhat.com>
    Link: https://gitlab.freedesktop.org/drm/nouveau/-/merge_requests/10
    c0a808b0
curs507a.c 5.1 KB