In case we need to continue on with the render operation, we need to
preserve the existing state.
Reported-by: Jiri Slaby <jirislaby@gmail.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=57601
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Slight modification to the proposed API to only pass the simplified
domain tracking now performed by the kernel.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The changes tested on g45/gm45 prove to be highly unstable on 965gm,
suggesting a radical difference in the nature of the bugs between the
two generations. In theory, g4x has additional features that could be
exploited over and above gen4 which may prove interesting in the future.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
For reasons that are not apparent, if we don't composite with
source/mask for the glyph strings, there appears to be some cache
corruption. About as bizarre as the rest of gen4 idiosynacracies.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Now that we aren't flushing after every single rectangle, we can strive
for a little efficiency.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As we may trigger a flush and a retire when searching for a vertex
buffer for the new vertices, we need to be careful to decouple the
destroyed vbo in order to avoid a use-after-free when inspecting the
state.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
A few callers of kgem_bo_is_mappable operate on freed bo, and so need to
avoid the assert(bo->refcnt).
References: https://bugs.freedesktop.org/show_bug.cgi?id=47597
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If we transfer the pixmap to the GPU to use as a render source, presume
that we will not need to then touch the local copy (at least for a
while) and so return that memory to the system.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Once upon a time this was used to hide a compiler warning about a
pointer mismatch, now the compiler still warns about the cast, making
the indirect moot.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
As gen4 requires the per-rectangle vertex flush, emitting spans on the
GPU is inefficient and so we prefer to composite the mask instead.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Fixes a regression from
commit 0be1d96471
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Sep 11 21:48:24 2012 +0100
sna: Use inplace X tiling for LLC uploads
which introduced the ability to swizzle into CPU maps, but also
convinced the xorg path to the same - which for large images blows up.
Reported-by: Michael Laß <bevan@bi-co.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57031
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
CopyRegion() also needs to check for stale bo in case the pixmap
dimensions have changed size and so may cause out-of-bounds read/writes.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
If the screen has been reconfigured and the DRI client tries to swap the
old buffers (having not processed the invalidate event and retrieved the
current names), quietly drop the request. If we try to obey the request,
we will end up attaching a back buffer that is the wrong size to the
scanout...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>