summaryrefslogtreecommitdiff
path: root/exa/exa_mixed.c
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-09-26 02:04:48 +0200
committerMichel Dänzer <daenzer@vmware.com>2009-09-26 02:04:48 +0200
commit0369eeeb6bf8a808fa2df503fc8b8df81e6e07b8 (patch)
treeae4cce47678bbe8ebce5a043f99eff18abb866a8 /exa/exa_mixed.c
parent1818cbd70fc1f2e1487b4c678e67e28f1265c0ef (diff)
EXA: Try to minimize UploadToScreen calls for mixed pixmaps.
If there are several software fallbacks affecting the system memory copy of the same pixmap, only copy the results back to the driver pixmap when it's used for acceleration again, or in the BlockHandler, whichever happens first.
Diffstat (limited to 'exa/exa_mixed.c')
-rw-r--r--exa/exa_mixed.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/exa/exa_mixed.c b/exa/exa_mixed.c
index 167ffa9d5..bc393c772 100644
--- a/exa/exa_mixed.c
+++ b/exa/exa_mixed.c
@@ -192,6 +192,9 @@ exaDestroyPixmap_mixed(PixmapPtr pPixmap)
{
ExaPixmapPriv (pPixmap);
+ if (pExaScr->deferred_mixed_pixmap == pPixmap)
+ pExaScr->deferred_mixed_pixmap = NULL;
+
if (pExaPixmap->driverPriv)
pExaScr->info->DestroyPixmap(pScreen, pExaPixmap->driverPriv);
pExaPixmap->driverPriv = NULL;