sna: Validate the cursor everytime for hw support

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2014-04-10 16:08:48 +01:00
parent d364a881ef
commit f94684db1a
1 changed files with 14 additions and 15 deletions

View File

@ -3533,22 +3533,21 @@ sna_use_hw_cursor(ScreenPtr screen, CursorPtr cursor)
struct sna *sna = to_sna_from_screen(screen);
/* cursors are invariant */
if (cursor == sna->cursor.ref)
return TRUE;
if (cursor != sna->cursor.ref) {
cursor->refcnt++;
if (sna->cursor.ref)
FreeCursor(sna->cursor.ref, None);
sna->cursor.ref = cursor;
sna->cursor.size = __cursor_size(cursor);
sna->cursor.serial++;
cursor->refcnt++;
if (sna->cursor.ref)
FreeCursor(sna->cursor.ref, None);
sna->cursor.ref = cursor;
sna->cursor.size = __cursor_size(cursor);
sna->cursor.serial++;
__DBG(("%s(%dx%d): ARGB?=%d, serial->%d, size->%d\n", __FUNCTION__,
cursor->bits->width,
cursor->bits->height,
cursor->bits->argb!=NULL,
sna->cursor.serial,
sna->cursor.size));
__DBG(("%s(%dx%d): ARGB?=%d, serial->%d, size->%d\n", __FUNCTION__,
cursor->bits->width,
cursor->bits->height,
cursor->bits->argb!=NULL,
sna->cursor.serial,
sna->cursor.size));
}
return sna->cursor.size <= sna->cursor.max_size;
}