xf86-video-intel: 3 commits - src/sna/sna_display.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Mar 28 02:02:13 PDT 2014
src/sna/sna_display.c | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
New commits:
commit 929ac66558be96a039eadd8604d444598259a0aa
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Mar 28 08:48:06 2014 +0000
sna: Cursors are invariant
Once created, a Cursor has a fixed size and content, so avoid upload
unnecessarily.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 8c9f184..b850a09 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3435,6 +3435,10 @@ 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;
+
cursor->refcnt++;
if (sna->cursor.ref)
FreeCursor(sna->cursor.ref, None);
commit 26cc3cec982d316b8fe1700eae885ae2767c0110
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Mar 28 08:40:47 2014 +0000
sna: drmGetCap is too recent for our supported versions of libdrm
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 8b09991..8c9f184 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3454,19 +3454,25 @@ sna_use_hw_cursor(ScreenPtr screen, CursorPtr cursor)
static void
sna_cursor_pre_init(struct sna *sna)
{
- uint64_t value;
+ struct local_get_cap {
+ uint64_t name;
+ uint64_t value;
+ } cap;
-#define DRM_CAP_CURSOR_WIDTH 8
-#define DRM_CAP_CURSOR_HEIGHT 9
+#define LOCAL_IOCTL_GET_CAP DRM_IOWR(0x0c, struct local_get_cap)
+#define DRM_CAP_CURSOR_WIDTH 8
+#define DRM_CAP_CURSOR_HEIGHT 9
sna->cursor.max_width = SNA_CURSOR_X;
sna->cursor.max_height = SNA_CURSOR_Y;
- if (drmGetCap(sna->kgem.fd, DRM_CAP_CURSOR_WIDTH, &value) == 0)
- sna->cursor.max_width = value;
+ cap.name = DRM_CAP_CURSOR_WIDTH;
+ if (drmIoctl(sna->kgem.fd, LOCAL_IOCTL_GET_CAP, &cap) == 0)
+ sna->cursor.max_width = cap.value;
- if (drmGetCap(sna->kgem.fd, DRM_CAP_CURSOR_HEIGHT, &value) == 0)
- sna->cursor.max_height = value;
+ cap.name = DRM_CAP_CURSOR_HEIGHT;
+ if (drmIoctl(sna->kgem.fd, LOCAL_IOCTL_GET_CAP, &cap) == 0)
+ sna->cursor.max_height = cap.value;
xf86DrvMsg(sna->scrn->scrnIndex, X_PROBED,
"Using a maximum size of %dx%d for hardware cursors\n",
commit 78805163c5f8a40a649c973ab2a08b682879f16d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Mar 28 08:45:39 2014 +0000
sna: RefCursor is too recent
Replace RefCursor with the simple refcnt manipulation for compilation
against older stacks.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 0eac267..8b09991 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -3435,7 +3435,7 @@ sna_use_hw_cursor(ScreenPtr screen, CursorPtr cursor)
{
struct sna *sna = to_sna_from_screen(screen);
- cursor = RefCursor(cursor);
+ cursor->refcnt++;
if (sna->cursor.ref)
FreeCursor(sna->cursor.ref, None);
sna->cursor.ref = cursor;
More information about the xorg-commit
mailing list