xf86-video-intel: 2 commits - src/sna/sna_accel.c src/sna/sna_display.c
Chris Wilson
ickle at kemper.freedesktop.org
Wed Jun 18 10:47:56 PDT 2014
src/sna/sna_accel.c | 29 ++++++++++++++++++-----------
src/sna/sna_display.c | 2 +-
2 files changed, 19 insertions(+), 12 deletions(-)
New commits:
commit 273c82a574896885f9f4a78a7463cc4620803624
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Jun 18 18:47:14 2014 +0100
sna: Fix DBG compilation
Missed updaing the DBG message in
commit 83c0f034454ef0f474126a3398e5e790ac5ef842
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Jun 18 16:51:46 2014 +0100
sna: Pass desired CRTC viewport for completing single CRTC flips
References: https://bugs.freedesktop.org/show_bug.cgi?id=80157
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index f97e83e..b62fda1 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -6331,7 +6331,7 @@ fixup_shadow:
DBG(("%s: changing pitch (%d == %d) or offset (%x == %x)\n",
__FUNCTION__,
flip_bo->pitch, crtc->bo->pitch,
- crtc_offset, crtc->offset));
+ y << 16 | x, crtc->offset));
fixup_flip:
if (sna_crtc_flip(sna, crtc, flip_bo, x, y)) {
assert(flip_bo != crtc->bo);
commit 62aaf2ff4f8597067cf387865707baa00ed9a123
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Jun 18 18:41:15 2014 +0100
sna: Skip redundant copies when already cloned
References: https://bugs.freedesktop.org/show_bug.cgi?id=77436
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 a2e93c2..c021652 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -6120,18 +6120,25 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
goto fallback;
}
- /* XXX hack for firefox -- subsequent uses of src will be corrupt! */
- if (src_priv &&
- COW(src_priv->cow) == COW(dst_priv->cow) &&
- IS_COW_OWNER(dst_priv->cow)) {
- DBG(("%s: ignoring cow reference for cousin copy\n",
- __FUNCTION__));
- assert(src_priv->cpu_damage == NULL);
- assert(dst_priv->move_to_gpu == NULL);
- bo = dst_priv->gpu_bo;
- damage = NULL;
+ if (src_priv && COW(src_priv->cow) == COW(dst_priv->cow) && alu == GXcopy) {
+ if ((dx | dy) == 0) {
+ DBG(("%s: ignoring cow for no op\n",
+ __FUNCTION__));
+ return;
+ } else if (IS_COW_OWNER(dst_priv->cow)) {
+ /* XXX hack for firefox -- subsequent uses of src will be corrupt! */
+ DBG(("%s: ignoring cow reference for cousin copy\n",
+ __FUNCTION__));
+ assert(src_priv->cpu_damage == NULL);
+ assert(dst_priv->move_to_gpu == NULL);
+ bo = dst_priv->gpu_bo;
+ damage = NULL;
+ } else
+ goto discard_cow;
} else {
- unsigned hint = copy_prefer_gpu(sna, dst_priv, src_priv, region, src_dx, src_dy);
+ unsigned hint;
+discard_cow:
+ hint = copy_prefer_gpu(sna, dst_priv, src_priv, region, src_dx, src_dy);
if (replaces) {
discard_cpu_damage(sna, dst_priv);
hint |= REPLACES | IGNORE_CPU;
More information about the xorg-commit
mailing list