summaryrefslogtreecommitdiff
path: root/src/sna/gen8_render.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sna/gen8_render.c')
-rw-r--r--src/sna/gen8_render.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c
index 9e634832..0c851c88 100644
--- a/src/sna/gen8_render.c
+++ b/src/sna/gen8_render.c
@@ -1813,6 +1813,18 @@ gen8_composite_picture(struct sna *sna,
y += dy;
channel->transform = NULL;
channel->filter = PictFilterNearest;
+
+ if (channel->repeat ||
+ (x >= 0 &&
+ y >= 0 &&
+ x + w < pixmap->drawable.width &&
+ y + h < pixmap->drawable.height)) {
+ struct sna_pixmap *priv = sna_pixmap(pixmap);
+ if (priv->clear) {
+ DBG(("%s: converting large pixmap source into solid [%08x]\n", __FUNCTION__, priv->clear_color));
+ return gen4_channel_init_solid(sna, channel, priv->clear_color);
+ }
+ }
} else
channel->transform = picture->transform;