diff options
author | Keith Whitwell <[email protected]> | 2010-11-10 11:03:07 +0000 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2010-11-10 11:04:38 +0000 |
commit | 9a04eca2f865dc3eca31b34ae570cd489b18c240 (patch) | |
tree | c82883ebf408bb855673de2861fb53b76d36b90a /src/gallium/winsys | |
parent | 5b8ed2f6d2e14303c55aeca65cdbc20791e820f6 (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.c | 17 |
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 3054782838b..557cfb95970 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)); |