diff options
author | George Sapountzis <gsap7@yahoo.gr> | 2006-08-12 22:12:07 +0300 |
---|---|---|
committer | George Sapountzis <gsap7@yahoo.gr> | 2006-08-12 22:12:07 +0300 |
commit | 43aaed99950640c3695b3c2b91faabf00c6338a7 (patch) | |
tree | 0735716525b04472bf96c9cd9ffcca09c4e97c70 /src/atimach64exa.c | |
parent | d113f40fd97408661193895ff3aa82262f100143 (diff) |
[mach64] RENDER support (bug #6877).
RENDER accleration is disabled by default. It is strongly recommended that the
patch from bug #6772 and the 'exa-damagetrack branch' are merged in the xserver
before enabling RENDER acceleration. To enable RENDER acceleration, add the
following in xorg.conf:
Section "Device"
[...]
Option "AccelMethod" "exa"
Option "RenderAccel" "true"
EndSection
Diffstat (limited to 'src/atimach64exa.c')
-rw-r--r-- | src/atimach64exa.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/atimach64exa.c b/src/atimach64exa.c index 90cc2af9..e2b25405 100644 --- a/src/atimach64exa.c +++ b/src/atimach64exa.c @@ -441,6 +441,8 @@ Mach64DownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, return TRUE; } +#include "atimach64render.c" + /* Compute log base 2 of val. */ static __inline__ int Mach64Log2(int val) { @@ -673,6 +675,26 @@ Bool ATIMach64ExaInit(ScreenPtr pScreen) pExa->UploadToScreen = Mach64UploadToScreen; pExa->DownloadFromScreen = Mach64DownloadFromScreen; + if (pATI->RenderAccelEnabled) { + if (pATI->Chip >= ATI_CHIP_264GTPRO) { + /* 3D Rage Pro does not support NPOT textures. */ + pExa->flags |= EXA_OFFSCREEN_ALIGN_POT; + + pExa->CheckComposite = Mach64CheckComposite; + pExa->PrepareComposite = Mach64PrepareComposite; + pExa->Composite = Mach64Composite; + pExa->DoneComposite = Mach64DoneComposite; + } else { + xf86DrvMsg(pScreen->myNum, X_INFO, + "Render acceleration is not supported for ATI chips " + "earlier than the ATI 3D Rage Pro.\n"); + pATI->RenderAccelEnabled = FALSE; + } + } + + xf86DrvMsg(pScreen->myNum, X_INFO, "Render acceleration %s\n", + pATI->RenderAccelEnabled ? "enabled" : "disabled"); + if (!exaDriverInit(pScreen, pATI->pExa)) { xfree(pATI->pExa); pATI->pExa = NULL; |