Module: Mesa
Branch: master
Commit: bb324182fc7cd9cfaa62ee44bdd9287f1ed2ac7a
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bb324182fc7cd9cfaa62ee44bdd9287f1ed2ac7a

Author: Dave Airlie <[email protected]>
Date:   Sun Mar 21 19:36:15 2010 +1000

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 <[email protected]>

---

 src/gallium/drivers/r300/r300_context.c            |    2 +-
 .../winsys/drm/radeon/core/radeon_drm_buffer.c     |    6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_context.c 
b/src/gallium/drivers/r300/r300_context.c
index a55d2db..60b4411 100644
--- a/src/gallium/drivers/r300/r300_context.c
+++ b/src/gallium/drivers/r300/r300_context.c
@@ -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);
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 1d29b0b..a8a7c45 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)

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to