summaryrefslogtreecommitdiff
path: root/hw/kdrive/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2004-05-20 05:27:03 +0000
committerKeith Packard <keithp@keithp.com>2004-05-20 05:27:03 +0000
commitb9d920f3dc060d230a4a7b2d40210524acf50666 (patch)
tree8cc234ab89b01ea35ef54863a0ecd22e00483961 /hw/kdrive/src
parent94648799c82e59166155ca5abf22a9391693e6a1 (diff)
Fix SYNC_ALWAYS (debugging) code to use mach64WaitIdle instead of
KdCheckSync -- the boolean used in the latter won't be set yet. Oops. == instead of =. Must sync hardware before rasterizing trapezoids in case the mask is in off-screen memory and has just been erased. Yes, it is silly to place masks in off-screen memory. That's a separate issue.
Diffstat (limited to 'hw/kdrive/src')
-rw-r--r--hw/kdrive/src/kaa.c2
-rw-r--r--hw/kdrive/src/kdrive.h6
-rw-r--r--hw/kdrive/src/kpict.c11
3 files changed, 18 insertions, 1 deletions
diff --git a/hw/kdrive/src/kaa.c b/hw/kdrive/src/kaa.c
index 616c0ef91..4a3350089 100644
--- a/hw/kdrive/src/kaa.c
+++ b/hw/kdrive/src/kaa.c
@@ -291,7 +291,7 @@ kaaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth)
return NULL;
pKaaPixmap = KaaGetPixmapPriv(pPixmap);
if (!w || !h)
- pKaaPixmap->score == KAA_PIXMAP_SCORE_PINNED;
+ pKaaPixmap->score = KAA_PIXMAP_SCORE_PINNED;
else
pKaaPixmap->score = KAA_PIXMAP_SCORE_INIT;
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
index c0fae276e..a8015e7ab 100644
--- a/hw/kdrive/src/kdrive.h
+++ b/hw/kdrive/src/kdrive.h
@@ -849,6 +849,12 @@ KdCheckComposite (CARD8 op,
INT16 yDst,
CARD16 width,
CARD16 height);
+
+void
+KdCheckRasterizeTrapezoid(PicturePtr pMask,
+ xTrapezoid *trap,
+ int x_off,
+ int y_off);
#endif
/* kshadow.c */
diff --git a/hw/kdrive/src/kpict.c b/hw/kdrive/src/kpict.c
index 25fb449a0..d1709b68e 100644
--- a/hw/kdrive/src/kpict.c
+++ b/hw/kdrive/src/kpict.c
@@ -60,10 +60,21 @@ KdCheckComposite (CARD8 op,
}
void
+KdCheckRasterizeTrapezoid(PicturePtr pMask,
+ xTrapezoid *trap,
+ int x_off,
+ int y_off)
+{
+ KdCheckSync (pMask->pDrawable->pScreen);
+ fbRasterizeTrapezoid (pMask, trap, x_off, y_off);
+}
+
+void
KdPictureInitAsync (ScreenPtr pScreen)
{
PictureScreenPtr ps;
ps = GetPictureScreen(pScreen);
ps->Composite = KdCheckComposite;
+ ps->RasterizeTrapezoid = KdCheckRasterizeTrapezoid;
}