diff options
author | Thomas Hellstrom <thellstrom@vmware.com> | 2011-11-08 15:28:40 +0100 |
---|---|---|
committer | Thomas Hellstrom <thellstrom@vmware.com> | 2011-11-09 14:03:02 +0100 |
commit | e1810e0b09e07bdab05a57fdef74450a507e9dfa (patch) | |
tree | 4d58b8e5e88b30b3090ee486b6118eeadc1eaa62 /vmwgfx/vmwgfx_saa.c | |
parent | d0b493d67afd1b5e8c8397c7938752ecd56c91ba (diff) |
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 <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrants <jakob@vmware.com>
Diffstat (limited to 'vmwgfx/vmwgfx_saa.c')
-rw-r--r-- | vmwgfx/vmwgfx_saa.c | 10 |
1 files changed, 6 insertions, 4 deletions
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); } /* |