From 9a04eca2f865dc3eca31b34ae570cd489b18c240 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Wed, 10 Nov 2010 11:03:07 +0000 Subject: ws/r600: match bo_busy shared/fence logic in bo_wait Fixes crash in piglit depthrange-clear. --- src/gallium/winsys/r600/drm/radeon_bo.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src') 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)); -- cgit v1.2.3