From e1810e0b09e07bdab05a57fdef74450a507e9dfa Mon Sep 17 00:00:00 2001 From: Thomas Hellstrom Date: Tue, 8 Nov 2011 15:28:40 +0100 Subject: vmwgfx: Fix rendering errors when rotating / unrotating a screen. The dirty trackers weren't correctly translated to pending presents / updates when a pixmap was bound as a scanout. Signed-off-by: Thomas Hellstrom Reviewed-by: Jakob Bornecrants --- vmwgfx/vmwgfx_saa.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'vmwgfx') diff --git a/vmwgfx/vmwgfx_saa.c b/vmwgfx/vmwgfx_saa.c index 3c80ef2..ad3adf8 100644 --- a/vmwgfx/vmwgfx_saa.c +++ b/vmwgfx/vmwgfx_saa.c @@ -1375,12 +1375,14 @@ vmwgfx_scanout_refresh(PixmapPtr pixmap) box.x2 = pixmap->drawable.width; box.y2 = pixmap->drawable.height; - REGION_RESET(vsaa->pScreen, vpix->pending_update, &box); + REGION_RESET(vsaa->pScreen, vpix->pending_present, &box); if (vpix->dirty_present) REGION_SUBTRACT(vsaa->pScreen, vpix->pending_present, - &vpix->base.dirty_hw, vpix->dirty_present); - REGION_SUBTRACT(vsaa->pScreen, vpix->pending_update, - vpix->pending_update, &vpix->base.dirty_hw); + vpix->pending_present, vpix->dirty_present); + REGION_SUBTRACT(vsaa->pScreen, vpix->pending_present, + vpix->pending_present, &vpix->base.dirty_shadow); + REGION_COPY(vsaa->pScreen, vpix->pending_update, + &vpix->base.dirty_shadow); } /* -- cgit v1.2.3