diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-06-24 13:32:45 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-06-24 13:35:22 +0100 |
commit | 471115a9806162bf0cafe27947f49d94fdd63d87 (patch) | |
tree | ed2b4d3632b689d419f96e9c26039ed97f71bf0a /src/sna/gen6_render.c | |
parent | c3b1a0d7046a83b6daec03e5a562116e3adf3c71 (diff) |
sna: Also allow BLT copies to discard the alpha channel
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/gen6_render.c')
-rw-r--r-- | src/sna/gen6_render.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c index b6d99736..2f0879e7 100644 --- a/src/sna/gen6_render.c +++ b/src/sna/gen6_render.c @@ -2289,7 +2289,7 @@ gen6_render_copy_boxes(struct sna *sna, uint8_t alu, struct sna_composite_op tmp; #if NO_COPY_BOXES - if (src->drawable.depth != dst->drawable.depth) + if (!sna_blt_compare_depth(&src->drawable, &dst->drawable)) return FALSE; return sna_blt_copy_boxes(sna, alu, @@ -2304,7 +2304,7 @@ gen6_render_copy_boxes(struct sna *sna, uint8_t alu, src_bo == dst_bo)); if (sna->kgem.mode == KGEM_BLT && - src->drawable.depth == dst->drawable.depth && + sna_blt_compare_depth(&src->drawable, &dst->drawable) && sna_blt_copy_boxes(sna, alu, src_bo, src_dx, src_dy, dst_bo, dst_dx, dst_dy, @@ -2315,7 +2315,7 @@ gen6_render_copy_boxes(struct sna *sna, uint8_t alu, if (!(alu == GXcopy || alu == GXclear) || src_bo == dst_bo || src->drawable.width > 8192 || src->drawable.height > 8192 || dst->drawable.width > 8192 || dst->drawable.height > 8192) { - if (src->drawable.depth != dst->drawable.depth) + if (!sna_blt_compare_depth(&src->drawable, &dst->drawable)) return FALSE; return sna_blt_copy_boxes(sna, alu, @@ -2444,7 +2444,7 @@ gen6_render_copy(struct sna *sna, uint8_t alu, struct sna_copy_op *op) { #if NO_COPY - if (src->drawable.depth != dst->drawable.depth) + if (!sna_blt_compare_depth(&src->drawable, &dst->drawable)) return FALSE; return sna_blt_copy(sna, alu, @@ -2459,7 +2459,7 @@ gen6_render_copy(struct sna *sna, uint8_t alu, dst->drawable.width, dst->drawable.height)); if (sna->kgem.mode == KGEM_BLT && - src->drawable.depth == dst->drawable.depth && + sna_blt_compare_depth(&src->drawable, &dst->drawable) && sna_blt_copy(sna, alu, src_bo, dst_bo, dst->drawable.bitsPerPixel, @@ -2469,7 +2469,7 @@ gen6_render_copy(struct sna *sna, uint8_t alu, if (!(alu == GXcopy || alu == GXclear) || src_bo == dst_bo || src->drawable.width > 8192 || src->drawable.height > 8192 || dst->drawable.width > 8192 || dst->drawable.height > 8192) { - if (src->drawable.depth != dst->drawable.depth) + if (!sna_blt_compare_depth(&src->drawable, &dst->drawable)) return FALSE; return sna_blt_copy(sna, alu, src_bo, dst_bo, |