ws/r600: match bo_busy shared/fence logic in bo_wait
authorKeith Whitwell <keithw@vmware.com>
Wed, 10 Nov 2010 11:03:07 +0000 (11:03 +0000)
committerKeith Whitwell <keithw@vmware.com>
Wed, 10 Nov 2010 11:04:38 +0000 (11:04 +0000)
Fixes crash in piglit depthrange-clear.

src/gallium/winsys/r600/drm/radeon_bo.c

index 3054782838b3e2be9fbb326924c36c25a4ce9260..557cfb959705708aa573818f77885847ad78e2c6 100644 (file)
@@ -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));