diff options
-rw-r--r-- | src/savage_dri.c | 10 | ||||
-rw-r--r-- | src/savage_exa.c | 3 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/savage_dri.c b/src/savage_dri.c index cefe1a7..6f79d94 100644 --- a/src/savage_dri.c +++ b/src/savage_dri.c @@ -352,7 +352,10 @@ static void SAVAGEWakeupHandler( int screenNum, pointer wakeupData, #endif psav->ShadowCounter = psav->ShadowVirtual[1023] & 0xffff; } - psav->AccelInfoRec->NeedToSync = TRUE; + if (psav->useEXA) + exaMarkSync(pScreen); + else + psav->AccelInfoRec->NeedToSync = TRUE; /* FK: this flag doesn't seem to be used. */ } @@ -1535,7 +1538,10 @@ SAVAGEDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg, } BCI_SEND(0xc0020000); /* wait for 2D idle */ - psav->AccelInfoRec->NeedToSync = TRUE; + if (psav->useEXA) + exaMarkSync(pScreen); + else + psav->AccelInfoRec->NeedToSync = TRUE; } static void diff --git a/src/savage_exa.c b/src/savage_exa.c index 942fe86..8e6da38 100644 --- a/src/savage_exa.c +++ b/src/savage_exa.c @@ -431,13 +431,14 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int /*ErrorF("in UTS\n");*/ - psav->WaitQueue(psav, 5); + psav->WaitQueue(psav, 6); BCI_SEND(cmd); /* dst */ BCI_SEND(psav->sbd_offset); BCI_SEND(psav->sbd_high); + BCI_SEND(BCI_CLIP_LR(x, x+w-1)); BCI_SEND(BCI_X_Y(x, y)); BCI_SEND(BCI_W_H(w, h)); |