diff options
author | Tilman Sauerbeck <tilman@code-monkey.de> | 2007-04-15 12:41:01 +0200 |
---|---|---|
committer | Tilman Sauerbeck <tilman@code-monkey.de> | 2007-04-15 12:41:01 +0200 |
commit | 43b79af51b600e98ecac9d57aeb0d686dbc6a50e (patch) | |
tree | 12c932415c4510dd702aa492510e2d5fdceead0b /src | |
parent | 69c4ed205afbeb9ad937f079caace6cee19bd7b1 (diff) |
On G550, do A8 adds in hardware.
Diffstat (limited to 'src')
-rw-r--r-- | src/mga_exa.c | 9 |
1 files changed, 5 insertions, 4 deletions
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; |