fbpict.h has been an installed header since 2008, shortly after uxa
landed. This fixes compiler warnings when other headers happen to
include fbpict.h.
As we no longer user the xf86Cursor helper, we can forgo filling in stub
routines for the fake CRTC.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Sigh. A serious mixup of integer promotion rules and wraparound caused
the damage computation for small regions to be completely bogus.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
SET_MASTER and DROP_MASTER are only available to the root user. If we
are started as an ordinary user, and we are master by virtue of being
the first user of the device, never release our fd or master.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Older hardware uses physical addresses for its cursor, which are
implemented by the kernel in an incoherent fashion. Maybe with stolen
support this would be different...
Fixes regression on [845g, 945g] from
commit 25ca8f136c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu Mar 27 14:15:30 2014 +0000
sna: Support variable sized cursors
Reported-by: Knut Petersen <Knut_Petersen@t-online.de>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This help with the continuing saga of
commit 1de1104064 [2.99.911]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Feb 21 22:43:04 2014 +0000
sna: Use a hint to do whole image uploads inplace
References: https://bugs.freedesktop.org/show_bug.cgi?id=77178
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
commit 8ef81d676c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Mon Apr 7 07:59:42 2014 +0100
sna: Simplify checking for singular damage
overlooked that we were also checking for empty regions as well as
singular regions.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
OsBlockSIGIO/OsReleaseSIGIO was only introduced in xorg-server-1.13.0,
so we need a compat layer.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Fixes regresion from
commit 35b03b3fe6
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Mar 28 09:14:59 2014 +0000
sna: Virtual CRTCs are last, so break loops early
as the conflicting Zaphod detection requires on searching all potential
CRTCs without finding the match. By breaking early on the virtual CRTC,
we concluded that the setup was actually valid, but disabled.
Reported-by: Nick Bowler <nbowler@draconx.ca>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77156
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Once again, we must be careful when promoting from a region to whole
pixmap migration that we do not discard required damage.
Fixes regression from
commit 27ac9f574f [2.99.911]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu Feb 27 08:33:52 2014 +0000
sna: Avoid promoting region-to-whole migration and discarding damage
Reported-by: gedgon@gmail.com
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77063
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Instead of using a NULL type depth buffer, it is strongly suggested to
use a 1x1 16-bit depth buffer instead (with address 0).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The earlier query of cursor (simply to find out the hw size) was
replaced by an invariant determined when the cursor was first set.
However, not all uses of cursor->size were fixed.
Fixes regression from
commit f98b2e1646
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Apr 2 08:36:14 2014 +0100
sna: Prevent signal re-entrancy into cursor update routines
Reported-by: Christoph Haag <haagch.christoph@googlemail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77053
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
When dereferences priv, make sure it exists first. ShmPixmaps for
example, may not have one, nor do very small buffers.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If the composite reads entirely from within a large pixmap which is a
clear color, just replace the source with a solid.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we may need to allocate from within the cursor update, we are prone
to re-entrancy issues within malloc()/free(). To avoid these we need to
block SigIO (for pointer updates) whilst in the critical section.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The assertion was checking that the invalid condition was true, rather
than that it never happened. Oops.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If the pixmap is already partially on the GPU, and the next operation
touches the entire pixmap, promote that operation back to the whole GPU.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
sna_display.c: In function '__sna_get_cursor':
sna_display.c:3153:6: warning: assignment from incompatible pointer type [enabled by default]
src = sna->cursor.ref->bits->argb;
^
sna_display.c:3209:10: warning: comparison of distinct pointer types lacks a cast [enabled by default]
if (src != sna->cursor.ref->bits->argb)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we need to recompute them for each CRTC, we need to reset the
computation each time or else we screw up the coordinates and hide
the cursors at random.
Breakage from commit 25ca8f136c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu Mar 27 14:15:30 2014 +0000
sna: Support variable sized cursors
Reported-by: Jan Alexander Steffens <jan.steffens@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76724
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We know that all the virtual CRTCs are at the end of the CRTC array, so
when we see the first one, we can stop the processing of real CRTCs.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Search for an exact match first, before looking for a cursor we can
reuse. This should help reuse with multiple rotated screens not stealing
the others' cursor on every pass.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>