summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2007-11-20 22:09:56 +1100
committerBen Skeggs <skeggsb@gmail.com>2007-11-20 22:09:56 +1100
commit0d0349faff07df663eb49fe1a7209e1c6a28505b (patch)
tree4f0d7645bb1fc2246d5341bc32720c417aa7867d /src
parentb9b5f4b3c16f0b7bc8ae2d7cca03597e0029cb02 (diff)
nouveau: temporary workaround for dodgy buffer code
Diffstat (limited to 'src')
-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;
}