Commit 510c8605 authored by Eric Anholt's avatar Eric Anholt

glamor: Fix copy-like Render operations between 15 and 16 depth.

Reading and writing to 16-depth pixmaps using PICT_x1r5g5b5 ends up
failing, unless you're doing a straight copy at the same bpp where the
misinterpretation matches on both sides.

Fixes rendercheck/blend/over and renderhceck/blend/src in piglit.

Please cherry-pick this to active stable branches.
Signed-off-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
parent bc415fb1
......@@ -512,6 +512,14 @@ static int
compatible_formats(CARD8 op, PicturePtr dst, PicturePtr src)
{
if (op == PictOpSrc) {
/* We can't do direct copies between different depths at 16bpp
* because r,g,b are allocated to different bits.
*/
if (dst->pDrawable->bitsPerPixel == 16 &&
dst->pDrawable->depth != src->pDrawable->depth) {
return 0;
}
if (src->format == dst->format)
return 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment