diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gallium/targets/dri-r600/target.c | 2 | ||||
| -rw-r--r-- | src/gallium/winsys/r600/drm/radeon_bo_pb.c | 13 | 
2 files changed, 8 insertions, 7 deletions
diff --git a/src/gallium/targets/dri-r600/target.c b/src/gallium/targets/dri-r600/target.c index eb268d5bc0..2c1b2f5be4 100644 --- a/src/gallium/targets/dri-r600/target.c +++ b/src/gallium/targets/dri-r600/target.c @@ -4,7 +4,7 @@  #include "r600/drm/r600_drm_public.h"  #include "r600/r600_public.h" -#if 1 +#if 0  static struct pipe_screen *  create_screen(int fd)  { diff --git a/src/gallium/winsys/r600/drm/radeon_bo_pb.c b/src/gallium/winsys/r600/drm/radeon_bo_pb.c index 148cf6d81d..897938c2ca 100644 --- a/src/gallium/winsys/r600/drm/radeon_bo_pb.c +++ b/src/gallium/winsys/r600/drm/radeon_bo_pb.c @@ -55,7 +55,6 @@ radeon_bo_pb_map_internal(struct pb_buffer *_buf,  	struct radeon_bo_pb *buf = radeon_bo_pb(_buf);  	struct pipe_context *pctx = ctx; -//printf("%s:%d ************************************************\n", __func__, __LINE__);  	if (flags & PB_USAGE_UNSYNCHRONIZED) {  		if (!buf->bo->data && radeon_bo_map(buf->mgr->radeon, buf->bo)) {  			return NULL; @@ -64,11 +63,13 @@ radeon_bo_pb_map_internal(struct pb_buffer *_buf,  		return buf->bo->data;  	} -	if (flags & PB_USAGE_DONTBLOCK) { -		return NULL; -	} -	if (ctx) { -		pctx->flush(pctx, 0, NULL); +	if (p_atomic_read(&buf->bo->reference.count) > 1) { +		if (flags & PB_USAGE_DONTBLOCK) { +			return NULL; +		} +		if (ctx) { +			pctx->flush(pctx, 0, NULL); +		}  	}  	if (flags & PB_USAGE_DONTBLOCK) {  | 
