summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/nouveau_winsys/nv04_region.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/nouveau_winsys/nv04_region.c b/src/mesa/drivers/dri/nouveau_winsys/nv04_region.c
index 98f0d55405..1160a8f340 100644
--- a/src/mesa/drivers/dri/nouveau_winsys/nv04_region.c
+++ b/src/mesa/drivers/dri/nouveau_winsys/nv04_region.c
@@ -108,6 +108,14 @@ nv04_region_copy(struct nouveau_context *nv, struct pipe_region *dst,
OUT_RING ((dy << 16) | dx);
OUT_RING (( h << 16) | w);
+ nouveau_notifier_reset(nv->sync_notifier, 0);
+ BEGIN_RING(NvGdiRect, 0x104, 1);
+ OUT_RING (0);
+ BEGIN_RING(NvGdiRect, 0x100, 1);
+ OUT_RING (0);
+ FIRE_RING();
+ nouveau_notifier_wait_status(nv->sync_notifier, 0, 0, 2000);
+
return 0;
}
@@ -147,6 +155,14 @@ nv04_region_fill(struct nouveau_context *nv,
OUT_RING ((dx << 16) | dy);
OUT_RING (( w << 16) | h);
+ nouveau_notifier_reset(nv->sync_notifier, 0);
+ BEGIN_RING(NvGdiRect, 0x104, 1);
+ OUT_RING (0);
+ BEGIN_RING(NvGdiRect, 0x100, 1);
+ OUT_RING (0);
+ FIRE_RING();
+ nouveau_notifier_wait_status(nv->sync_notifier, 0, 0, 2000);
+
return 0;
}