summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/dri/nouveau
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2008-03-21 18:28:07 +1100
committerBen Skeggs <skeggsb@gmail.com>2008-03-21 18:28:07 +1100
commit1a4dcde808dbd5daa58f939361d9a9b539f81b50 (patch)
tree655fe4f8605f81ec5765afdc21e5cf5eb938e9ae /src/gallium/winsys/dri/nouveau
parent83e94189c424303fee4218a9d9380fc73b7ba318 (diff)
nouveau: do a retry if initial buffer alloc fails
Diffstat (limited to 'src/gallium/winsys/dri/nouveau')
-rw-r--r--src/gallium/winsys/dri/nouveau/nouveau_bo.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/winsys/dri/nouveau/nouveau_bo.c b/src/gallium/winsys/dri/nouveau/nouveau_bo.c
index 5dbb7d0374..46c0759dbb 100644
--- a/src/gallium/winsys/dri/nouveau/nouveau_bo.c
+++ b/src/gallium/winsys/dri/nouveau/nouveau_bo.c
@@ -369,8 +369,13 @@ nouveau_bo_validate_bo(struct nouveau_channel *chan, struct nouveau_bo *bo,
int ret;
ret = nouveau_bo_set_status(bo, flags);
- if (ret)
- return ret;
+ if (ret) {
+ nouveau_fence_flush(chan);
+
+ ret = nouveau_bo_set_status(bo, flags);
+ if (ret)
+ return ret;
+ }
if (nvbo->user)
nouveau_bo_upload(nvbo);