xf86-video-intel: src/sna/sna_accel.c src/sna/sna_composite.c
Chris Wilson
ickle at kemper.freedesktop.org
Sat Sep 1 02:17:01 PDT 2012
src/sna/sna_accel.c | 8 ++++++++
src/sna/sna_composite.c | 4 ++++
2 files changed, 12 insertions(+)
New commits:
commit 25c1b478a957ceb0474e7121840b7eed1ba2e140
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Sep 1 09:49:34 2012 +0100
sna: Discard cached CPU upload early when clearing with a solid fill
Otherwise we end up considering the GPU bo as a real target, causing
confusion and failed asserts.
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 090da91..7dad94b 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -4153,6 +4153,10 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
DBG(("%s: overwritting CPU damage\n", __FUNCTION__));
if (region_subsumes_damage(region, dst_priv->cpu_damage)) {
DBG(("%s: discarding existing CPU damage\n", __FUNCTION__));
+ if (dst_priv->gpu_bo && dst_priv->gpu_bo->proxy) {
+ kgem_bo_destroy(&sna->kgem, dst_priv->gpu_bo);
+ dst_priv->gpu_bo = NULL;
+ }
sna_damage_destroy(&dst_priv->cpu_damage);
list_del(&dst_priv->list);
}
@@ -11580,6 +11584,10 @@ sna_poly_fill_rect(DrawablePtr draw, GCPtr gc, int n, xRectangle *rect)
region_is_singular(gc->pCompositeClip)) {
if (region_subsumes_damage(®ion, priv->cpu_damage)) {
DBG(("%s: discarding existing CPU damage\n", __FUNCTION__));
+ if (priv->gpu_bo && priv->gpu_bo->proxy) {
+ kgem_bo_destroy(&sna->kgem, priv->gpu_bo);
+ priv->gpu_bo = NULL;
+ }
sna_damage_destroy(&priv->cpu_damage);
list_del(&priv->list);
}
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index d47479b..65dae9c 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
@@ -829,6 +829,10 @@ sna_composite_rectangles(CARD8 op,
if (priv->cpu_damage &&
region_subsumes_damage(®ion, priv->cpu_damage)) {
DBG(("%s: discarding existing CPU damage\n", __FUNCTION__));
+ if (priv->gpu_bo && priv->gpu_bo->proxy) {
+ kgem_bo_destroy(&sna->kgem, priv->gpu_bo);
+ priv->gpu_bo = NULL;
+ }
sna_damage_destroy(&priv->cpu_damage);
list_del(&priv->list);
}
More information about the xorg-commit
mailing list