From 43b79af51b600e98ecac9d57aeb0d686dbc6a50e Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Sun, 15 Apr 2007 12:41:01 +0200 Subject: On G550, do A8 adds in hardware. --- src/mga_exa.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/mga_exa.c b/src/mga_exa.c index 6c39f97..066215f 100644 --- a/src/mga_exa.c +++ b/src/mga_exa.c @@ -350,6 +350,8 @@ static Bool mgaCheckComposite(int op, PicturePtr pSrcPict, PicturePtr pMaskPict, PicturePtr pDstPict) { + MGAPtr pMga = xf86Screens[pSrcPict->pDrawable->pScreen->myNum]->driverPrivate; + if (op >= sizeof(mgaBlendOp) / sizeof(mgaBlendOp[0])) { DEBUG_MSG(("unsupported op %x\n", op)); return FALSE; @@ -373,10 +375,9 @@ mgaCheckComposite(int op, PicturePtr pSrcPict, PicturePtr pMaskPict, return FALSE; } - /* FIXME - * Doing this operation in hardware is broken atm :/ - */ - if (op == PictOpAdd && pSrcPict->format == PICT_a8 && + /* Only the G550 can perform Add on A8 textures, it seems. */ + if (pMga->Chipset != PCI_CHIP_MGAG550 && + op == PictOpAdd && pSrcPict->format == PICT_a8 && pDstPict->format == PICT_a8) return FALSE; -- cgit v1.2.3