diff options
author | Thomas Hellstrom <thellstrom@vmware.com> | 2011-06-20 21:57:38 +0200 |
---|---|---|
committer | Thomas Hellstrom <thellstrom@vmware.com> | 2011-06-22 22:35:06 +0200 |
commit | 63d7ddb35fe8b6743de182b73e6967f97f6a7eba (patch) | |
tree | b64c9213847e6831b4508fac49bc821e215bedf1 | |
parent | f71928d3f78d9f9e5a0fd240069b9035d4ccac75 (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>
-rw-r--r-- | vmwgfx/vmwgfx_driver.c | 4 | ||||
-rw-r--r-- | 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; |