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 <eric@anholt.net> Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
bc415fb1e0
commit
510c860564
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user