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>
This commit is contained in:
Dave Airlie 2010-03-21 19:36:15 +10:00
parent ff1c7baad2
commit bb324182fc
2 changed files with 5 additions and 3 deletions

View file

@ -200,7 +200,7 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen,
/* Open up the OQ BO. */
r300->oqbo = screen->buffer_create(screen, 4096,
PIPE_BUFFER_USAGE_VERTEX, 4096);
PIPE_BUFFER_USAGE_PIXEL, 4096);
make_empty_list(&r300->query_list);
r300_init_flush_functions(r300);

View file

@ -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)