diff options
author | Alex Deucher <agd5f@yahoo.com> | 2006-05-10 02:58:56 +0000 |
---|---|---|
committer | Alex Deucher <agd5f@yahoo.com> | 2006-05-10 02:58:56 +0000 |
commit | 03bb33088d5c905d1c2cf764ba3894405670b9f4 (patch) | |
tree | 3655ae234722c0cb3506fdecd875c796e63c0e39 /src/savage_exa.c | |
parent | 6d688c993ec7baf8f00df59764dd3e04bab24e09 (diff) |
- add AccelMethod to savage.man
- fix bug 6847
- add memcpy based DFS
Diffstat (limited to 'src/savage_exa.c')
-rw-r--r-- | src/savage_exa.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/savage_exa.c b/src/savage_exa.c index 1cb2711..942fe86 100644 --- a/src/savage_exa.c +++ b/src/savage_exa.c @@ -45,7 +45,7 @@ SavageDoneCopy(PixmapPtr pDstPixmap); Bool SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int src_pitch); -#if 0 +#if 1 Bool SavageDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int dst_pitch); #endif @@ -153,8 +153,7 @@ SavageEXAInit(ScreenPtr pScreen) ((pScrn->virtualX+31)/32)*((pScrn->virtualY+15)/16) * 2048; } } else { - psav->EXADriverPtr->offScreenBase = - ((pScrn->virtualY * psav->lDelta + SAVAGE_BUFFER_ALIGN) & ~SAVAGE_BUFFER_ALIGN); + psav->EXADriverPtr->offScreenBase = pScrn->virtualY * psav->lDelta; } if (psav->EXADriverPtr->memorySize > psav->EXADriverPtr->offScreenBase) { @@ -201,8 +200,8 @@ SavageEXAInit(ScreenPtr pScreen) /* host data blit */ psav->EXADriverPtr->UploadToScreen = SavageUploadToScreen; #endif -#if 0 - psav->EXADriverPtr->accel.DownloadFromScreen = SavageDownloadFromScreen; +#if 1 + psav->EXADriverPtr->DownloadFromScreen = SavageDownloadFromScreen; #endif if(!exaDriverInit(pScreen, psav->EXADriverPtr)) { @@ -456,17 +455,18 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int return TRUE; } -#if 0 +#if 1 Bool SavageDownloadFromScreen(PixmapPtr pSrc, int x, int y, int w, int h, char *dst, int dst_pitch) { ScrnInfoPtr pScrn = xf86Screens[pSrc->drawable.pScreen->myNum]; - unsigned char *src; + unsigned char *src = pSrc->devPrivate.ptr; int src_pitch = exaGetPixmapPitch(pSrc); int bpp = pSrc->drawable.bitsPerPixel; + exaWaitSync(pSrc->drawable.pScreen); + /* do the copy */ - src = pSrc->devPrivate.ptr; src += (x * bpp / 8) + (y * src_pitch); w *= bpp / 8; |