summaryrefslogtreecommitdiff
path: root/src/nouveau_dri2.c
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2010-10-26 00:24:06 +0200
committerFrancisco Jerez <currojerez@riseup.net>2010-10-26 01:47:00 +0200
commit22020457f43eceaf26532ecb50e46d743f4a691f (patch)
tree70d123f765e6af25bc1f963b8a824a158041fe30 /src/nouveau_dri2.c
parent9737a812aacbc544b93eeaa031cf1c2e8adbd661 (diff)
dri2: Fix throttling on occluded drawables.
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
Diffstat (limited to 'src/nouveau_dri2.c')
-rw-r--r--src/nouveau_dri2.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/nouveau_dri2.c b/src/nouveau_dri2.c
index 65e7340..204ab32 100644
--- a/src/nouveau_dri2.c
+++ b/src/nouveau_dri2.c
@@ -239,6 +239,13 @@ nouveau_dri2_finish_swap(DrawablePtr draw, unsigned int frame,
DamageRegionProcessPending(draw);
} else {
type = DRI2_BLIT_COMPLETE;
+
+ /* Reference the front buffer to let throttling work
+ * on occluded drawables. */
+ WAIT_RING(chan, 1);
+ OUT_RELOC(chan, dst_bo, 0,
+ NOUVEAU_BO_VRAM | NOUVEAU_BO_RD, 0, 0);
+
REGION_TRANSLATE(0, &reg, -draw->x, -draw->y);
nouveau_dri2_copy_region(draw, &reg, s->dst, s->src);
}