xf86-video-intel: 4 commits - configure.ac NEWS src/sna/sna_accel.c
Chris Wilson
ickle at kemper.freedesktop.org
Sat Feb 1 11:01:31 PST 2014
NEWS | 12 ++++++++++++
configure.ac | 2 +-
src/sna/sna_accel.c | 24 +++++++++++++-----------
3 files changed, 26 insertions(+), 12 deletions(-)
New commits:
commit 2c4b2ed558bec3b71077fb12cc4e008cccc819fa
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Feb 1 17:59:29 2014 +0000
2.99.909 snapshot
diff --git a/NEWS b/NEWS
index 83bf809..63655d3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,15 @@
+Snapshot 2.99.909 (2013-02-01)
+==============================
+Pass the brown paper bag. Ridiculously stupid bug in last minute coding.
+
+ * Add Xv support using glamor acceleration in addition to adaptors
+ provided by the UXA backend.
+
+ * Fix overeager discarding of CPU damage
+ Regression in 2.99.908 :(
+ https://bugs.freedesktop.org/show_bug.cgi?id=74327
+
+
Snapshot 2.99.908 (2013-01-31)
==============================
A couple of regressions dashed the hopes that .907 was to be the final
diff --git a/configure.ac b/configure.ac
index 4e93f95..f7a6d32 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ([2.60])
AC_INIT([xf86-video-intel],
- [2.99.908],
+ [2.99.909],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-intel])
AC_CONFIG_SRCDIR([Makefile.am])
commit 495bf89496a96eff0b2c5b6a95aa29df8d7fbc81
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Feb 1 18:57:06 2014 +0000
sna: Apply drawable offsets to partial CPU damage being replaced
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 1fbbddc..aecae51 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -2424,6 +2424,9 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
priv->cpu_bo && !priv->cpu_bo->flush &&
__kgem_bo_is_busy(&sna->kgem, priv->cpu_bo)) {
if (!region_subsumes_pixmap(region, pixmap)) {
+ if (get_drawable_deltas(drawable, pixmap, &dx, &dy))
+ RegionTranslate(region, dx, dy);
+
sna_damage_subtract(&priv->cpu_damage, region);
if (sna_pixmap_move_to_gpu(pixmap, MOVE_READ | MOVE_ASYNC_HINT)) {
sna_pixmap_free_cpu(sna, priv, false);
commit 2ba8d40bf7e4d3e8fa541c001f82aa65f26bed3a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Feb 1 18:13:04 2014 +0000
sna: Don't discard the GPU prior to using it for stashing CPU damage
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 7d219a4..1fbbddc 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -2412,30 +2412,31 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
if (sna_damage_is_all(&priv->cpu_damage,
pixmap->drawable.width,
pixmap->drawable.height)) {
+ bool discard_gpu = priv->cpu;
+
DBG(("%s: pixmap=%ld all damaged on CPU\n",
__FUNCTION__, pixmap->drawable.serialNumber));
assert(!priv->clear);
sna_damage_destroy(&priv->gpu_damage);
- if (flags & MOVE_WRITE)
- sna_pixmap_free_gpu(sna, priv);
-
if ((flags & MOVE_READ) == 0 &&
priv->cpu_bo && !priv->cpu_bo->flush &&
__kgem_bo_is_busy(&sna->kgem, priv->cpu_bo)) {
if (!region_subsumes_pixmap(region, pixmap)) {
- if (priv->gpu_bo) {
- sna_damage_subtract(&priv->cpu_damage, region);
- if (sna_pixmap_move_to_gpu(pixmap, MOVE_READ | MOVE_ASYNC_HINT)) {
- sna_pixmap_free_cpu(sna, priv, false);
- sna_damage_add(&priv->cpu_damage, region);
- }
+ sna_damage_subtract(&priv->cpu_damage, region);
+ if (sna_pixmap_move_to_gpu(pixmap, MOVE_READ | MOVE_ASYNC_HINT)) {
+ sna_pixmap_free_cpu(sna, priv, false);
+ sna_damage_add(&priv->cpu_damage, region);
+ discard_gpu = false;
}
} else
sna_pixmap_free_cpu(sna, priv, false);
}
+ if (flags & MOVE_WRITE && discard_gpu)
+ sna_pixmap_free_gpu(sna, priv);
+
sna_pixmap_unmap(pixmap, priv);
assert(priv->mapped == MAPPED_NONE);
if (pixmap->devPrivate.ptr == NULL &&
commit 534f19dc5a302828fe60d0f4747ad0dc9617e1a9
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Feb 1 17:56:58 2014 +0000
sna: Remark the region as damaged after uploading the rest to the GPU
If we upload outside of the replaced region to the GPU, we need to
remark the region of operation as dirty.
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 f91ca29..7d219a4 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -2424,17 +2424,15 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable,
if ((flags & MOVE_READ) == 0 &&
priv->cpu_bo && !priv->cpu_bo->flush &&
__kgem_bo_is_busy(&sna->kgem, priv->cpu_bo)) {
- bool free_cpu = false;
-
if (!region_subsumes_pixmap(region, pixmap)) {
if (priv->gpu_bo) {
sna_damage_subtract(&priv->cpu_damage, region);
- free_cpu = sna_pixmap_move_to_gpu(pixmap, MOVE_READ | MOVE_ASYNC_HINT);
+ if (sna_pixmap_move_to_gpu(pixmap, MOVE_READ | MOVE_ASYNC_HINT)) {
+ sna_pixmap_free_cpu(sna, priv, false);
+ sna_damage_add(&priv->cpu_damage, region);
+ }
}
} else
- free_cpu = true;
-
- if (free_cpu)
sna_pixmap_free_cpu(sna, priv, false);
}
More information about the xorg-commit
mailing list