diff options
author | Arthur Huillet <arthur.huillet@free.fr> | 2007-07-15 01:00:19 +0200 |
---|---|---|
committer | Arthur Huillet <arthur.huillet@free.fr> | 2007-07-19 21:26:46 +0200 |
commit | 81cc744eb31343a509f9ca0d37993d462f162d80 (patch) | |
tree | 6a246b60e7271d1cf8ea24d10d9c074b2dd10eed | |
parent | 74ed14e1d27903f0647fe650da666cacb1e2e940 (diff) | |
download | xorg-driver-xf86-video-nouveau-81cc744eb31343a509f9ca0d37993d462f162d80.tar.gz |
VERY EXPERIMENTAL now EXA waits for sync before its operations - this removed the text corruption and didn't affect performance here, please report.
-rw-r--r-- | src/nv_exa.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/nv_exa.c b/src/nv_exa.c index fde1d09..da73669 100644 --- a/src/nv_exa.c +++ b/src/nv_exa.c @@ -285,6 +285,8 @@ NVAccelDownloadM2MF(ScrnInfoPtr pScrn, char *dst, uint64_t src_offset, NVPtr pNv = NVPTR(pScrn); setM2MFDirection(pScrn, 0); + if (!NVNotifierWaitStatus(pScrn, pNv->Notifier0, 0, 0)) + return FALSE; while (line_count) { char *src = pNv->GARTScratch->map; @@ -375,6 +377,9 @@ NVAccelUploadM2MF(ScrnInfoPtr pScrn, uint64_t dst_offset, const char *src, setM2MFDirection(pScrn, 1); + if (!NVNotifierWaitStatus(pScrn, pNv->Notifier0, 0, 0)) + return FALSE; + while (line_count) { char *dst = pNv->GARTScratch->map; int lc, i; @@ -420,8 +425,9 @@ NVAccelUploadM2MF(ScrnInfoPtr pScrn, uint64_t dst_offset, const char *src, NVDmaStart(pNv, NvSubMemFormat, 0x100, 1); NVDmaNext (pNv, 0); NVDmaKickoff(pNv); - if (!NVNotifierWaitStatus(pScrn, pNv->Notifier0, 0, 0)) - return FALSE; + if ( line_count - lc > 0 ) + if (!NVNotifierWaitStatus(pScrn, pNv->Notifier0, 0, 0)) + return FALSE; line_count -= lc; } |