From 63d7ddb35fe8b6743de182b73e6967f97f6a7eba Mon Sep 17 00:00:00 2001 From: Thomas Hellstrom Date: Mon, 20 Jun 2011 21:57:38 +0200 Subject: [PATCH] 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 --- vmwgfx/vmwgfx_driver.c | 4 ---- vmwgfx/vmwgfx_saa.c | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vmwgfx/vmwgfx_driver.c b/vmwgfx/vmwgfx_driver.c index 048534e..17d93eb 100644 --- a/vmwgfx/vmwgfx_driver.c +++ b/vmwgfx/vmwgfx_driver.c @@ -573,15 +573,11 @@ void xorg_flush(ScreenPtr pScreen) if (vpix->pending_update) { (void) vmwgfx_scanout_update(ms->fd, vpix->fb_id, vpix->pending_update); - REGION_SUBTRACT(pScreen, vpix->dirty_present, - vpix->dirty_present, vpix->pending_update); REGION_EMPTY(pScreen, vpix->pending_update); } if (vpix->pending_present) { (void) vmwgfx_scanout_present(pScreen, ms->fd, vpix, vpix->pending_present); - REGION_SUBTRACT(pScreen, vpix->dirty_present, - vpix->dirty_present, vpix->pending_present); REGION_EMPTY(pScreen, vpix->pending_present); } } 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; -- 2.7.4