xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Tue Jul 1 14:56:46 PDT 2008


 hw/kdrive/src/Makefile.am  |    4 
 hw/kdrive/src/kaa.c        | 1081 ---------------------------------------------
 hw/kdrive/src/kaa.h        |  120 ----
 hw/kdrive/src/kaapict.c    |  719 -----------------------------
 hw/kdrive/src/kasync.c     |  341 --------------
 hw/kdrive/src/kdrive.h     |  139 -----
 hw/kdrive/src/koffscreen.c |    1 
 7 files changed, 2405 deletions(-)

New commits:
commit 703a9645f3d547144ea62dd81c41f5356a5f87d8
Author: Adam Jackson <ajax at redhat.com>
Date:   Tue Jul 1 17:50:48 2008 -0400

    Auf wiedersehen, KAA.

diff --git a/hw/kdrive/src/Makefile.am b/hw/kdrive/src/Makefile.am
index 29098c3..fbb5e51 100644
--- a/hw/kdrive/src/Makefile.am
+++ b/hw/kdrive/src/Makefile.am
@@ -20,10 +20,6 @@ endif
 
 libkdrive_a_SOURCES =	\
 	fourcc.h	\
-	kaa.c		\
-	kaa.h		\
-	kaapict.c	\
-	kasync.c	\
 	kcmap.c		\
 	kcurscol.c	\
 	kdrive.c	\
