diff options
-rw-r--r-- | src/mesa/drivers/dri/nouveau_winsys/nv04_region.c | 16 |
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; } |