diff options
author | Ben Skeggs <skeggsb@gmail.com> | 2007-11-20 22:09:56 +1100 |
---|---|---|
committer | Ben Skeggs <skeggsb@gmail.com> | 2007-11-20 22:09:56 +1100 |
commit | 0d0349faff07df663eb49fe1a7209e1c6a28505b (patch) | |
tree | 4f0d7645bb1fc2246d5341bc32720c417aa7867d /src | |
parent | b9b5f4b3c16f0b7bc8ae2d7cca03597e0029cb02 (diff) |
nouveau: temporary workaround for dodgy buffer code
Diffstat (limited to 'src')
-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; } |