diff options
Diffstat (limited to 'hw/kdrive/mach64/mach64draw.c')
-rw-r--r-- | hw/kdrive/mach64/mach64draw.c | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/hw/kdrive/mach64/mach64draw.c b/hw/kdrive/mach64/mach64draw.c index df53f3fad..4fd5f4a3f 100644 --- a/hw/kdrive/mach64/mach64draw.c +++ b/hw/kdrive/mach64/mach64draw.c @@ -41,6 +41,7 @@ #include "migc.h" #include "miline.h" #include "picturestr.h" +#include "kaa.h" CARD8 mach64Rop[16] = { /* GXclear */ 0x01, /* 0 */ @@ -336,6 +337,16 @@ static const Mach64AccelReg mach64AccelReg[] = { #define NACCELREG (sizeof mach64AccelReg / sizeof mach64AccelReg[0]) +static void +mach64WaitMarker (ScreenPtr pScreen, int marker) +{ + KdScreenPriv(pScreen); + mach64CardInfo(pScreenPriv); + reg = mach64c->reg; + + mach64WaitIdle (reg); +} + static Bool mach64Setup (PixmapPtr pDst, PixmapPtr pSrc, CARD32 combo, int wait) { @@ -537,29 +548,29 @@ mach64DoneCopy (void) #endif } -KaaScreenInfoRec mach64Kaa = { - mach64PrepareSolid, - mach64Solid, - mach64DoneSolid, - - mach64PrepareCopy, - mach64Copy, - mach64DoneCopy, - - 64, /* Offscreen byte alignment */ - 64, /* Offscreen pitch */ - KAA_OFFSCREEN_PIXMAPS, /* Flags */ -}; Bool mach64DrawInit (ScreenPtr pScreen) { KdScreenPriv(pScreen); - + mach64ScreenInfo(pScreenPriv); + + memset(&mach64s->kaa, 0, sizeof(KaaScreenInfoRec)); + mach64s->kaa.waitMarker = mach64WaitMarker; + mach64s->kaa.PrepareSolid = mach64PrepareSolid; + mach64s->kaa.Solid = mach64Solid; + mach64s->kaa.DoneSolid = mach64DoneSolid; + mach64s->kaa.PrepareCopy = mach64PrepareCopy; + mach64s->kaa.Copy = mach64Copy; + mach64s->kaa.DoneCopy = mach64DoneCopy; + mach64s->kaa.offsetAlign = 64; + mach64s->kaa.pitchAlign = 64; + mach64s->kaa.flags = KAA_OFFSCREEN_PIXMAPS; + if (pScreenPriv->screen->fb[0].depth == 4) return FALSE; - if (!kaaDrawInit (pScreen, &mach64Kaa)) + if (!kaaDrawInit (pScreen, &mach64s->kaa)) return FALSE; return TRUE; @@ -568,7 +579,7 @@ mach64DrawInit (ScreenPtr pScreen) void mach64DrawEnable (ScreenPtr pScreen) { - KdMarkSync (pScreen); + kaaMarkSync (pScreen); } void @@ -581,13 +592,3 @@ mach64DrawFini (ScreenPtr pScreen) { kaaDrawFini (pScreen); } - -void -mach64DrawSync (ScreenPtr pScreen) -{ - KdScreenPriv(pScreen); - mach64CardInfo(pScreenPriv); - reg = mach64c->reg; - - mach64WaitIdle (reg); -} |