xorg server fbcompose bug
Petr Kobalíček
kobalicek.petr at gmail.com
Sun Oct 19 10:50:18 PDT 2008
Hi developer,
I found bug in xorg framebuffer implementation in file fbcompose.c,
function fbFetch_b8g8r8():
The body of function is:
static FASTCALL void
fbFetch_b8g8r8 (const FbBits *bits, int x, int width, CARD32 *buffer,
miIndexedPtr indexed)
{
const CARD8 *pixel = (const CARD8 *)bits + 3*x;
const CARD8 *end = pixel + 3*width;
while (pixel < end) {
CARD32 b = 0xff000000;
#if IMAGE_BYTE_ORDER == MSBFirst
b |= (*pixel++);
b |= (*pixel++ << 8);
b |= (*pixel++ << 16);
#else
b |= (*pixel++ << 16);
b |= (*pixel++ << 8);
b |= (*pixel++);
#endif
}
}
But it should be:
static FASTCALL void
fbFetch_b8g8r8 (const FbBits *bits, int x, int width, CARD32 *buffer,
miIndexedPtr indexed)
{
const CARD8 *pixel = (const CARD8 *)bits + 3*x;
const CARD8 *end = pixel + 3*width;
while (pixel < end) {
CARD32 b = 0xff000000;
#if IMAGE_BYTE_ORDER == MSBFirst
b |= (*pixel++);
b |= (*pixel++ << 8);
b |= (*pixel++ << 16);
#else
b |= (*pixel++ << 16);
b |= (*pixel++ << 8);
b |= (*pixel++);
#endif
*buffer++ = b;
}
}
This bug is also in cairo, should I contact them too or it's
synchronized (the code base is the same) ?
Cheers
- Petr Kobalicek
More information about the xorg
mailing list