summaryrefslogtreecommitdiff
path: root/src/sna/sna_render.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-06-24 08:58:51 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2014-06-24 10:55:02 +0100
commit1d74b2e07d125ad95b9db6c9c032e90faf2bfa60 (patch)
tree77d9bdd0aa0f8d8dd98fbb9a6c29d7b8b4410d87 /src/sna/sna_render.h
parent6e2cee27c379278b0321fd1db34ed80c439115a7 (diff)
sna: Decompose self-copy into overlapping/non-overlapping regions
We only need to stage the copy for the overlapping portion of the self-copy, for the rest we can do in a single pass. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/sna_render.h')
-rw-r--r--src/sna/sna_render.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/sna/sna_render.h b/src/sna/sna_render.h
index 52bb44e6..0637ceb2 100644
--- a/src/sna/sna_render.h
+++ b/src/sna/sna_render.h
@@ -285,6 +285,7 @@ struct sna_render {
const BoxRec *box, int n, unsigned flags);
#define COPY_LAST 0x1
#define COPY_SYNC 0x2
+#define COPY_NO_OVERLAP 0x4
bool (*copy)(struct sna *sna, uint8_t alu,
PixmapPtr src, struct kgem_bo *src_bo,
@@ -814,8 +815,9 @@ sna_render_composite_redirect_done(struct sna *sna,
bool
sna_render_copy_boxes__overlap(struct sna *sna, uint8_t alu,
- PixmapPtr src, struct kgem_bo *src_bo, int16_t src_dx, int16_t src_dy,
- PixmapPtr dst, struct kgem_bo *dst_bo, int16_t dst_dx, int16_t dst_dy,
+ PixmapPtr pixmap, struct kgem_bo *bo,
+ int16_t src_dx, int16_t src_dy,
+ int16_t dst_dx, int16_t dst_dy,
const BoxRec *box, int n, const BoxRec *extents);
bool