xf86-video-intel: src/sna/sna_accel.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Jun 13 22:53:23 PDT 2014
src/sna/sna_accel.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
New commits:
commit b27837d5372facde0f9f69eb8df664d2798f0911
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Jun 14 06:51:34 2014 +0100
sna: Fix assertions for discarding upload caches
The upload caches are special, along with having a bo->proxy, they also
claim to be completely damaged on both the GPU and CPU. Allow that to
pass through when discarding the proxy.
Reported-by: Nick Bowler <nbowler at draconx.ca>
Bugzilla; https://bugs.freedesktop.org/show_bug.cgi?id=79992
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index ce04ca0..930c40a 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -2090,7 +2090,7 @@ _sna_pixmap_move_to_cpu(PixmapPtr pixmap, unsigned int flags)
if (kgem_bo_discard_cache(priv->gpu_bo, flags & MOVE_WRITE)) {
DBG(("%s: discarding cached upload buffer\n", __FUNCTION__));
assert(DAMAGE_IS_ALL(priv->cpu_damage));
- assert(priv->gpu_damage == NULL);
+ assert(priv->gpu_damage == NULL || DAMAGE_IS_ALL(priv->gpu_damage)); /* magical upload buffer */
assert(!priv->pinned);
assert(!priv->mapped);
kgem_bo_destroy(&sna->kgem, priv->gpu_bo);
@@ -2500,7 +2500,7 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
if (kgem_bo_discard_cache(priv->gpu_bo, flags & MOVE_WRITE)) {
DBG(("%s: discarding cached upload buffer\n", __FUNCTION__));
assert(DAMAGE_IS_ALL(priv->cpu_damage));
- assert(priv->gpu_damage == NULL);
+ assert(priv->gpu_damage == NULL || DAMAGE_IS_ALL(priv->gpu_damage)); /* magical upload buffer */
assert(!priv->pinned);
assert(!priv->mapped);
kgem_bo_destroy(&sna->kgem, priv->gpu_bo);
@@ -3212,7 +3212,7 @@ sna_pixmap_move_area_to_gpu(PixmapPtr pixmap, const BoxRec *box, unsigned int fl
if (kgem_bo_discard_cache(priv->gpu_bo, flags & (MOVE_WRITE | __MOVE_FORCE))) {
DBG(("%s: discarding cached upload buffer\n", __FUNCTION__));
assert(DAMAGE_IS_ALL(priv->cpu_damage));
- assert(priv->gpu_damage == NULL);
+ assert(priv->gpu_damage == NULL || DAMAGE_IS_ALL(priv->gpu_damage)); /* magical upload buffer */
assert(!priv->pinned);
assert(!priv->mapped);
kgem_bo_destroy(&sna->kgem, priv->gpu_bo);
@@ -3455,7 +3455,7 @@ sna_drawable_use_bo(DrawablePtr drawable, unsigned flags, const BoxRec *box,
if (kgem_bo_discard_cache(priv->gpu_bo, true)) {
DBG(("%s: cached upload proxy, discard and revert to GPU\n", __FUNCTION__));
assert(DAMAGE_IS_ALL(priv->cpu_damage));
- assert(priv->gpu_damage == NULL);
+ assert(priv->gpu_damage == NULL || DAMAGE_IS_ALL(priv->gpu_damage)); /* magical upload buffer */
assert(!priv->pinned);
assert(!priv->mapped);
kgem_bo_destroy(&to_sna_from_pixmap(pixmap)->kgem,
@@ -3951,7 +3951,7 @@ sna_pixmap_move_to_gpu(PixmapPtr pixmap, unsigned flags)
if (kgem_bo_discard_cache(priv->gpu_bo, flags & (MOVE_WRITE | __MOVE_FORCE))) {
DBG(("%s: discarding cached upload buffer\n", __FUNCTION__));
assert(DAMAGE_IS_ALL(priv->cpu_damage));
- assert(priv->gpu_damage == NULL);
+ assert(priv->gpu_damage == NULL || DAMAGE_IS_ALL(priv->gpu_damage)); /* magical upload buffer */
assert(!priv->pinned);
assert(!priv->mapped);
kgem_bo_destroy(&sna->kgem, priv->gpu_bo);
@@ -4537,7 +4537,7 @@ try_upload__inplace(PixmapPtr pixmap, RegionRec *region,
if (kgem_bo_discard_cache(priv->gpu_bo, true)) {
DBG(("%s: discarding cached upload buffer\n", __FUNCTION__));
assert(DAMAGE_IS_ALL(priv->cpu_damage));
- assert(priv->gpu_damage == NULL);
+ assert(priv->gpu_damage == NULL || DAMAGE_IS_ALL(priv->gpu_damage)); /* magical upload buffer */
assert(!priv->pinned);
assert(!priv->mapped);
kgem_bo_destroy(&sna->kgem, priv->gpu_bo);
@@ -5996,7 +5996,7 @@ static void discard_cpu_damage(struct sna *sna, struct sna_pixmap *priv)
if (kgem_bo_discard_cache(priv->gpu_bo, true)) {
DBG(("%s: discarding cached upload buffer\n", __FUNCTION__));
assert(DAMAGE_IS_ALL(priv->cpu_damage));
- assert(priv->gpu_damage == NULL);
+ assert(priv->gpu_damage == NULL || DAMAGE_IS_ALL(priv->gpu_damage)); /* magical upload buffer */
assert(!priv->pinned);
assert(!priv->mapped);
kgem_bo_destroy(&sna->kgem, priv->gpu_bo);
More information about the xorg-commit
mailing list