diff --git a/hw/kdrive/src/kaa.c b/hw/kdrive/src/kaa.c
deleted file mode 100644
index db09e9d..0000000
--- a/hw/kdrive/src/kaa.c
+++ /dev/null
@@ -1,1081 +0,0 @@
-/*
- * Copyright © 2001 Keith Packard
- *
- * Partly based on code that is Copyright © The XFree86 Project Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <kdrive-config.h>
-#endif
-#include "kdrive.h"
-#include "kaa.h"
-#include "dixfontstr.h"
-
-#define DEBUG_MIGRATE 0
-#define DEBUG_PIXMAP 0
-#if DEBUG_MIGRATE
-#define DBG_MIGRATE(a) ErrorF a
-#else
-#define DBG_MIGRATE(a)
-#endif
-#if DEBUG_PIXMAP
-#define DBG_PIXMAP(a) ErrorF a
-#else
-#define DBG_PIXMAP(a)
-#endif
- 
-DevPrivateKey kaaScreenPrivateKey = &kaaScreenPrivateKey;
-DevPrivateKey kaaPixmapPrivateKey = &kaaPixmapPrivateKey;
-
-#define KAA_PIXMAP_SCORE_MOVE_IN    10
-#define KAA_PIXMAP_SCORE_MAX	    20
-#define KAA_PIXMAP_SCORE_MOVE_OUT   -10
-#define KAA_PIXMAP_SCORE_MIN	    -20
-#define KAA_PIXMAP_SCORE_PINNED	    1000
-#define KAA_PIXMAP_SCORE_INIT	    1001
-
-void
-kaaDrawableDirty (DrawablePtr pDrawable)
-{
-    PixmapPtr pPixmap;
-    KaaPixmapPrivPtr pKaaPixmap;
-
-    if (pDrawable->type == DRAWABLE_WINDOW)
-	pPixmap = (*pDrawable->pScreen->GetWindowPixmap)((WindowPtr) pDrawable);
-    else
-	pPixmap = (PixmapPtr)pDrawable;
-
-    pKaaPixmap = KaaGetPixmapPriv(pPixmap);
-    if (pKaaPixmap != NULL)
-	pKaaPixmap->dirty = TRUE;
-}
-
-static void
-kaaPixmapSave (ScreenPtr pScreen, KdOffscreenArea *area)
-{
-    PixmapPtr pPixmap = area->privData;
-    KaaPixmapPriv(pPixmap);
-    int dst_pitch, src_pitch, bytes;
-    unsigned char *dst, *src;
-    int i; 
-    
-    DBG_MIGRATE (("Save 0x%08x (0x%x) (%dx%d)\n",
-		  pPixmap->drawable.id,
-		  KaaGetPixmapPriv(pPixmap)->area ? 
-		  KaaGetPixmapPriv(pPixmap)->area->offset : -1,
-		  pPixmap->drawable.width,
-		  pPixmap->drawable.height));
-		  
-    src_pitch = pPixmap->devKind;
-    dst_pitch = pKaaPixmap->devKind;
-
-    src = pPixmap->devPrivate.ptr;
-    dst = pKaaPixmap->devPrivate.ptr;
-    
-    pPixmap->devKind = dst_pitch;
-    pPixmap->devPrivate.ptr = dst;
-    pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
-    pKaaPixmap->area = NULL;
-
-#if 0
-    if (!pKaaPixmap->dirty)
-	return;
-#endif
-
-    kaaWaitSync (pPixmap->drawable.pScreen);
-
-    bytes = src_pitch < dst_pitch ? src_pitch : dst_pitch;
-
-    i = pPixmap->drawable.height;
-    while (i--) {
-	memcpy (dst, src, bytes);
-	dst += dst_pitch;
-	src += src_pitch;
-    }
-}
-
-static int
-kaaLog2(int val)
-{
-    int bits;
-
-    if (!val)
-	return 0;
-    for (bits = 0; val != 0; bits++)
-	val >>= 1;
-    return bits - 1;
-}
-
-static Bool
-kaaPixmapAllocArea (PixmapPtr pPixmap)
-{
-    ScreenPtr	pScreen = pPixmap->drawable.pScreen;
-    KaaScreenPriv (pScreen);
-    KaaPixmapPriv (pPixmap);
-    KdScreenPriv  (pScreen);
-    int		bpp = pPixmap->drawable.bitsPerPixel;
-    CARD16	h = pPixmap->drawable.height;
-    CARD16	w = pPixmap->drawable.width;
-    int		pitch;
-
-    if (pKaaScr->info->flags & KAA_OFFSCREEN_ALIGN_POT && w != 1)
-	w = 1 << (kaaLog2(w - 1) + 1);
-    pitch = (w * bpp / 8 + pKaaScr->info->pitchAlign - 1) &
-            ~(pKaaScr->info->pitchAlign - 1);
-    
-    pKaaPixmap->devKind = pPixmap->devKind;
-    pKaaPixmap->devPrivate = pPixmap->devPrivate;
-    pKaaPixmap->area = KdOffscreenAlloc (pScreen, pitch * h,
-					 pKaaScr->info->offsetAlign,
-					 FALSE, 
-					 kaaPixmapSave, (pointer) pPixmap);
-    if (!pKaaPixmap->area)
-	return FALSE;
-    
-    DBG_PIXMAP(("++ 0x%08x (0x%x) (%dx%d)\n",
-		  pPixmap->drawable.id,
-		  KaaGetPixmapPriv(pPixmap)->area ? 
-		  KaaGetPixmapPriv(pPixmap)->area->offset : -1,
-		  pPixmap->drawable.width,
-		  pPixmap->drawable.height));
-    pPixmap->devKind = pitch;
-    pPixmap->devPrivate.ptr = (pointer) ((CARD8 *) pScreenPriv->screen->memory_base + pKaaPixmap->area->offset);
-    pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
-    return TRUE;
-}
-
-void
-kaaMoveInPixmap (PixmapPtr pPixmap)
-{
-    ScreenPtr	pScreen = pPixmap->drawable.pScreen;
-    KaaScreenPriv (pScreen);
-    KaaPixmapPriv (pPixmap);
-    int dst_pitch, src_pitch, bytes;
-    unsigned char *dst, *src;
-    int i;
-
-    DBG_MIGRATE (("-> 0x%08x (0x%x) (%dx%d)\n",
-		  pPixmap->drawable.id,
-		  KaaGetPixmapPriv(pPixmap)->area ? 
-		  KaaGetPixmapPriv(pPixmap)->area->offset : -1,
-		  pPixmap->drawable.width,
-		  pPixmap->drawable.height));
-
-    src = pPixmap->devPrivate.ptr;
-    src_pitch = pPixmap->devKind;
-    
-    if (!kaaPixmapAllocArea (pPixmap))
-	return;
-
-    pKaaPixmap->dirty = FALSE;
-
-    if (pKaaScr->info->UploadToScreen)
-    {
-	if (pKaaScr->info->UploadToScreen(pPixmap, (char *) src, src_pitch))
-	    return;
-    }
-
-    dst = pPixmap->devPrivate.ptr;
-    dst_pitch = pPixmap->devKind;
-    
-    bytes = src_pitch < dst_pitch ? src_pitch : dst_pitch;
-
-    kaaWaitSync (pPixmap->drawable.pScreen);
-
-    i = pPixmap->drawable.height;
-    while (i--) {
-	memcpy (dst, src, bytes);
-	dst += dst_pitch;
-	src += src_pitch;
-    }
-}
-
-static void
-kaaMoveOutPixmap (PixmapPtr pPixmap)
-{
-    KaaPixmapPriv (pPixmap);
-    KdOffscreenArea *area = pKaaPixmap->area;
-
-    DBG_MIGRATE (("<- 0x%08x (0x%x) (%dx%d)\n",
-		  pPixmap->drawable.id,
-		  KaaGetPixmapPriv(pPixmap)->area ? 
-		  KaaGetPixmapPriv(pPixmap)->area->offset : -1,
-		  pPixmap->drawable.width,
-		  pPixmap->drawable.height));
-    if (area)
-    {
-	kaaPixmapSave (pPixmap->drawable.pScreen, area);
-	KdOffscreenFree (pPixmap->drawable.pScreen, area);
-    }
-}
-
-void
-kaaPixmapUseScreen (PixmapPtr pPixmap)
-{
-    KaaPixmapPriv (pPixmap);
-
-    if (pKaaPixmap->score == KAA_PIXMAP_SCORE_PINNED)
-	return;
-
-    if (pKaaPixmap->score == KAA_PIXMAP_SCORE_INIT) {
-	kaaMoveInPixmap(pPixmap);
-	pKaaPixmap->score = 0;
-    }
-
-    if (pKaaPixmap->score < KAA_PIXMAP_SCORE_MAX)
-    {
-	pKaaPixmap->score++;
-	if (!kaaPixmapIsOffscreen(pPixmap) &&
-	    pKaaPixmap->score >= KAA_PIXMAP_SCORE_MOVE_IN)
-	    kaaMoveInPixmap (pPixmap);
-    }
-    KdOffscreenMarkUsed (pPixmap);
-}
-
-void
-kaaPixmapUseMemory (PixmapPtr pPixmap)
-{
-    KaaPixmapPriv (pPixmap);
-
-    if (pKaaPixmap->score == KAA_PIXMAP_SCORE_PINNED)
-	return;
-
-    if (pKaaPixmap->score == KAA_PIXMAP_SCORE_INIT)
-	pKaaPixmap->score = 0;
-
-    if (pKaaPixmap->score > KAA_PIXMAP_SCORE_MIN)
-    {
-	pKaaPixmap->score--;
-	if (pKaaPixmap->area &&
-	    pKaaPixmap->score <= KAA_PIXMAP_SCORE_MOVE_OUT)
-	    kaaMoveOutPixmap (pPixmap);
-    }
-}
-
-static Bool
-kaaDestroyPixmap (PixmapPtr pPixmap)
-{
-    if (pPixmap->refcnt == 1)
-    {
-	KaaPixmapPriv (pPixmap);
-	if (pKaaPixmap->area)
-	{
-	    DBG_PIXMAP(("-- 0x%08x (0x%x) (%dx%d)\n",
-			 pPixmap->drawable.id,
-			 KaaGetPixmapPriv(pPixmap)->area->offset,
-			 pPixmap->drawable.width,
-			 pPixmap->drawable.height));
-	    /* Free the offscreen area */
-	    KdOffscreenFree (pPixmap->drawable.pScreen, pKaaPixmap->area);
-	    pPixmap->devPrivate = pKaaPixmap->devPrivate;
-	    pPixmap->devKind = pKaaPixmap->devKind;
-	}
-    }
-    return fbDestroyPixmap (pPixmap);
-}
-
-static PixmapPtr 
-kaaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth, unsigned usage_hint)
-{
-    PixmapPtr		pPixmap;
-    KaaPixmapPrivPtr	pKaaPixmap;
-    int			bpp;
-    
-    bpp = BitsPerPixel (depth);
-    if (bpp == 32 && depth == 24)
-    {
-	int fb;
-	KdScreenPriv (pScreen);
-	
-	for (fb = 0; fb < KD_MAX_FB && pScreenPriv->screen->fb[fb].depth; fb++)
-	    if (pScreenPriv->screen->fb[fb].depth == 24)
-	    {
-		bpp = pScreenPriv->screen->fb[fb].bitsPerPixel;
-		break;
-	    }
-    }
-
-    pPixmap = fbCreatePixmapBpp (pScreen, w, h, depth, bpp, usage_hint);
-    if (!pPixmap)
-	return NULL;
-    pKaaPixmap = KaaGetPixmapPriv(pPixmap);
-    if (!w || !h)
-	pKaaPixmap->score = KAA_PIXMAP_SCORE_PINNED;
-    else
-	pKaaPixmap->score = KAA_PIXMAP_SCORE_INIT;
-    
-    pKaaPixmap->area = NULL;
-    pKaaPixmap->dirty = FALSE;
-
-    return pPixmap;
-}
-
-Bool
-kaaPixmapIsOffscreen(PixmapPtr p)
-{
-    ScreenPtr	pScreen = p->drawable.pScreen;
-    KdScreenPriv(pScreen);
-
-    return ((unsigned long) ((CARD8 *) p->devPrivate.ptr - 
-			     (CARD8 *) pScreenPriv->screen->memory_base) <
-	    pScreenPriv->screen->memory_size);
-}
-
-PixmapPtr
-kaaGetOffscreenPixmap (DrawablePtr pDrawable, int *xp, int *yp)
-{
-    PixmapPtr	pPixmap;
-    int		x, y;
-    
-    if (pDrawable->type == DRAWABLE_WINDOW) {
-	pPixmap = (*pDrawable->pScreen->GetWindowPixmap) ((WindowPtr) pDrawable);
-#ifdef COMPOSITE
-	x = -pPixmap->screen_x;
-	y = -pPixmap->screen_y;
-#else
-	x = 0;
-	y = 0;
-#endif
-    }
-    else
-    {
-	pPixmap = (PixmapPtr) pDrawable;
-	x = 0;
-	y = 0;
-    }
-    *xp = x;
-    *yp = y;
-    if (kaaPixmapIsOffscreen (pPixmap))
-	return pPixmap;
-    else
-	return NULL;
-}
-
-Bool
-kaaDrawableIsOffscreen (DrawablePtr pDrawable)
-{
-    PixmapPtr	pPixmap;
-    if (pDrawable->type == DRAWABLE_WINDOW)
-	pPixmap = (*pDrawable->pScreen->GetWindowPixmap) ((WindowPtr) pDrawable);
-    else
-	pPixmap = (PixmapPtr) pDrawable;
-    return kaaPixmapIsOffscreen (pPixmap);
-}
-
-#if 0
-static void
-kaaFillTiled(int	dst_x,
-	     int	dst_y,
-	     int	width,
-	     int	height,
-	     int	src_x,
-	     int	src_y,
-	     int	src_width,
-	     int	src_height,
-	     void	(*Copy) (int	srcX,
-				 int	srcY,
-				 int	dstX,
-				 int	dstY,
-				 int	width,
-				 int	height))
-{
-    modulus (src_x, src_width, src_x);
-    modulus (src_y, src_height, src_y);
-    
-    while (height)
-    {
-	int dst_x_tmp = dst_x;
-	int src_x_tmp = src_x;
-	int width_tmp = width;
-	int height_left = src_height - src_y;
-	int height_this = min (height, height_left);
-	
-	while (width_tmp)
-	{
-	    int width_left = src_width - src_x_tmp;
-	    int width_this = min (width_tmp, width_left);
-
-	    (*Copy) (src_x_tmp, src_y,
-		     dst_x_tmp, dst_y,
-		     width_this, height_this);
-
-	    width_tmp -= width_this;
-	    dst_x_tmp += width_this;
-	}
-	height -= height_this;
-	dst_y += height_this;
-	src_y = 0;
-    }
-}
-#endif
-
-static void
-kaaFillSpans(DrawablePtr pDrawable, GCPtr pGC, int n, 
-	     DDXPointPtr ppt, int *pwidth, int fSorted)
-{
-    ScreenPtr	    pScreen = pDrawable->pScreen;
-    KdScreenPriv (pScreen);
-    KaaScreenPriv (pScreen);
-    RegionPtr	    pClip = fbGetCompositeClip(pGC);
-    PixmapPtr	    pPixmap;    
-    BoxPtr	    pextent, pbox;
-    int		    nbox;
-    int		    extentX1, extentX2, extentY1, extentY2;
-    int		    fullX1, fullX2, fullY1;
-    int		    partX1, partX2;
-    int		    off_x, off_y;
-
-    if (!pScreenPriv->enabled ||
-	pGC->fillStyle != FillSolid ||
-	!(pPixmap = kaaGetOffscreenPixmap (pDrawable, &off_x, &off_y)) ||
-	!(*pKaaScr->info->PrepareSolid) (pPixmap,
-					 pGC->alu,
-					 pGC->planemask,
-					 pGC->fgPixel))
-    {
-	KdCheckFillSpans (pDrawable, pGC, n, ppt, pwidth, fSorted);
-	return;
-    }
-    
-    pextent = REGION_EXTENTS(pGC->pScreen, pClip);
-    extentX1 = pextent->x1;
-    extentY1 = pextent->y1;
-    extentX2 = pextent->x2;
-    extentY2 = pextent->y2;
-    while (n--)
-    {
-	fullX1 = ppt->x;
-	fullY1 = ppt->y;
-	fullX2 = fullX1 + (int) *pwidth;
-	ppt++;
-	pwidth++;
-	
-	if (fullY1 < extentY1 || extentY2 <= fullY1)
-	    continue;
-	
-	if (fullX1 < extentX1)
-	    fullX1 = extentX1;
-
-	if (fullX2 > extentX2)
-	    fullX2 = extentX2;
-	
-	if (fullX1 >= fullX2)
-	    continue;
-	
-	nbox = REGION_NUM_RECTS (pClip);
-	if (nbox == 1)
-	{
-	    (*pKaaScr->info->Solid) (fullX1 + off_x, fullY1 + off_y,
-				     fullX2 + off_x, fullY1 + 1 + off_y);
-	}
-	else
-	{
-	    pbox = REGION_RECTS(pClip);
-	    while(nbox--)
-	    {
-		if (pbox->y1 <= fullY1 && fullY1 < pbox->y2)
-		{
-		    partX1 = pbox->x1;
-		    if (partX1 < fullX1)
-			partX1 = fullX1;
-		    partX2 = pbox->x2;
-		    if (partX2 > fullX2)
-			partX2 = fullX2;
-		    if (partX2 > partX1)
-			(*pKaaScr->info->Solid) (partX1 + off_x, fullY1 + off_y,
-						 partX2 + off_x, fullY1 + 1 + off_y);
-		}
-		pbox++;
-	    }
-	}
-    }
-    (*pKaaScr->info->DoneSolid) ();
-    kaaDrawableDirty (pDrawable);
-    kaaMarkSync (pDrawable->pScreen);
-}
-
-void
-kaaCopyNtoN (DrawablePtr    pSrcDrawable,
-	     DrawablePtr    pDstDrawable,
-	     GCPtr	    pGC,
-	     BoxPtr	    pbox,
-	     int	    nbox,
-	     int	    dx,
-	     int	    dy,
-	     Bool	    reverse,
-	     Bool	    upsidedown,
-	     Pixel	    bitplane,
-	     void	    *closure)
-{
-    KdScreenPriv (pDstDrawable->pScreen);
-    KaaScreenPriv (pDstDrawable->pScreen);
-    PixmapPtr pSrcPixmap, pDstPixmap;
-    int	    src_off_x, src_off_y;
-    int	    dst_off_x, dst_off_y;
-
-    /* Migrate pixmaps to same place as destination */
-    if (pScreenPriv->enabled && pSrcDrawable->type == DRAWABLE_PIXMAP) {
-	if (kaaDrawableIsOffscreen (pDstDrawable))
-	    kaaPixmapUseScreen ((PixmapPtr) pSrcDrawable);
-	else
-	    kaaPixmapUseMemory ((PixmapPtr) pSrcDrawable);
-    }
-
-    if (pScreenPriv->enabled &&
-	(pSrcPixmap = kaaGetOffscreenPixmap (pSrcDrawable, &src_off_x, &src_off_y)) &&
-	(pDstPixmap = kaaGetOffscreenPixmap (pDstDrawable, &dst_off_x, &dst_off_y)) && 
-	(*pKaaScr->info->PrepareCopy) (pSrcPixmap,
-				       pDstPixmap,
-				       dx,
-				       dy,
-				       pGC ? pGC->alu : GXcopy,
-				       pGC ? pGC->planemask : FB_ALLONES))
-    {
-	while (nbox--)
-	{
-	    (*pKaaScr->info->Copy) (pbox->x1 + dx + src_off_x,
-				    pbox->y1 + dy + src_off_y,
-				    pbox->x1 + dst_off_x, pbox->y1 + dst_off_y,
-				    pbox->x2 - pbox->x1,
-				    pbox->y2 - pbox->y1);
-	    pbox++;
-	}
-	(*pKaaScr->info->DoneCopy) ();
-	kaaMarkSync (pDstDrawable->pScreen);
-    }
-    else
-    {
-	kaaWaitSync (pDstDrawable->pScreen);
-	fbCopyNtoN (pSrcDrawable, pDstDrawable, pGC, 
-		    pbox, nbox, dx, dy, reverse, upsidedown, 
-		    bitplane, closure);
-    }
-    kaaDrawableDirty (pDstDrawable);
-}
-
-static RegionPtr
-kaaCopyArea(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GCPtr pGC,
-	    int srcx, int srcy, int width, int height, int dstx, int dsty)
-{
-    return fbDoCopy (pSrcDrawable, pDstDrawable, pGC, 
-		     srcx, srcy, width, height, 
-		     dstx, dsty, kaaCopyNtoN, 0, 0);
-}
-
-static void
-kaaPolyFillRect(DrawablePtr pDrawable, 
-		GCPtr	    pGC, 
-		int	    nrect,
-		xRectangle  *prect)
-{
-    KdScreenPriv (pDrawable->pScreen);
-    KaaScreenPriv (pDrawable->pScreen);
-    RegionPtr	    pClip = fbGetCompositeClip(pGC);
-    PixmapPtr	    pPixmap;
-    register BoxPtr pbox;
-    BoxPtr	    pextent;
-    int		    extentX1, extentX2, extentY1, extentY2;
-    int		    fullX1, fullX2, fullY1, fullY2;
-    int		    partX1, partX2, partY1, partY2;
-    int		    xoff, yoff;
-    int		    xorg, yorg;
-    int		    n;
-    
-    if (!pScreenPriv->enabled ||
-	pGC->fillStyle != FillSolid ||
-	!(pPixmap = kaaGetOffscreenPixmap (pDrawable, &xoff, &yoff)) || 
-	!(*pKaaScr->info->PrepareSolid) (pPixmap,
-					 pGC->alu,
-					 pGC->planemask,
-					 pGC->fgPixel))
-    {
-	KdCheckPolyFillRect (pDrawable, pGC, nrect, prect);
-	return;
-    }
-    
-    xorg = pDrawable->x;
-    yorg = pDrawable->y;
-    
-    pextent = REGION_EXTENTS(pGC->pScreen, pClip);
-    extentX1 = pextent->x1;
-    extentY1 = pextent->y1;
-    extentX2 = pextent->x2;
-    extentY2 = pextent->y2;
-    while (nrect--)
-    {
-	fullX1 = prect->x + xorg;
-	fullY1 = prect->y + yorg;
-	fullX2 = fullX1 + (int) prect->width;
-	fullY2 = fullY1 + (int) prect->height;
-	prect++;
-	
-	if (fullX1 < extentX1)
-	    fullX1 = extentX1;
-
-	if (fullY1 < extentY1)
-	    fullY1 = extentY1;
-
-	if (fullX2 > extentX2)
-	    fullX2 = extentX2;
-	
-	if (fullY2 > extentY2)
-	    fullY2 = extentY2;
-
-	if ((fullX1 >= fullX2) || (fullY1 >= fullY2))
-	    continue;
-	n = REGION_NUM_RECTS (pClip);
-	if (n == 1)
-	{
-	    (*pKaaScr->info->Solid) (fullX1 + xoff, fullY1 + yoff,
-				     fullX2 + xoff, fullY2 + yoff);
-	}
-	else
-	{
-	    pbox = REGION_RECTS(pClip);
-	    /* 
-	     * clip the rectangle to each box in the clip region
-	     * this is logically equivalent to calling Intersect()
-	     */
-	    while(n--)
-	    {
-		partX1 = pbox->x1;
-		if (partX1 < fullX1)
-		    partX1 = fullX1;
-		partY1 = pbox->y1;
-		if (partY1 < fullY1)
-		    partY1 = fullY1;
-		partX2 = pbox->x2;
-		if (partX2 > fullX2)
-		    partX2 = fullX2;
-		partY2 = pbox->y2;
-		if (partY2 > fullY2)
-		    partY2 = fullY2;
-    
-		pbox++;
-		
-		if (partX1 < partX2 && partY1 < partY2)
-		    (*pKaaScr->info->Solid) (partX1 + xoff, partY1 + yoff,
-					     partX2 + xoff, partY2 + yoff);
-	    }
-	}
-    }
-    (*pKaaScr->info->DoneSolid) ();
-    kaaDrawableDirty (pDrawable);
-    kaaMarkSync (pDrawable->pScreen);
-}
-    
-static void
-kaaSolidBoxClipped (DrawablePtr	pDrawable,
-		    RegionPtr	pClip,
-		    FbBits	pm,
-		    FbBits	fg,
-		    int		x1,
-		    int		y1,
-		    int		x2,
-		    int		y2)
-{
-    KdScreenPriv (pDrawable->pScreen);
-    KaaScreenPriv (pDrawable->pScreen);
-    PixmapPtr   pPixmap;        
-    BoxPtr	pbox;
-    int		nbox;
-    int		xoff, yoff;
-    int		partX1, partX2, partY1, partY2;
-
-    if (!pScreenPriv->enabled ||
-	!(pPixmap = kaaGetOffscreenPixmap (pDrawable, &xoff, &yoff)) ||
-	!(*pKaaScr->info->PrepareSolid) (pPixmap, GXcopy, pm, fg))
-    {
-	kaaWaitSync (pDrawable->pScreen);
-	fg = fbReplicatePixel (fg, pDrawable->bitsPerPixel);
-	fbSolidBoxClipped (pDrawable, pClip, x1, y1, x2, y2,
-			   fbAnd (GXcopy, fg, pm),
-			   fbXor (GXcopy, fg, pm));
-	kaaDrawableDirty (pDrawable);
-	return;
-    }
-    for (nbox = REGION_NUM_RECTS(pClip), pbox = REGION_RECTS(pClip); 
-	 nbox--; 
-	 pbox++)
-    {
-	partX1 = pbox->x1;
-	if (partX1 < x1)
-	    partX1 = x1;
-	
-	partX2 = pbox->x2;
-	if (partX2 > x2)
-	    partX2 = x2;
-	
-	if (partX2 <= partX1)
-	    continue;
-	
-	partY1 = pbox->y1;
-	if (partY1 < y1)
-	    partY1 = y1;
-	
-	partY2 = pbox->y2;
-	if (partY2 > y2)
-	    partY2 = y2;
-	
-	if (partY2 <= partY1)
-	    continue;
-	
-	(*pKaaScr->info->Solid) (partX1 + xoff, partY1 + yoff,
-				 partX2 + xoff, partY2 + yoff);
-    }
-    (*pKaaScr->info->DoneSolid) ();
-    kaaDrawableDirty (pDrawable);
-    kaaMarkSync (pDrawable->pScreen);
-}
-
-static void
-kaaImageGlyphBlt (DrawablePtr	pDrawable,
-		  GCPtr		pGC,
-		  int		x, 
-		  int		y,
-		  unsigned int	nglyph,
-		  CharInfoPtr	*ppciInit,
-		  pointer	pglyphBase)
-{
-    FbGCPrivPtr	    pPriv = fbGetGCPrivate(pGC);
-    CharInfoPtr	    *ppci;
-    CharInfoPtr	    pci;
-    unsigned char   *pglyph;		/* pointer bits in glyph */
-    int		    gWidth, gHeight;	/* width and height of glyph */
-    FbStride	    gStride;		/* stride of glyph */
-    Bool	    opaque;
-    int		    n;
-    int		    gx, gy;
-    void	    (*glyph) (FbBits *,
-			      FbStride,
-			      int,
-			      FbStip *,
-			      FbBits,
-			      int,
-			      int);
-    FbBits	    *dst;
-    FbStride	    dstStride;
-    int		    dstBpp;
-    int		    dstXoff, dstYoff;
-    FbBits	    depthMask;
-    
-    depthMask = FbFullMask(pDrawable->depth);
-    if ((pGC->planemask & depthMask) != depthMask)
-    {
-	KdCheckImageGlyphBlt(pDrawable, pGC, x, y, nglyph, ppciInit, pglyphBase);
-	return;
-    }
-    glyph = 0;
-    fbGetDrawable (pDrawable, dst, dstStride, dstBpp, dstXoff, dstYoff);
-    switch (dstBpp) {
-    case 8:	glyph = fbGlyph8; break;
-    case 16:    glyph = fbGlyph16; break;
-    case 24:    glyph = fbGlyph24; break;
-    case 32:    glyph = fbGlyph32; break;
-    }
-    
-    x += pDrawable->x;
-    y += pDrawable->y;
-
-    if (TERMINALFONT (pGC->font) && !glyph)
-    {
-	opaque = TRUE;
-    }
-    else
-    {
-	int		xBack, widthBack;
-	int		yBack, heightBack;
-	
-	ppci = ppciInit;
-	n = nglyph;
-	widthBack = 0;
-	while (n--)
-	    widthBack += (*ppci++)->metrics.characterWidth;
-	
-        xBack = x;
-	if (widthBack < 0)
-	{
-	    xBack += widthBack;
-	    widthBack = -widthBack;
-	}
-	yBack = y - FONTASCENT(pGC->font);
-	heightBack = FONTASCENT(pGC->font) + FONTDESCENT(pGC->font);
-        kaaSolidBoxClipped (pDrawable,
-			    fbGetCompositeClip(pGC),
-			    pGC->planemask,
-			    pGC->bgPixel,
-			    xBack,
-			    yBack,
-			    xBack + widthBack,
-			    yBack + heightBack);
-	opaque = FALSE;
-    }
-
-    kaaWaitSync (pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    
-    ppci = ppciInit;
-    while (nglyph--)
-    {
-	pci = *ppci++;
-	pglyph = FONTGLYPHBITS(pglyphBase, pci);
-	gWidth = GLYPHWIDTHPIXELS(pci);
-	gHeight = GLYPHHEIGHTPIXELS(pci);
-	if (gWidth && gHeight)
-	{
-	    gx = x + pci->metrics.leftSideBearing;
-	    gy = y - pci->metrics.ascent; 
-	    if (glyph && gWidth <= sizeof (FbStip) * 8 &&
-		fbGlyphIn (fbGetCompositeClip(pGC), gx, gy, gWidth, gHeight))
-	    {
-		(*glyph) (dst + (gy + dstYoff) * dstStride,
-			  dstStride,
-			  dstBpp,
-			  (FbStip *) pglyph,
-			  pPriv->fg,
-			  gx + dstXoff,
-			  gHeight);
-	    }
-	    else
-	    {
-		gStride = GLYPHWIDTHBYTESPADDED(pci) / sizeof (FbStip);
-		fbPutXYImage (pDrawable,
-			      fbGetCompositeClip(pGC),
-			      pPriv->fg,
-			      pPriv->bg,
-			      pPriv->pm,
-			      GXcopy,
-			      opaque,
-    
-			      gx,
-			      gy,
-			      gWidth, gHeight,
-    
-			      (FbStip *) pglyph,
-			      gStride,
-			      0);
-	    }
-	}
-	x += pci->metrics.characterWidth;
-    }
-}
-
-static const GCOps	kaaOps = {
-    kaaFillSpans,
-    KdCheckSetSpans,
-    KdCheckPutImage,
-    kaaCopyArea,
-    KdCheckCopyPlane,
-    KdCheckPolyPoint,
-    KdCheckPolylines,
-    KdCheckPolySegment,
-    miPolyRectangle,
-    KdCheckPolyArc,
-    miFillPolygon,
-    kaaPolyFillRect,
-    miPolyFillArc,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    kaaImageGlyphBlt,
-    KdCheckPolyGlyphBlt,
-    KdCheckPushPixels,
-};
-
-static void
-kaaValidateGC (GCPtr pGC, Mask changes, DrawablePtr pDrawable)
-{
-    fbValidateGC (pGC, changes, pDrawable);
-
-    if (kaaDrawableIsOffscreen (pDrawable))
-	pGC->ops = (GCOps *) &kaaOps;
-    else
-	pGC->ops = (GCOps *) &kdAsyncPixmapGCOps;
-}
-
-GCFuncs	kaaGCFuncs = {
-    kaaValidateGC,
-    miChangeGC,
-    miCopyGC,
-    miDestroyGC,
-    miChangeClip,
-    miDestroyClip,
-    miCopyClip
-};
-
-static int
-kaaCreateGC (GCPtr pGC)
-{
-    if (!fbCreateGC (pGC))
-	return FALSE;
-
-    pGC->funcs = &kaaGCFuncs;
-
-    return TRUE;
-}
-
-
-static void
-kaaCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
-{
-    RegionRec	rgnDst;
-    int		dx, dy;
-    PixmapPtr	pPixmap = (*pWin->drawable.pScreen->GetWindowPixmap) (pWin);
-
-    dx = ptOldOrg.x - pWin->drawable.x;
-    dy = ptOldOrg.y - pWin->drawable.y;
-    REGION_TRANSLATE(pWin->drawable.pScreen, prgnSrc, -dx, -dy);
-
-    REGION_INIT (pWin->drawable.pScreen, &rgnDst, NullBox, 0);
-    
-    REGION_INTERSECT(pWin->drawable.pScreen, &rgnDst, &pWin->borderClip, prgnSrc);
-#ifdef COMPOSITE
-    if (pPixmap->screen_x || pPixmap->screen_y)
-	REGION_TRANSLATE (pWin->drawable.pScreen, &rgnDst, 
-			  -pPixmap->screen_x, -pPixmap->screen_y);
-#endif
-
-    fbCopyRegion (&pPixmap->drawable, &pPixmap->drawable,
-		  0,
-		  &rgnDst, dx, dy, kaaCopyNtoN, 0, 0);
-    
-    REGION_UNINIT(pWin->drawable.pScreen, &rgnDst);
-}
-
-static void
-kaaFillRegionSolid (DrawablePtr	pDrawable,
-		    RegionPtr	pRegion,
-		    Pixel	pixel)
-{
-    KdScreenPriv(pDrawable->pScreen);
-    KaaScreenPriv(pDrawable->pScreen);
-    PixmapPtr pPixmap;
-    int xoff, yoff;
-
-    if (pScreenPriv->enabled &&
-	(pPixmap = kaaGetOffscreenPixmap (pDrawable, &xoff, &yoff)) &&
-	(*pKaaScr->info->PrepareSolid) (pPixmap, GXcopy, FB_ALLONES, pixel))
-    {
-	int	nbox = REGION_NUM_RECTS (pRegion);
-	BoxPtr	pBox = REGION_RECTS (pRegion);
-	
-	while (nbox--)
-	{
-	    (*pKaaScr->info->Solid) (pBox->x1 + xoff, pBox->y1 + yoff,
-				     pBox->x2 + xoff, pBox->y2 + yoff);
-	    pBox++;
-	}
-	(*pKaaScr->info->DoneSolid) ();
-	kaaMarkSync (pDrawable->pScreen);
-    }
-    else
-    {
-	kaaWaitSync (pDrawable->pScreen);
-	fbFillRegionSolid (pDrawable, pRegion, 0,
-			   fbReplicatePixel (pixel, pDrawable->bitsPerPixel));
-    }
-    kaaDrawableDirty (pDrawable);
-}
-
-Bool
-kaaDrawInit (ScreenPtr		pScreen,
-	     KaaScreenInfoPtr	pScreenInfo)
-{
-    KaaScreenPrivPtr pKaaScr;
-    KdScreenPriv(pScreen);
-    KdScreenInfo *screen = pScreenPriv->screen;
-#ifdef RENDER
-    PictureScreenPtr	ps = GetPictureScreenIfSet(pScreen);
-#endif
-    
-    pKaaScr = xalloc (sizeof (KaaScreenPrivRec));
-
-    if (!pKaaScr)
-	return FALSE;
-    
-    pKaaScr->info = pScreenInfo;
-    
-    dixSetPrivate(&pScreen->devPrivates, kaaScreenPrivateKey, pKaaScr);
-    
-    /*
-     * Hook up asynchronous drawing
-     */
-    KdScreenInitAsync (pScreen);
-    /*
-     * Replace various fb screen functions
-     */
-    pScreen->CreateGC = kaaCreateGC;
-    pScreen->CopyWindow = kaaCopyWindow;
-#ifdef RENDER
-    if (ps) {
-	ps->Composite = kaaComposite;
-	ps->RasterizeTrapezoid = kaaRasterizeTrapezoid;
-    }
-#endif
-
-    /*
-     * Hookup offscreen pixmaps
-     */
-    if ((pKaaScr->info->flags & KAA_OFFSCREEN_PIXMAPS) &&
-	screen->off_screen_base < screen->memory_size)
-    {
-	if (!dixRequestPrivate(kaaPixmapPrivateKey, sizeof (KaaPixmapPrivRec)))
-	    return FALSE;
-	pScreen->CreatePixmap = kaaCreatePixmap;
-	pScreen->DestroyPixmap = kaaDestroyPixmap;
-    }
-
-    return TRUE;
-}
-
-void
-kaaDrawFini (ScreenPtr pScreen)
-{
-    KaaScreenPriv(pScreen);
-
-    xfree (pKaaScr);
-}
-
-void
-kaaMarkSync (ScreenPtr pScreen)
-{
-    KdScreenPriv(pScreen);
-    KaaScreenPriv(pScreen);
-
-    pScreenPriv->card->needSync = TRUE;
-    if (pKaaScr->info->markSync != NULL) {
-	pScreenPriv->card->lastMarker = (*pKaaScr->info->markSync) (pScreen);
-    }
-}
-
-void
-kaaWaitSync (ScreenPtr pScreen)
-{
-    KdScreenPriv(pScreen);
-    KaaScreenPriv(pScreen);
-    KdCardInfo *card = pScreenPriv->card;
-
-    if (card->needSync) {
-	(*pKaaScr->info->waitMarker) (pScreen, card->lastMarker);
-	card->needSync = FALSE;
-    }
-}
diff --git a/hw/kdrive/src/kaa.h b/hw/kdrive/src/kaa.h
deleted file mode 100644
index 90b963b..0000000
--- a/hw/kdrive/src/kaa.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright © 2001 Keith Packard
- *
- * Partly based on code that is Copyright © The XFree86 Project Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
- 
-#ifndef _KAA_H_
-#define _KAA_H_
-
-#include "picturestr.h"
-
-#define KaaGetScreenPriv(s) ((KaaScreenPrivPtr) \
-    dixLookupPrivate(&(s)->devPrivates, kaaScreenPrivateKey))
-#define KaaScreenPriv(s)	KaaScreenPrivPtr    pKaaScr = KaaGetScreenPriv(s)
-
-#define KaaGetPixmapPriv(p) ((KaaPixmapPrivPtr) \
-    dixLookupPrivate(&(p)->devPrivates, kaaPixmapPrivateKey))
-#define KaaSetPixmapPriv(p,a) \
-    dixSetPrivate(&(p)->devPrivates, kaaPixmapPrivateKey, a)
-#define KaaPixmapPriv(p)	KaaPixmapPrivPtr pKaaPixmap = KaaGetPixmapPriv(p)
-
-typedef struct {
-    KaaScreenInfoPtr info;
-} KaaScreenPrivRec, *KaaScreenPrivPtr;
-
-typedef struct {
-    KdOffscreenArea *area;
-    int		    score;
-    int		    devKind;
-    DevUnion	    devPrivate;
-    Bool	    dirty;
-} KaaPixmapPrivRec, *KaaPixmapPrivPtr;
-
-extern DevPrivateKey kaaScreenPrivateKey;
-extern DevPrivateKey kaaPixmapPrivateKey;
-
-
-void
-kaaPixmapUseScreen (PixmapPtr pPixmap);
-
-void
-kaaPixmapUseMemory (PixmapPtr pPixmap);
-
-void
-kaaDrawableDirty(DrawablePtr pDrawable);
-
-Bool
-kaaDrawableIsOffscreen (DrawablePtr pDrawable);
-
-Bool
-kaaPixmapIsOffscreen(PixmapPtr p);
-
-PixmapPtr
-kaaGetOffscreenPixmap (DrawablePtr pDrawable, int *xp, int *yp);
-
-void
-kaaMoveInPixmap (PixmapPtr pPixmap);
-
-void
-kaaMarkSync (ScreenPtr pScreen);
-
-void
-kaaWaitSync (ScreenPtr pScreen);
-
-void
-kaaCopyNtoN (DrawablePtr    pSrcDrawable,
-	     DrawablePtr    pDstDrawable,
-	     GCPtr	    pGC,
-	     BoxPtr	    pbox,
-	     int	    nbox,
-	     int	    dx,
-	     int	    dy,
-	     Bool	    reverse,
-	     Bool	    upsidedown,
-	     Pixel	    bitplane,
-	     void	    *closure);
-
-void
-kaaComposite(CARD8	op,
-	     PicturePtr pSrc,
-	     PicturePtr pMask,
-	     PicturePtr pDst,
-	     INT16	xSrc,
-	     INT16	ySrc,
-	     INT16	xMask,
-	     INT16	yMask,
-	     INT16	xDst,
-	     INT16	yDst,
-	     CARD16	width,
-	     CARD16	height);
-
-void
-kaaRasterizeTrapezoid(PicturePtr pPict,
-		      xTrapezoid *trap,
-		      int xoff,
-		      int yoff);
-
-void
-kaaInitTrapOffsets(int grid_order, float *x_offsets, float *y_offsets,
-		   float x_offset, float y_offset);
-
-#endif /* _KAA_H_ */
diff --git a/hw/kdrive/src/kaapict.c b/hw/kdrive/src/kaapict.c
deleted file mode 100644
index 501b6b9..0000000
--- a/hw/kdrive/src/kaapict.c
+++ /dev/null
@@ -1,719 +0,0 @@
-/*
- * Copyright © 2001 Keith Packard
- *
- * Partly based on code that is Copyright © The XFree86 Project Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <kdrive-config.h>
-#endif
-#include "kdrive.h"
-#include "kaa.h"
-
-#ifdef RENDER
-#include "mipict.h"
-
-#define KAA_DEBUG_FALLBACKS 0
-
-#if KAA_DEBUG_FALLBACKS
-static void kaaCompositeFallbackPictDesc(PicturePtr pict, char *string, int n)
-{
-    char format[20];
-    char size[20];
-    char loc;
-    int temp;
-
-    if (!pict) {
-	snprintf(string, n, "None");
-	return;
-    }
-
-    switch (pict->format)
-    {
-    case PICT_a8r8g8b8:
-	snprintf(format, 20, "ARGB8888");
-	break;
-    case PICT_r5g6b5:
-	snprintf(format, 20, "RGB565  ");
-	break;
-    case PICT_x1r5g5b5:
-	snprintf(format, 20, "RGB555  ");
-	break;
-    case PICT_a8:
-	snprintf(format, 20, "A8      ");
-	break;
-    case PICT_a1:
-	snprintf(format, 20, "A1      ");
-	break;
-    default:
-	snprintf(format, 20, "0x%x", (int)pict->format);
-	break;
-    }
-
-    loc = kaaGetOffscreenPixmap(pict->pDrawable, &temp, &temp) ? 's' : 'm';
-
-    snprintf(size, 20, "%dx%d%s", pict->pDrawable->width,
-	     pict->pDrawable->height, pict->repeat ?
-	     " R" : "");
-    
-    snprintf(string, n, "0x%lx:%c fmt %s (%s)", (long)pict, loc, format, size);
-}
-
-static void
-kaaPrintCompositeFallback(CARD8 op,
-			  PicturePtr pSrc,
-			  PicturePtr pMask,
-			  PicturePtr pDst)
-{
-    char sop[20];
-    char srcdesc[40], maskdesc[40], dstdesc[40];
-
-    switch(op)
-    {
-    case PictOpSrc:
-	sprintf(sop, "Src");
-	break;
-    case PictOpOver:
-	sprintf(sop, "Over");
-	break;
-    default:
-	sprintf(sop, "0x%x", (int)op);
-	break;
-    }
-    
-    kaaCompositeFallbackPictDesc(pSrc, srcdesc, 40);
-    kaaCompositeFallbackPictDesc(pMask, maskdesc, 40);
-    kaaCompositeFallbackPictDesc(pDst, dstdesc, 40);
-
-    ErrorF("Composite fallback: op %s, \n"
-	   "                    src  %s, \n"
-	   "                    mask %s, \n"
-	   "                    dst  %s, \n", 
-	   sop, srcdesc, maskdesc, dstdesc);
-}
-
-static void
-kaaPrintTrapezoidFallback(PicturePtr pDst)
-{
-    char dstdesc[40];
-
-    kaaCompositeFallbackPictDesc(pDst, dstdesc, 40);
-
-    ErrorF("Trapezoid fallback: dst  %s, %c/%s\n", 
-	   dstdesc,
-	   (pDst->polyMode == PolyModePrecise) ? 'p' : 'i',
-	   (pDst->polyEdge == PolyEdgeSharp) ? "a" : "aa");
-}
-#endif
-
-static Bool
-kaaGetPixelFromRGBA(CARD32	*pixel,
-		    CARD16	red,
-		    CARD16	green,
-		    CARD16	blue,
-		    CARD16	alpha,
-		    CARD32	format)
-{
-    int rbits, bbits, gbits, abits;
-    int rshift, bshift, gshift, ashift;
-
-    *pixel = 0;
-
-    if (!PICT_FORMAT_COLOR(format))
-	return FALSE;
-
-    rbits = PICT_FORMAT_R(format);
-    gbits = PICT_FORMAT_G(format);
-    bbits = PICT_FORMAT_B(format);
-    abits = PICT_FORMAT_A(format);
-
-    if (PICT_FORMAT_TYPE(format) == PICT_TYPE_ARGB) {
-	bshift = 0;
-	gshift = bbits;
-	rshift = gshift + gbits;
-	ashift = rshift + rbits;
-    } else {  /* PICT_TYPE_ABGR */
-	rshift = 0;
-	gshift = rbits;
-	bshift = gshift + gbits;
-	ashift = bshift + bbits;
-    }
-
-    *pixel |=  ( blue >> (16 - bbits)) << bshift;
-    *pixel |=  (  red >> (16 - rbits)) << rshift;
-    *pixel |=  (green >> (16 - gbits)) << gshift;
-    *pixel |=  (alpha >> (16 - abits)) << ashift;
-
-    return TRUE;
-}
-
-
-static Bool
-kaaGetRGBAFromPixel(CARD32	pixel,
-		    CARD16	*red,
-		    CARD16	*green,
-		    CARD16	*blue,
-		    CARD16	*alpha,
-		    CARD32	format)
-{
-    int rbits, bbits, gbits, abits;
-    int rshift, bshift, gshift, ashift;
-    
-    if (!PICT_FORMAT_COLOR(format))
-	return FALSE;
-
-    rbits = PICT_FORMAT_R(format);
-    gbits = PICT_FORMAT_G(format);
-    bbits = PICT_FORMAT_B(format);
-    abits = PICT_FORMAT_A(format);
-
-    if (PICT_FORMAT_TYPE(format) == PICT_TYPE_ARGB) {
-	bshift = 0;
-	gshift = bbits;
-	rshift = gshift + gbits;
-	ashift = rshift + rbits;
-    } else {  /* PICT_TYPE_ABGR */
-	rshift = 0;
-	gshift = rbits;
-	bshift = gshift + gbits;
-	ashift = bshift + bbits;
-    }
- 
-    *red = ((pixel >> rshift ) & ((1 << rbits) - 1)) << (16 - rbits);
-    while (rbits < 16) {
-	*red |= *red >> rbits;
-	rbits <<= 1;
-    }
-
-    *green = ((pixel >> gshift ) & ((1 << gbits) - 1)) << (16 - gbits);
-    while (gbits < 16) {
-	*green |= *green >> gbits;
-	gbits <<= 1;
-    }
- 
-    *blue = ((pixel >> bshift ) & ((1 << bbits) - 1)) << (16 - bbits);
-    while (bbits < 16) {
-	*blue |= *blue >> bbits;
-	bbits <<= 1;
-    }  
-
-    if (abits) {
-	*alpha = ((pixel >> ashift ) & ((1 << abits) - 1)) << (16 - abits);
-	while (abits < 16) {
-	    *alpha |= *alpha >> abits;
-	    abits <<= 1;
-	}     
-    } else
-	*alpha = 0xffff;
-
-    return TRUE;
-}
-
-static int
-kaaTryDriverSolidFill(PicturePtr	pSrc,
-		      PicturePtr	pDst,
-		      INT16		xSrc,
-		      INT16		ySrc,
-		      INT16		xDst,
-		      INT16		yDst,
-		      CARD16		width,
-		      CARD16		height)
-{
-    KaaScreenPriv (pDst->pDrawable->pScreen);
-    RegionRec region;
-    BoxPtr pbox;
-    int nbox;
-    int dst_off_x, dst_off_y;
-    PixmapPtr pSrcPix, pDstPix;
-    CARD32 pixel;
-    CARD16 red, green, blue, alpha;
-
-    xDst += pDst->pDrawable->x;
-    yDst += pDst->pDrawable->y;
-    xSrc += pSrc->pDrawable->x;
-    ySrc += pSrc->pDrawable->y;
-
-    if (!miComputeCompositeRegion (&region, pSrc, NULL, pDst,
-				   xSrc, ySrc, 0, 0, xDst, yDst,
-				   width, height))
-	return 1;
-
-    if (pSrc->pDrawable->type == DRAWABLE_PIXMAP)
-	kaaPixmapUseMemory ((PixmapPtr) pSrc->pDrawable);
-    if (pDst->pDrawable->type == DRAWABLE_PIXMAP)
-	kaaPixmapUseScreen ((PixmapPtr) pDst->pDrawable);
-
-    pDstPix = kaaGetOffscreenPixmap (pDst->pDrawable, &dst_off_x, &dst_off_y);
-    if (!pDstPix) {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return 0;
-    }
-
-    if (pSrc->pDrawable->type == DRAWABLE_WINDOW)
-	pSrcPix = (*pSrc->pDrawable->pScreen->GetWindowPixmap)(
-	    (WindowPtr) (pSrc->pDrawable));
-    else
-	pSrcPix = (PixmapPtr) (pSrc->pDrawable);
-
-    /* If source is offscreen, we need to sync the accelerator
-     * before accessing it.  We'd prefer for it to be in memory.
-     */
-    if (kaaPixmapIsOffscreen(pSrcPix)) {
-	kaaWaitSync(pDst->pDrawable->pScreen);
-    }
-
-    pixel = *(CARD32 *)(pSrcPix->devPrivate.ptr);
-    if (!kaaGetRGBAFromPixel(pixel, &red, &green, &blue, &alpha,
-			 pSrc->format))
-    {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return -1;
-    }
-    kaaGetPixelFromRGBA(&pixel, red, green, blue, alpha,
-			pDst->format);
-
-    if (!(*pKaaScr->info->PrepareSolid) (pDstPix, GXcopy, 0xffffffff, pixel))
-    {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return -1;
-    }
-
-    nbox = REGION_NUM_RECTS(&region);
-    pbox = REGION_RECTS(&region);
-    while (nbox--)
-    {
-	(*pKaaScr->info->Solid) (pbox->x1 + dst_off_x,
-				 pbox->y1 + dst_off_y,
-				 pbox->x2 + dst_off_x,
-				 pbox->y2 + dst_off_y);
-	pbox++;
-    }
-
-    (*pKaaScr->info->DoneSolid) ();
-    kaaMarkSync (pDst->pDrawable->pScreen);
-    kaaDrawableDirty (pDst->pDrawable);
-
-    REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-    return 1;
-}
-
-static int
-kaaTryDriverBlend(CARD8		op,
-		  PicturePtr	pSrc,
-		  PicturePtr	pDst,
-		  INT16		xSrc,
-		  INT16		ySrc,
-		  INT16		xDst,
-		  INT16		yDst,
-		  CARD16	width,
-		  CARD16	height)
-{
-    KaaScreenPriv (pDst->pDrawable->pScreen);
-    RegionRec region;
-    BoxPtr pbox;
-    int nbox;
-    int src_off_x, src_off_y, dst_off_x, dst_off_y;
-    PixmapPtr pSrcPix, pDstPix;
-    struct _Pixmap srcScratch;
-
-    xDst += pDst->pDrawable->x;
-    yDst += pDst->pDrawable->y;
-
-    xSrc += pSrc->pDrawable->x;
-    ySrc += pSrc->pDrawable->y;
-
-    if (!miComputeCompositeRegion (&region, pSrc, NULL, pDst,
-				   xSrc, ySrc, 0, 0, xDst, yDst,
-				   width, height))
-	return 1;
-
-
-    if (pSrc->pDrawable->type == DRAWABLE_PIXMAP)
-	kaaPixmapUseScreen ((PixmapPtr) pSrc->pDrawable);
-    if (pDst->pDrawable->type == DRAWABLE_PIXMAP)
-	kaaPixmapUseScreen ((PixmapPtr) pDst->pDrawable);
-    
-    pSrcPix = kaaGetOffscreenPixmap (pSrc->pDrawable, &src_off_x, &src_off_y);
-    pDstPix = kaaGetOffscreenPixmap (pDst->pDrawable, &dst_off_x, &dst_off_y);
-
-    if (!pDstPix) {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return 0;
-    }
-
-    if (!pSrcPix && pKaaScr->info->UploadToScratch) {
-	if ((*pKaaScr->info->UploadToScratch) ((PixmapPtr) pSrc->pDrawable,
-					       &srcScratch))
-	    pSrcPix = &srcScratch;
-    }
-
-    if (!pSrcPix) {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return 0;
-    }
-
-    if (!(*pKaaScr->info->PrepareBlend) (op, pSrc, pDst, pSrcPix,
-					 pDstPix))
-    {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return -1;
-    }
-    
-    nbox = REGION_NUM_RECTS(&region);
-    pbox = REGION_RECTS(&region);
-
-    xSrc -= xDst;
-    ySrc -= yDst;
-
-    while (nbox--)
-    {
-	(*pKaaScr->info->Blend) (pbox->x1 + xSrc + src_off_x,
-				 pbox->y1 + ySrc + src_off_y,
-				 pbox->x1 + dst_off_x,
-				 pbox->y1 + dst_off_y,
-				 pbox->x2 - pbox->x1,
-				 pbox->y2 - pbox->y1);
-	pbox++;
-    }
-    
-    (*pKaaScr->info->DoneBlend) ();
-    kaaMarkSync (pDst->pDrawable->pScreen);
-    kaaDrawableDirty (pDst->pDrawable);
-
-    REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-    return 1;
-}
-
-static int
-kaaTryDriverComposite(CARD8		op,
-		      PicturePtr	pSrc,
-		      PicturePtr	pMask,
-		      PicturePtr	pDst,
-		      INT16		xSrc,
-		      INT16		ySrc,
-		      INT16		xMask,
-		      INT16		yMask,
-		      INT16		xDst,
-		      INT16		yDst,
-		      CARD16		width,
-		      CARD16		height)
-{
-    KaaScreenPriv (pDst->pDrawable->pScreen);
-    RegionRec region;
-    BoxPtr pbox;
-    int nbox;
-    int src_off_x, src_off_y, mask_off_x, mask_off_y, dst_off_x, dst_off_y;
-    PixmapPtr pSrcPix, pMaskPix = NULL, pDstPix;
-    struct _Pixmap scratch;
-
-    xDst += pDst->pDrawable->x;
-    yDst += pDst->pDrawable->y;
-
-    if (pMask) {
-	xMask += pMask->pDrawable->x;
-	yMask += pMask->pDrawable->y;
-    }
-
-    xSrc += pSrc->pDrawable->x;
-    ySrc += pSrc->pDrawable->y;
-
-    if (!miComputeCompositeRegion (&region, pSrc, pMask, pDst,
-				   xSrc, ySrc, xMask, yMask, xDst, yDst,
-				   width, height))
-	return 1;
-
-    if (pKaaScr->info->CheckComposite &&
-	!(*pKaaScr->info->CheckComposite) (op, pSrc, pMask, pDst))
-    {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return -1;
-    }
-
-    if (pSrc->pDrawable->type == DRAWABLE_PIXMAP)
-	kaaPixmapUseScreen ((PixmapPtr) pSrc->pDrawable);
-    if (pMask && pMask->pDrawable->type == DRAWABLE_PIXMAP)
-	kaaPixmapUseScreen ((PixmapPtr) pMask->pDrawable);
-    if (pDst->pDrawable->type == DRAWABLE_PIXMAP)
-	kaaPixmapUseScreen ((PixmapPtr) pDst->pDrawable);
-
-    pSrcPix = kaaGetOffscreenPixmap (pSrc->pDrawable, &src_off_x, &src_off_y);
-    if (pMask)
-	pMaskPix = kaaGetOffscreenPixmap (pMask->pDrawable, &mask_off_x,
-					  &mask_off_y);
-    pDstPix = kaaGetOffscreenPixmap (pDst->pDrawable, &dst_off_x, &dst_off_y);
-
-    if (!pDstPix) {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return 0;
-    }
-
-    if (!pSrcPix && (!pMask || pMaskPix) && pKaaScr->info->UploadToScratch) {
-	if (pSrc->pDrawable->type == DRAWABLE_WINDOW)
-	    pSrcPix = (*pSrc->pDrawable->pScreen->GetWindowPixmap) (
-		(WindowPtr) pSrc->pDrawable);
-	else
-	    pSrcPix = (PixmapPtr) pSrc->pDrawable;
-	if ((*pKaaScr->info->UploadToScratch) (pSrcPix, &scratch))
-	    pSrcPix = &scratch;
-    } else if (pSrcPix && pMask && !pMaskPix && pKaaScr->info->UploadToScratch) {
-	if (pMask->pDrawable->type == DRAWABLE_WINDOW)
-	    pMaskPix = (*pMask->pDrawable->pScreen->GetWindowPixmap) (
-		(WindowPtr) pMask->pDrawable);
-	else
-	    pMaskPix = (PixmapPtr) pMask->pDrawable;
-	if ((*pKaaScr->info->UploadToScratch) (pMaskPix, &scratch))
-	    pMaskPix = &scratch;
-    }
-
-    if (!pSrcPix || (pMask && !pMaskPix)) {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return 0;
-    }
-
-    if (!(*pKaaScr->info->PrepareComposite) (op, pSrc, pMask, pDst, pSrcPix,
-					     pMaskPix, pDstPix))
-    {
-	REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-	return -1;
-    }
-
-    nbox = REGION_NUM_RECTS(&region);
-    pbox = REGION_RECTS(&region);
-
-    xMask -= xDst;
-    yMask -= yDst;
-
-    xSrc -= xDst;
-    ySrc -= yDst;
-
-    while (nbox--)
-    {
-	(*pKaaScr->info->Composite) (pbox->x1 + xSrc + src_off_x,
-				     pbox->y1 + ySrc + src_off_y,
-				     pbox->x1 + xMask + mask_off_x,
-				     pbox->y1 + yMask + mask_off_y,
-				     pbox->x1 + dst_off_x,
-				     pbox->y1 + dst_off_y,
-				     pbox->x2 - pbox->x1,
-				     pbox->y2 - pbox->y1);
-	pbox++;
-    }
-
-    (*pKaaScr->info->DoneComposite) ();
-    kaaMarkSync (pDst->pDrawable->pScreen);
-    kaaDrawableDirty (pDst->pDrawable);
-
-    REGION_UNINIT(pDst->pDrawable->pScreen, &region);
-    return 1;
-}
-
-
-void
-kaaComposite(CARD8	op,
-	     PicturePtr pSrc,
-	     PicturePtr pMask,
-	     PicturePtr pDst,
-	     INT16	xSrc,
-	     INT16	ySrc,
-	     INT16	xMask,
-	     INT16	yMask,
-	     INT16	xDst,
-	     INT16	yDst,
-	     CARD16	width,
-	     CARD16	height)
-{
-    KdScreenPriv (pDst->pDrawable->pScreen);
-    KaaScreenPriv (pDst->pDrawable->pScreen);
-    int ret = -1;
-
-    if (!pMask && pSrc->pDrawable)
-    {
-	if (op == PictOpSrc)
-	{
-	    if (pScreenPriv->enabled && pSrc->pDrawable && pSrc->pDrawable->width == 1 &&
-		pSrc->pDrawable->height == 1 && pSrc->repeat)
-	    {
-		ret = kaaTryDriverSolidFill(pSrc, pDst, xSrc, ySrc, xDst, yDst,
-					    width, height);
-		if (ret == 1)
-		    return;
-	    }
-	    else if (!pSrc->repeat && !pSrc->transform &&
-		     pSrc->format == pDst->format)
-	    {
-		RegionRec	region;
-
-		xDst += pDst->pDrawable->x;
-		yDst += pDst->pDrawable->y;
-		xSrc += pSrc->pDrawable->x;
-		ySrc += pSrc->pDrawable->y;
-
-		if (!miComputeCompositeRegion (&region, pSrc, pMask, pDst,
-					       xSrc, ySrc, xMask, yMask, xDst,
-					       yDst, width, height))
-		    return;
-
-
-		kaaCopyNtoN (pSrc->pDrawable, pDst->pDrawable, 0,
-			     REGION_RECTS(&region), REGION_NUM_RECTS(&region),
-			     xSrc - xDst, ySrc - yDst,
-			     FALSE, FALSE, 0, 0);
-		return;
-	    }
-	}
-
-	if (pScreenPriv->enabled && pKaaScr->info->PrepareBlend &&
-	    !pSrc->alphaMap && !pDst->alphaMap)
-	{
-	    ret = kaaTryDriverBlend(op, pSrc, pDst, xSrc, ySrc, xDst, yDst,
-				    width, height);
-	    if (ret == 1)
-		return;
-	}
-    }
-
-    if (pSrc->pDrawable && (!pMask || pMask->pDrawable) &&
-        pScreenPriv->enabled && pKaaScr->info->PrepareComposite &&
-	!pSrc->alphaMap && (!pMask || !pMask->alphaMap) && !pDst->alphaMap)
-    {
-	ret = kaaTryDriverComposite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask,
-				    yMask, xDst, yDst, width, height);
-	if (ret == 1)
-	    return;
-    }
-
-    if (ret != 0) {
-	/* failure to accelerate was not due to pixmaps being in the wrong
-	 * locations.
-	 */
-	if (pSrc->pDrawable->type == DRAWABLE_PIXMAP)
-	    kaaPixmapUseMemory ((PixmapPtr) pSrc->pDrawable);
-	if (pMask && pMask->pDrawable->type == DRAWABLE_PIXMAP)
-	    kaaPixmapUseMemory ((PixmapPtr) pMask->pDrawable);
-	if (pDst->pDrawable->type == DRAWABLE_PIXMAP)
-	    kaaPixmapUseMemory ((PixmapPtr) pDst->pDrawable);
-    }
-
-#if KAA_DEBUG_FALLBACKS
-    kaaPrintCompositeFallback (op, pSrc, pMask, pDst);
-#endif
-
-    KdCheckComposite (op, pSrc, pMask, pDst, xSrc, ySrc, 
-		      xMask, yMask, xDst, yDst, width, height);
-}
-#endif
-
-static xFixed
-miLineFixedX (xLineFixed *l, xFixed y, Bool ceil)
-{
-    xFixed	    dx = l->p2.x - l->p1.x;
-    xFixed_32_32    ex = (xFixed_32_32) (y - l->p1.y) * dx;
-    xFixed	    dy = l->p2.y - l->p1.y;
-    if (ceil)
-	ex += (dy - 1);
-    return l->p1.x + (xFixed) (ex / dy);
-}
-
-/* Need to decide just how much to trim, to maintain translation independence
- * when converted to floating point.
- */
-#define XFIXED_TO_FLOAT(x) (((float)((x) & 0xffffff00)) / 65536.0)
-
-/* This is just to allow us to work on the hardware side of the problem while
- * waiting for cairo to get a new tesselator.  We may not be able to support
- * RasterizeTrapezoid at all due to the abutting edges requirement, but it might
- * be technically legal if we widened the trap by some epsilon, so that alpha
- * values at abutting edges were a little too big and capped at one, rather than
- * a little too small and looked bad.
- */
-void kaaRasterizeTrapezoid(PicturePtr pDst,
-			   xTrapezoid *trap,
-			   int xoff,
-			   int yoff)
-{
-    KdScreenPriv (pDst->pDrawable->pScreen);
-    KaaScreenPriv (pDst->pDrawable->pScreen);
-    KaaTrapezoid ktrap;
-    PixmapPtr pPix;
-    xFixed x1, x2;
-
-    if (!pScreenPriv->enabled ||
-	!pKaaScr->info->PrepareTrapezoids ||
-	pDst->pDrawable->type != DRAWABLE_PIXMAP ||
-        pDst->alphaMap || pDst->format != PICT_a8)
-    {
-	KdCheckRasterizeTrapezoid (pDst, trap, xoff, yoff);
-#if KAA_DEBUG_FALLBACKS
-	kaaPrintTrapezoidFallback (pDst);
-#endif
-	return;
-    }
-    pPix = (PixmapPtr)pDst->pDrawable;
-
-    kaaPixmapUseScreen (pPix);
-
-    if (!kaaPixmapIsOffscreen (pPix) ||
-	!(*pKaaScr->info->PrepareTrapezoids) (pDst, pPix))
-    {
-#if KAA_DEBUG_FALLBACKS
-	kaaPrintTrapezoidFallback (pDst);
-#endif
-	KdCheckRasterizeTrapezoid (pDst, trap, xoff, yoff);
-	return;
-    }
-
-    ktrap.ty = XFIXED_TO_FLOAT(trap->top) + yoff;
-    x1 = miLineFixedX (&trap->left, trap->top, FALSE);
-    x2 = miLineFixedX (&trap->right, trap->top, TRUE);
-    ktrap.tl = XFIXED_TO_FLOAT(x1) + xoff;
-    ktrap.tr = XFIXED_TO_FLOAT(x2) + xoff;
-    ktrap.by = XFIXED_TO_FLOAT(trap->bottom) + yoff;
-    x1 = miLineFixedX (&trap->left, trap->bottom, FALSE);
-    x2 = miLineFixedX (&trap->right, trap->bottom, TRUE);
-    ktrap.bl = XFIXED_TO_FLOAT(x1) + xoff;
-    ktrap.br = XFIXED_TO_FLOAT(x2) + xoff;
-
-    (*pKaaScr->info->Trapezoids) (&ktrap, 1);
-    (*pKaaScr->info->DoneTrapezoids) ();
-}
-
-void
-kaaInitTrapOffsets(int grid_order, float *x_offsets, float *y_offsets,
-		   float x_offset, float y_offset)
-{
-    int i = 0;
-    float x, y, x_count, y_count;
-
-    x_count = (1 << (grid_order / 2)) + 1;
-    y_count = (1 << (grid_order / 2)) - 1;
-
-    x_offset += 1.0 / x_count / 2.0;
-    y_offset += 1.0 / y_count / 2.0;
-
-    for (x = 0; x < x_count; x++) {
-	for (y = 0; y < y_count; y++) {
-	    x_offsets[i] = x / x_count + x_offset;
-	    y_offsets[i] = y / y_count + y_offset;
-	    i++;
-	}
-    }
-}
-
diff --git a/hw/kdrive/src/kasync.c b/hw/kdrive/src/kasync.c
deleted file mode 100644
index 5388f21..0000000
--- a/hw/kdrive/src/kasync.c
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
- * Copyright © 1999 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <kdrive-config.h>
-#endif
-#include "kdrive.h"
-#include "kaa.h"
-#include "picturestr.h"
-#include "mipict.h"
-#include "fbpict.h"
-
-/*
- * These functions wrap the low-level fb rendering functions and
- * synchronize framebuffer/accelerated drawing by stalling until
- * the accelerator is idle
- */
-
-void
-KdCheckFillSpans  (DrawablePtr pDrawable, GCPtr pGC, int nspans,
-		   DDXPointPtr ppt, int *pwidth, int fSorted)
-{
-    kaaWaitSync (pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbFillSpans (pDrawable, pGC, nspans, ppt, pwidth, fSorted);
-}
-
-void
-KdCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
-		 DDXPointPtr ppt, int *pwidth, int nspans, int fSorted)
-{
-    kaaWaitSync (pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbSetSpans (pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted);
-}
-
-void
-KdCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth,
-		 int x, int y, int w, int h, int leftPad, int format,
-		 char *bits)
-{
-    kaaWaitSync (pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits);
-}
-
-RegionPtr
-KdCheckCopyArea (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
-		 int srcx, int srcy, int w, int h, int dstx, int dsty)
-{
-    kaaWaitSync (pSrc->pScreen);
-    kaaDrawableDirty (pDst);
-    return fbCopyArea (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
-}
-
-RegionPtr
-KdCheckCopyPlane (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
-		  int srcx, int srcy, int w, int h, int dstx, int dsty,
-		  unsigned long bitPlane)
-{
-    kaaWaitSync (pSrc->pScreen);
-    kaaDrawableDirty (pDst);
-    return fbCopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty,
-			bitPlane);
-}
-
-void
-KdCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
-		  DDXPointPtr pptInit)
-{
-    kaaWaitSync (pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbPolyPoint (pDrawable, pGC, mode, npt, pptInit);
-}
-
-void
-KdCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
-		  int mode, int npt, DDXPointPtr ppt)
-{
-
-    if (pGC->lineWidth == 0) {
-	kaaWaitSync(pDrawable->pScreen);
-	kaaDrawableDirty (pDrawable);
-    }
-    kaaDrawableDirty (pDrawable);
-    fbPolyLine (pDrawable, pGC, mode, npt, ppt);
-}
-
-void
-KdCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC, 
-		    int nsegInit, xSegment *pSegInit)
-{
-    if (pGC->lineWidth == 0) {
-	kaaWaitSync(pDrawable->pScreen);
-	kaaDrawableDirty (pDrawable);
-    }
-    kaaDrawableDirty (pDrawable);
-    fbPolySegment (pDrawable, pGC, nsegInit, pSegInit);
-}
-
-void
-KdCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC, 
-		      int nrects, xRectangle *prect)
-{
-    if (pGC->lineWidth == 0) {
-	kaaWaitSync(pDrawable->pScreen);
-	kaaDrawableDirty (pDrawable);
-    }
-    fbPolyRectangle (pDrawable, pGC, nrects, prect);
-}
-
-void
-KdCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC, 
-		int narcs, xArc *pArcs)
-{
-    if (pGC->lineWidth == 0)
-    {
-	kaaWaitSync(pDrawable->pScreen);
-	kaaDrawableDirty (pDrawable);
-	fbPolyArc (pDrawable, pGC, narcs, pArcs);
-    }
-    else
-	miPolyArc (pDrawable, pGC, narcs, pArcs);
-}
-
-#if 0
-void
-KdCheckFillPolygon (DrawablePtr pDrawable, GCPtr pGC, 
-		    int shape, int mode, int count, DDXPointPtr pPts)
-{
-    kaaWaitSync(pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbFillPolygon (pDrawable, pGC, mode, count, pPts);
-}
-#endif
-
-void
-KdCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
-		     int nrect, xRectangle *prect)
-{
-    kaaWaitSync(pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbPolyFillRect (pDrawable, pGC, nrect, prect);
-}
-
-void
-KdCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC, 
-		    int narcs, xArc *pArcs)
-{
-    kaaWaitSync(pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbPolyFillArc (pDrawable, pGC, narcs, pArcs);
-}
-
-void
-KdCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
-		      int x, int y, unsigned int nglyph,
-		      CharInfoPtr *ppci, pointer pglyphBase)
-{
-    kaaWaitSync(pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
-}
-
-void
-KdCheckPolyGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
-		     int x, int y, unsigned int nglyph,
-		     CharInfoPtr *ppci, pointer pglyphBase)
-{
-    kaaWaitSync(pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbPolyGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase);
-}
-
-void
-KdCheckPushPixels (GCPtr pGC, PixmapPtr pBitmap,
-		   DrawablePtr pDrawable,
-		   int w, int h, int x, int y)
-{
-    kaaWaitSync(pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbPushPixels (pGC, pBitmap, pDrawable, w, h, x, y);
-}
-
-void
-KdCheckGetImage (DrawablePtr pDrawable,
-		 int x, int y, int w, int h,
-		 unsigned int format, unsigned long planeMask,
-		 char *d)
-{
-    kaaWaitSync(pDrawable->pScreen);
-    fbGetImage (pDrawable, x, y, w, h, format, planeMask, d);
-}
-
-void
-KdCheckGetSpans (DrawablePtr pDrawable,
-		 int wMax,
-		 DDXPointPtr ppt,
-		 int *pwidth,
-		 int nspans,
-		 char *pdstStart)
-{
-    kaaWaitSync(pDrawable->pScreen);
-    fbGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart);
-}
-
-void
-KdCheckCopyWindow (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
-{
-    kaaWaitSync (pWin->drawable.pScreen);
-    kaaDrawableDirty ((DrawablePtr)pWin);
-    fbCopyWindow (pWin, ptOldOrg, prgnSrc);
-}
-
-#if KD_MAX_FB > 1
-void
-KdCheckPaintKey(DrawablePtr  pDrawable,
-		RegionPtr    pRegion,
-		CARD32       pixel,
-		int          layer)
-{
-    kaaWaitSync (pDrawable->pScreen);
-    kaaDrawableDirty (pDrawable);
-    fbOverlayPaintKey (pDrawable,  pRegion, pixel, layer);
-}
-
-void
-KdCheckOverlayCopyWindow  (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
-{
-    kaaWaitSync (pWin->drawable.pScreen);
-    kaaDrawableDirty ((DrawablePtr)pWin);
-    fbOverlayCopyWindow (pWin, ptOldOrg, prgnSrc);
-}
-#endif
-
-void
-KdScreenInitAsync (ScreenPtr pScreen)
-{
-    pScreen->GetImage = KdCheckGetImage;
-    pScreen->GetSpans = KdCheckGetSpans;
-    pScreen->CopyWindow = KdCheckCopyWindow;
-#ifdef RENDER
-    KdPictureInitAsync (pScreen);
-#endif
-}
-
-void
-KdCheckComposite (CARD8      op,
-		  PicturePtr pSrc,
-		  PicturePtr pMask,
-		  PicturePtr pDst,
-		  INT16      xSrc,
-		  INT16      ySrc,
-		  INT16      xMask,
-		  INT16      yMask,
-		  INT16      xDst,
-		  INT16      yDst,
-		  CARD16     width,
-		  CARD16     height)
-{
-    kaaWaitSync (pDst->pDrawable->pScreen);
-    kaaDrawableDirty (pDst->pDrawable);
-    fbComposite (op,
-		 pSrc,
-		 pMask,
-		 pDst,
-		 xSrc,
-		 ySrc,
-		 xMask,
-		 yMask,
-		 xDst,
-		 yDst,
-		 width,
-		 height);
-}
-
-void
-KdCheckRasterizeTrapezoid(PicturePtr	pMask,
-			  xTrapezoid	*trap,
-			  int		x_off,
-			  int		y_off)
-{
-    kaaWaitSync (pMask->pDrawable->pScreen);
-    kaaDrawableDirty (pMask->pDrawable);
-    fbRasterizeTrapezoid (pMask, trap, x_off, y_off);
-}
-
-/*
- * Only need to stall for copyarea/copyplane
- */
-const GCOps kdAsyncPixmapGCOps = {
-    fbFillSpans,
-    fbSetSpans,
-    fbPutImage,
-    KdCheckCopyArea,
-    KdCheckCopyPlane,
-    fbPolyPoint,
-    fbPolyLine,
-    fbPolySegment,
-    fbPolyRectangle,
-    fbPolyArc,
-    fbFillPolygon,
-    fbPolyFillRect,
-    fbPolyFillArc,
-    miPolyText8,
-    miPolyText16,
-    miImageText8,
-    miImageText16,
-    fbImageGlyphBlt,
-    fbPolyGlyphBlt,
-    fbPushPixels
-};
-
-void
-KdPictureInitAsync (ScreenPtr pScreen)
-{
-    PictureScreenPtr    ps;
-
-    ps = GetPictureScreen(pScreen);
-    ps->Composite = KdCheckComposite;
-    ps->RasterizeTrapezoid = KdCheckRasterizeTrapezoid;
-}
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
index 4e04b59..3e5af3a 100644
--- a/hw/kdrive/src/kdrive.h
+++ b/hw/kdrive/src/kdrive.h
@@ -515,119 +515,6 @@ extern KdOsFuncs	*kdOsFuncs;
     dixSetPrivate(&(pScreen)->devPrivates, kdScreenPrivateKey, v)
 #define KdScreenPriv(pScreen) KdPrivScreenPtr pScreenPriv = KdGetScreenPriv(pScreen)
 
-/* kaa.c */
-Bool
-kaaDrawInit (ScreenPtr	        pScreen,
-	     KaaScreenInfoPtr   pScreenInfo);
-
-void
-kaaDrawFini (ScreenPtr	        pScreen);
-
-void
-kaaWrapGC (GCPtr pGC);
-
-void
-kaaUnwrapGC (GCPtr pGC);
-
-/* kasync.c */
-void
-KdCheckFillSpans  (DrawablePtr pDrawable, GCPtr pGC, int nspans,
-		   DDXPointPtr ppt, int *pwidth, int fSorted);
-
-void
-KdCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
-		 DDXPointPtr ppt, int *pwidth, int nspans, int fSorted);
-
-void
-KdCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth,
-		 int x, int y, int w, int h, int leftPad, int format,
-		 char *bits);
-
-RegionPtr
-KdCheckCopyArea (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
-		 int srcx, int srcy, int w, int h, int dstx, int dsty);
-
-RegionPtr
-KdCheckCopyPlane (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
-		  int srcx, int srcy, int w, int h, int dstx, int dsty,
-		  unsigned long bitPlane);
-
-void
-KdCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
-		  DDXPointPtr pptInit);
-
-void
-KdCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
-		  int mode, int npt, DDXPointPtr ppt);
-
-void
-KdCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
-		    int nsegInit, xSegment *pSegInit);
-
-void
-KdCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC, 
-		      int nrects, xRectangle *prect);
-
-void
-KdCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC, 
-		int narcs, xArc *pArcs);
-
-#define KdCheckFillPolygon	miFillPolygon
-
-void
-KdCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
-		     int nrect, xRectangle *prect);
-
-void
-KdCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC, 
-		    int narcs, xArc *pArcs);
-
-void
-KdCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
-		      int x, int y, unsigned int nglyph,
-		      CharInfoPtr *ppci, pointer pglyphBase);
-
-void
-KdCheckPolyGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
-		     int x, int y, unsigned int nglyph,
-		     CharInfoPtr *ppci, pointer pglyphBase);
-
-void
-KdCheckPushPixels (GCPtr pGC, PixmapPtr pBitmap,
-		   DrawablePtr pDrawable,
-		   int w, int h, int x, int y);
-
-void
-KdCheckGetImage (DrawablePtr pDrawable,
-		 int x, int y, int w, int h,
-		 unsigned int format, unsigned long planeMask,
-		 char *d);
-
-void
-KdCheckGetSpans (DrawablePtr pDrawable,
-		 int wMax,
-		 DDXPointPtr ppt,
-		 int *pwidth,
-		 int nspans,
-		 char *pdstStart);
-
-void
-KdCheckCopyWindow (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
-
-void
-KdCheckPaintKey(DrawablePtr  pDrawable,
-		RegionPtr    pRegion,
-		CARD32       pixel,
-		int          layer);
-
-void
-KdCheckOverlayCopyWindow  (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
-
-void
-KdScreenInitAsync (ScreenPtr pScreen);
-    
-extern const GCOps	kdAsyncPixmapGCOps;
-
 /* knoop.c */
 extern GCOps		kdNoopOps;
 
@@ -921,32 +808,6 @@ KdRandRGetTiming (ScreenPtr	    pScreen,
 		  RRScreenSizePtr   pSize);
 #endif
 
-/* kpict.c */
-void
-KdPictureInitAsync (ScreenPtr pScreen);
-
-#ifdef RENDER
-void
-KdCheckComposite (CARD8      op,
-		  PicturePtr pSrc,
-		  PicturePtr pMask,
-		  PicturePtr pDst,
-		  INT16      xSrc,
-		  INT16      ySrc,
-		  INT16      xMask,
-		  INT16      yMask,
-		  INT16      xDst,
-		  INT16      yDst,
-		  CARD16     width,
-		  CARD16     height);
-
-void
-KdCheckRasterizeTrapezoid(PicturePtr	pMask,
-			  xTrapezoid	*trap,
-			  int		x_off,
-			  int		y_off);
-#endif
-
 /* kshadow.c */
 Bool
 KdShadowFbAlloc (KdScreenInfo *screen, int fb, Bool rotate);
diff --git a/hw/kdrive/src/koffscreen.c b/hw/kdrive/src/koffscreen.c
index efe0364..f6ef52f 100644
--- a/hw/kdrive/src/koffscreen.c
+++ b/hw/kdrive/src/koffscreen.c
@@ -24,7 +24,6 @@
 #include <kdrive-config.h>
 #endif
 #include "kdrive.h"
-#include "kaa.h"
 
 #define DEBUG_OFFSCREEN 0
 #if DEBUG_OFFSCREEN


More information about the xorg-commit mailing list