diff options
-rw-r--r-- | src/r600_exa.c | 7 | ||||
-rw-r--r-- | src/radeon_exa_render.c | 21 |
2 files changed, 24 insertions, 4 deletions
diff --git a/src/r600_exa.c b/src/r600_exa.c index bee8f09c..9aeb8626 100644 --- a/src/r600_exa.c +++ b/src/r600_exa.c @@ -1337,7 +1337,12 @@ static Bool R600CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP } if (pMaskPicture) { - PixmapPtr pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); + PixmapPtr pMaskPixmap; + + if (!pMaskPicture->pDrawable) + RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); + + pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); if (pMaskPixmap->drawable.width >= max_tex_w || pMaskPixmap->drawable.height >= max_tex_h) { diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c index 8e98b9fd..660ec433 100644 --- a/src/radeon_exa_render.c +++ b/src/radeon_exa_render.c @@ -503,7 +503,12 @@ static Bool R100CheckComposite(int op, PicturePtr pSrcPicture, } if (pMaskPicture) { - PixmapPtr pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); + PixmapPtr pMaskPixmap; + + if (!pMaskPicture->pDrawable) + RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); + + pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); if (pMaskPixmap->drawable.width > 2047 || pMaskPixmap->drawable.height > 2047) { @@ -833,7 +838,12 @@ static Bool R200CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP } if (pMaskPicture) { - PixmapPtr pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); + PixmapPtr pMaskPixmap; + + if (!pMaskPicture->pDrawable) + RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); + + pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); if (pMaskPixmap->drawable.width > 2047 || pMaskPixmap->drawable.height > 2047) { @@ -1213,7 +1223,12 @@ static Bool R300CheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskP } if (pMaskPicture) { - PixmapPtr pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); + PixmapPtr pMaskPixmap; + + if (!pMaskPicture->pDrawable) + RADEON_FALLBACK(("Solid or gradient pictures not supported yet\n")); + + pMaskPixmap = RADEONGetDrawablePixmap(pMaskPicture->pDrawable); if (pMaskPixmap->drawable.width > max_tex_w || pMaskPixmap->drawable.height > max_tex_h) { |