diff --git a/src/i830_exa.c b/src/i830_exa.c index 56bc15e..57f9666 100644 --- a/src/i830_exa.c +++ b/src/i830_exa.c @@ -614,6 +614,14 @@ extern void ExaOffscreenMarkUsed(PixmapPtr); unsigned long long I830TexOffsetStart(PixmapPtr pPix) { + /* i830 and i845 don't support 32bpp XRGB textures */ + if (pPix->drawable.depth == 24 && pPix->drawable.bitsPerPixel == 32) { + I830Ptr pI830 = I830PTR(xf86Screens[pPix->drawable.pScreen->myNum]); + + if (IS_I830(pI830) || IS_845G(pI830)) + return 0; + } + exaMoveInPixmap(pPix); ExaOffscreenMarkUsed(pPix);