xf86-video-intel: 2 commits - src/sna/gen3_render.c src/sna/gen4_render.c src/sna/gen5_render.c src/sna/gen6_render.c src/sna/gen7_render.c src/sna/sna_accel.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Jun 14 14:38:10 PDT 2013


 src/sna/gen3_render.c |    1 -
 src/sna/gen4_render.c |    1 -
 src/sna/gen5_render.c |    1 -
 src/sna/gen6_render.c |    1 -
 src/sna/gen7_render.c |    1 -
 src/sna/sna_accel.c   |    9 +++++++--
 6 files changed, 7 insertions(+), 7 deletions(-)

New commits:
commit cafa33a522ac634d465f24d0a1607516e65a0828
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Jun 13 22:51:42 2013 +0100

    sna/gen3+: Remove redundant clearing of clear hint in video playback
    
    The clear hint is correctly updated when performing the move-to-gpu and
    so it is being superfluously repeated by the callers.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index 3c30623..13a46d3 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -5533,7 +5533,6 @@ gen3_render_video(struct sna *sna,
 						  pix_xoff, pix_yoff);
 		}
 	}
-	priv->clear = false;
 
 	return true;
 }
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index addd838..e6b6d44 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -1432,7 +1432,6 @@ gen4_render_video(struct sna *sna,
 		OUT_BATCH(MI_FLUSH | MI_INHIBIT_RENDER_CACHE_FLUSH);
 	} while (1);
 
-	priv->clear = false;
 	return true;
 }
 
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index 5870c02..11b9069 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -1406,7 +1406,6 @@ gen5_render_video(struct sna *sna,
 		}
 		box++;
 	}
-	priv->clear = false;
 
 	gen4_vertex_flush(sna);
 	return true;
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index 007d2ff..5cdfec7 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -1692,7 +1692,6 @@ gen6_render_video(struct sna *sna,
 		}
 		box++;
 	}
-	priv->clear = false;
 
 	gen4_vertex_flush(sna);
 	return true;
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 20dc6d8..49a82e1 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1882,7 +1882,6 @@ gen7_render_video(struct sna *sna,
 		}
 		box++;
 	}
-	priv->clear = false;
 
 	gen4_vertex_flush(sna);
 	return true;
commit 45ca894bce73e199d679b9f147c52ada59e40ccb
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Jun 13 16:47:10 2013 +0100

    sna: Tighten a few asserts on pixmap migration
    
    Tracking to track down where the CPU hint may be set to true but the
    pixmap remain entirely damaged on the GPU.
    
    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 5d96ac5..4ec21fd 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -1783,6 +1783,7 @@ _sna_pixmap_move_to_cpu(PixmapPtr pixmap, unsigned int flags)
 	     pixmap->drawable.height,
 	     flags));
 
+	assert(flags & (MOVE_READ | MOVE_WRITE));
 	assert_pixmap_damage(pixmap);
 
 	priv = sna_pixmap(pixmap);
@@ -2061,7 +2062,8 @@ done:
 			sna_pixmap_free_gpu(sna, priv);
 		}
 	}
-	priv->cpu = (flags & MOVE_ASYNC_HINT) == 0;
+	priv->cpu = (flags & (MOVE_INPLACE_HINT | MOVE_ASYNC_HINT)) == 0;
+	assert(priv->cpu == false || !DAMAGE_IS_ALL(priv->gpu_damage));
 	assert(pixmap->devPrivate.ptr);
 	assert(pixmap->devKind);
 	assert_pixmap_damage(pixmap);
@@ -2191,6 +2193,7 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
 	if (flags & MOVE_WRITE) {
 		assert_drawable_contains_box(drawable, &region->extents);
 	}
+	assert(flags & (MOVE_WRITE | MOVE_READ));
 
 	if (box_empty(&region->extents))
 		return true;
@@ -2593,6 +2596,7 @@ done:
 
 out:
 	if (flags & MOVE_WRITE) {
+		assert(!DAMAGE_IS_ALL(priv->gpu_damage));
 		priv->source_count = SOURCE_BIAS;
 		assert(priv->gpu_bo == NULL || priv->gpu_bo->proxy == NULL);
 		assert(priv->gpu_bo || priv->gpu_damage == NULL);
@@ -2606,7 +2610,8 @@ out:
 		assert(pixmap->devPrivate.ptr == (void *)((unsigned long)priv->cpu_bo->map & ~3));
 		assert((flags & MOVE_WRITE) == 0 || !kgem_bo_is_busy(priv->cpu_bo));
 	}
-	priv->cpu = (flags & MOVE_ASYNC_HINT) == 0;
+	priv->cpu = (flags & (MOVE_INPLACE_HINT | MOVE_ASYNC_HINT)) == 0;
+	assert(priv->cpu == false || !DAMAGE_IS_ALL(priv->gpu_damage));
 	assert(pixmap->devPrivate.ptr);
 	assert(pixmap->devKind);
 	assert_pixmap_damage(pixmap);


More information about the xorg-commit mailing list