diff options
author | Ben Skeggs <[email protected]> | 2008-03-21 18:28:07 +1100 |
---|---|---|
committer | Ben Skeggs <[email protected]> | 2008-03-21 18:28:07 +1100 |
commit | 1a4dcde808dbd5daa58f939361d9a9b539f81b50 (patch) | |
tree | 655fe4f8605f81ec5765afdc21e5cf5eb938e9ae | |
parent | 83e94189c424303fee4218a9d9380fc73b7ba318 (diff) |
nouveau: do a retry if initial buffer alloc fails
-rw-r--r-- | src/gallium/winsys/dri/nouveau/nouveau_bo.c | 9 |
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 5dbb7d03744..46c0759dbb4 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); |