summaryrefslogtreecommitdiff
path: root/vmwgfx/vmwgfx_saa.c
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2011-06-20 21:57:38 +0200
committerThomas Hellstrom <thellstrom@vmware.com>2011-06-22 22:35:06 +0200
commit63d7ddb35fe8b6743de182b73e6967f97f6a7eba (patch)
treeb64c9213847e6831b4508fac49bc821e215bedf1 /vmwgfx/vmwgfx_saa.c
parentf71928d3f78d9f9e5a0fd240069b9035d4ccac75 (diff)
vmwgfx: Fix dirty present bug
Clear dirty present areas when new contents are drawn to the backing pixmap. Not when it is actually pushed to the screen. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Diffstat (limited to 'vmwgfx/vmwgfx_saa.c')
-rw-r--r--vmwgfx/vmwgfx_saa.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/vmwgfx/vmwgfx_saa.c b/vmwgfx/vmwgfx_saa.c
index 83b1698..ad7f8b1 100644
--- a/vmwgfx/vmwgfx_saa.c
+++ b/vmwgfx/vmwgfx_saa.c
@@ -1054,6 +1054,8 @@ vmwgfx_dirty(struct saa_driver *driver, PixmapPtr pixmap,
}
REGION_UNION(vsaa->pScreen, vpix->pending_present,
vpix->pending_present, damage);
+ REGION_SUBTRACT(vsaa->pScreen, vpix->dirty_present,
+ vpix->dirty_present, damage);
}
} else {
if (REGION_NOTEMPTY(vsaa->pScreen, vpix->pending_present)) {
@@ -1068,6 +1070,8 @@ vmwgfx_dirty(struct saa_driver *driver, PixmapPtr pixmap,
}
REGION_UNION(vsaa->pScreen, vpix->pending_update,
vpix->pending_update, damage);
+ REGION_SUBTRACT(vsaa->pScreen, vpix->dirty_present,
+ vpix->dirty_present, damage);
}
return TRUE;