summaryrefslogtreecommitdiff
path: root/src/gallium/winsys
diff options
context:
space:
mode:
authorKeith Whitwell <keithw@vmware.com>2010-11-10 11:03:07 +0000
committerKeith Whitwell <keithw@vmware.com>2010-11-10 11:04:38 +0000
commit9a04eca2f865dc3eca31b34ae570cd489b18c240 (patch)
treec82883ebf408bb855673de2861fb53b76d36b90a /src/gallium/winsys
parent5b8ed2f6d2e14303c55aeca65cdbc20791e820f6 (diff)
ws/r600: match bo_busy shared/fence logic in bo_wait
Fixes crash in piglit depthrange-clear.
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r--src/gallium/winsys/r600/drm/radeon_bo.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/gallium/winsys/r600/drm/radeon_bo.c b/src/gallium/winsys/r600/drm/radeon_bo.c
index 3054782838..557cfb9597 100644
--- a/src/gallium/winsys/r600/drm/radeon_bo.c
+++ b/src/gallium/winsys/r600/drm/radeon_bo.c
@@ -153,14 +153,15 @@ int radeon_bo_wait(struct radeon *radeon, struct radeon_bo *bo)
struct drm_radeon_gem_wait_idle args;
int ret;
- if (!bo->fence && !bo->shared)
- return 0;
-
- if (bo->fence <= *bo->ctx->cfence) {
- LIST_DELINIT(&bo->fencedlist);
- bo->fence = 0;
- return 0;
- }
+ if (!bo->shared) {
+ if (!bo->fence)
+ return 0;
+ if (bo->fence <= *bo->ctx->cfence) {
+ LIST_DELINIT(&bo->fencedlist);
+ bo->fence = 0;
+ return 0;
+ }
+ }
/* Zero out args to make valgrind happy */
memset(&args, 0, sizeof(args));