diff options
author | Graeme Gregory <dp@xora.org.uk> | 2009-01-04 16:17:40 +0000 |
---|---|---|
committer | Graeme Gregory <dp@xora.org.uk> | 2009-01-04 16:17:40 +0000 |
commit | db3d4cdd8dc6f38441149c53049cd1a9ac687b5c (patch) | |
tree | c2e0450c33e54d5b1b2861b850ece8b5fa5e9109 | |
parent | 3010eb2b86156f27f6772d88c242593b77a7fce5 (diff) |
glamo* : sort out initialisation order for exa/CMDQ
-rw-r--r-- | src/glamo-cmdq.c | 22 | ||||
-rw-r--r-- | src/glamo-draw.c | 8 | ||||
-rw-r--r-- | src/glamo-driver.c | 8 |
3 files changed, 36 insertions, 2 deletions
diff --git a/src/glamo-cmdq.c b/src/glamo-cmdq.c index 782a856..dddeb5f 100644 --- a/src/glamo-cmdq.c +++ b/src/glamo-cmdq.c @@ -411,15 +411,25 @@ GLAMOCMDQInit(GlamoPtr pGlamo, char *mmio = pGlamo->reg_base; int cq_len = CQ_LEN; + xf86DrvMsg(0, X_WARNING, + "GLAMOCMDQInit here1\n"); + if (!force && pGlamo->exa_cmd_queue) return TRUE; + xf86DrvMsg(0, X_WARNING, + "GLAMOCMDQInit here2\n"); + pGlamo->ring_len = (cq_len + 1) * 1024; pGlamo->exa_cmd_queue = exaOffscreenAlloc(pGlamo->pScreen, pGlamo->ring_len + 4, pGlamo->exa->pixmapOffsetAlign, TRUE, NULL, NULL); + + xf86DrvMsg(0, X_WARNING, + "GLAMOCMDQInit here3\n"); + if (!pGlamo->exa_cmd_queue) return FALSE; pGlamo->ring_addr = @@ -427,6 +437,10 @@ GLAMOCMDQInit(GlamoPtr pGlamo, pGlamo->exa_cmd_queue->offset); GLAMOEngineEnable(pGlamo, GLAMO_ENGINE_CMDQ); + + xf86DrvMsg(0, X_WARNING, + "GLAMOCMDQInit here4\n"); + GLAMOCMDQResetCP(pGlamo); return TRUE; } @@ -434,11 +448,15 @@ GLAMOCMDQInit(GlamoPtr pGlamo, void GLAMOCMDQCacheSetup(GlamoPtr pGlamo) { + xf86DrvMsg(0, X_WARNING, + "here1\n"); GLAMOCMDQInit(pGlamo, TRUE); - + xf86DrvMsg(0, X_WARNING, + "here2\n"); if (pGlamo->cmd_queue_cache) return; - + xf86DrvMsg(0, X_WARNING, + "here3\n"); pGlamo->cmd_queue_cache = GLAMOCreateCMDQCache(pGlamo); if (pGlamo->cmd_queue_cache == FALSE) FatalError("Failed to allocate cmd queue cache buffer.\n"); diff --git a/src/glamo-draw.c b/src/glamo-draw.c index 3948ffc..174e2d1 100644 --- a/src/glamo-draw.c +++ b/src/glamo-draw.c @@ -233,6 +233,7 @@ GLAMODrawExaInit(ScreenPtr pScreen, ScrnInfoPtr pScrn) } else { ErrorF("Failed to initialize EXA acceleration\n"); } + GLAMO_LOG("leave\n"); return success; @@ -376,9 +377,16 @@ GLAMOExaCopy(PixmapPtr pDst, srcX, srcY, dstX, dstY, width, height); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "here1\n"); BEGIN_CMDQ(34); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "here2\n"); OUT_REG(GLAMO_REG_2D_SRC_ADDRL, pGlamo->src_offset & 0xffff); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "here3\n"); + OUT_REG(GLAMO_REG_2D_SRC_ADDRH, (pGlamo->src_offset >> 16) & 0x7f); OUT_REG(GLAMO_REG_2D_SRC_PITCH, pGlamo->src_pitch); diff --git a/src/glamo-driver.c b/src/glamo-driver.c index dc3d9db..41727c4 100644 --- a/src/glamo-driver.c +++ b/src/glamo-driver.c @@ -732,6 +732,12 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* map in the registers */ fPtr->reg_base = xf86MapVidMem(pScreen->myNum, VIDMEM_MMIO, 0x8000000, 0x2400); + fPtr->pScreen = pScreen; + + /*fPtr->cmd_queue_cache = GLAMOCreateCMDQCache(fPtr);*/ + + /*GLAMOCMDQCacheSetup(fPtr);*/ + xf86LoadSubModule(pScrn, "exa"); xf86LoaderReqSymLists(exaSymbols, NULL); @@ -741,6 +747,8 @@ GlamoScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) return FALSE; } + GLAMOCMDQCacheSetup(fPtr); + xf86SetBlackWhitePixels(pScreen); miInitializeBackingStore(pScreen); xf86SetBackingStore(pScreen); |