diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2015-02-09 10:32:48 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2015-02-09 10:38:50 +0000 |
commit | f7f68d50797f0a5e6a3c7f931c827845464acd3f (patch) | |
tree | e1dea895363efdf7e90f89b9afcbb470f16dbf0c /src/sna/gen8_render.c | |
parent | 733a88bda7a654473ffc5961d08ac246ca12a28b (diff) |
sna: Convert pixel values into ARGB values for render operations
When converting from a Pixmap into a Solid, we need to remember to
convert from the stored pixel format into the a8r8g8b8 used by the solid
fill.
This was exposed by
commit aef2f99d051dfa37717e5d6d6de9b548d706a520
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Feb 3 21:31:16 2015 +0000
sna: Convert CompositeRectangles ADD white to SRC white
but is a regression from
commit 31a4c7bc13c5f4560482b450b9ee4788a58930cd [2.99.912]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Apr 4 10:46:48 2014 +0100
sna/gen2+: Replace composite sources with solids where possible
Reported-by: andrew@atomspring.com
Reported-by: Matti Hämäläinen <ccr@tnsp.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89030
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/gen8_render.c')
-rw-r--r-- | src/sna/gen8_render.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c index 8a8837b8..5f260883 100644 --- a/src/sna/gen8_render.c +++ b/src/sna/gen8_render.c @@ -1876,12 +1876,12 @@ gen8_composite_picture(struct sna *sna, if (channel->repeat || (x >= 0 && y >= 0 && - x + w < pixmap->drawable.width && - y + h < pixmap->drawable.height)) { + x + w <= pixmap->drawable.width && + y + h <= pixmap->drawable.height)) { struct sna_pixmap *priv = sna_pixmap(pixmap); if (priv && 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); + return gen4_channel_init_solid(sna, channel, solid_color(picture->format, priv->clear_color)); } } } else |