summaryrefslogtreecommitdiff
path: root/src/gallium/winsys
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-03-21 19:36:15 +1000
committerDave Airlie <airlied@redhat.com>2010-03-21 19:39:28 +1000
commitbb324182fc7cd9cfaa62ee44bdd9287f1ed2ac7a (patch)
tree1fa7d4bcd6759ab412f64cb4165d972bc072a5ca /src/gallium/winsys
parentff1c7baad241dd722341023806e00a07606de206 (diff)
r300g: fix occlusion query hangs.
Okay need to revist the whole OQ stuff anyways, glean test asserts which is never good. I'm liking the cached bufmgr restrictions less and less, I think I'll probably play with the fence and/or busy stuff ASAP and try and clean it up. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r--src/gallium/winsys/drm/radeon/core/radeon_drm_buffer.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/winsys/drm/radeon/core/radeon_drm_buffer.c b/src/gallium/winsys/drm/radeon/core/radeon_drm_buffer.c
index 1d29b0b727..a8a7c45a96 100644
--- a/src/gallium/winsys/drm/radeon/core/radeon_drm_buffer.c
+++ b/src/gallium/winsys/drm/radeon/core/radeon_drm_buffer.c
@@ -73,8 +73,10 @@ radeon_drm_buffer_map(struct pb_buffer *_buf,
int write;
if (flags & PIPE_BUFFER_USAGE_DONTBLOCK) {
- if (radeon_bo_is_referenced_by_cs(buf->bo, buf->mgr->rws->cs))
- return NULL;
+ if ((_buf->base.usage & PIPE_BUFFER_USAGE_VERTEX) ||
+ (_buf->base.usage & PIPE_BUFFER_USAGE_INDEX))
+ if (radeon_bo_is_referenced_by_cs(buf->bo, buf->mgr->rws->cs))
+ return NULL;
}
if (buf->bo->ptr != NULL)