diff options
author | James Simmons <jsimmons@infradead.org> | 2011-09-03 12:17:44 +0000 |
---|---|---|
committer | James Simmons <jsimmons@infradead.org> | 2011-09-03 12:17:44 +0000 |
commit | 67053cee4ad4ded444170951394e8691ec9edea1 (patch) | |
tree | 219cd1ff0544bea134d11dd0290a524acc21ad1a /src/via_ums.c | |
parent | 446760cf318e2bbf2b3ad156b4eb6faace2e7070 (diff) |
Move some accel handling code to the UMS section since this will change with TTM handling
Diffstat (limited to 'src/via_ums.c')
-rw-r--r-- | src/via_ums.c | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/src/via_ums.c b/src/via_ums.c index 0b5fd7d..44bce2c 100644 --- a/src/via_ums.c +++ b/src/via_ums.c @@ -145,23 +145,39 @@ UMSAccelSetup(ScrnInfoPtr pScrn) } #endif - if (pVia->NoAccel) { - memset(pVia->FBBase, 0x00, pVia->videoRambytes); - } else { - viaFinishInitAccel(pScreen); + if (pVia->NoAccel) { + memset(pVia->FBBase, 0x00, pVia->videoRambytes); + + /* + * This is only for Xv in Noaccel path, and since Xv is in some + * sense accelerated, it might be a better idea to disable it + * altogether. + */ + BoxRec AvailFBArea; + + AvailFBArea.x1 = 0; + AvailFBArea.y1 = 0; + AvailFBArea.x2 = pScrn->displayWidth; + AvailFBArea.y2 = pScrn->virtualY + 1; + pVia->FBFreeStart = (AvailFBArea.y2 + 1) * pVia->Bpl; + xf86InitFBManager(pScreen, &AvailFBArea); + VIAInitLinear(pScreen); + pVia->driSize = (pVia->FBFreeEnd - pVia->FBFreeStart - pVia->Bpl); + + } else { + viaFinishInitAccel(pScreen); #ifdef XF86DRI - if (pVia->directRenderingType) - DRILock(screenInfo.screens[pScrn->scrnIndex], 0); + if (pVia->directRenderingType) + DRILock(screenInfo.screens[pScrn->scrnIndex], 0); #endif - viaAccelFillRect(pScrn, pScrn->frameX0, pScrn->frameY0, - pScrn->displayWidth, pScrn->virtualY, 0x00000000); - viaAccelSyncMarker(pScrn); + viaAccelFillRect(pScrn, pScrn->frameX0, pScrn->frameY0, + pScrn->displayWidth, pScrn->virtualY, 0x00000000); + viaAccelSyncMarker(pScrn); #ifdef XF86DRI - if (pVia->directRenderingType) - DRIUnlock(screenInfo.screens[pScrn->scrnIndex]); + if (pVia->directRenderingType) + DRIUnlock(screenInfo.screens[pScrn->scrnIndex]); #endif - } - vgaHWBlankScreen(pScrn, TRUE); + } } Bool |