summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/sna/sna_accel.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 44b87cde..c8d40881 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -4807,8 +4807,10 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
hint |= IGNORE_CPU;
/* XXX hack for firefox -- subsequent uses of src will be corrupt! */
- if (src_priv && src_priv->cow && src_priv->gpu_bo == dst_priv->gpu_bo) {
- DBG(("%s: discarding cow reference for cousin copy\n",
+ 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);
bo = dst_priv->gpu_bo;