summaryrefslogtreecommitdiff
path: root/src/gallium/winsys
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2011-02-14 23:15:55 +0100
committerMarek Olšák <maraeo@gmail.com>2011-02-14 23:34:45 +0100
commit89ee0d527c689b70a08c1eb396486d47da7f120d (patch)
tree27e2fb2e415af4b203414259c6d285bccd642bbb /src/gallium/winsys
parentec21eabe2a343b875c4c23b410fea8bfc204f917 (diff)
r300g: flush CS in bo_map even if we get USAGE_DONTBLOCK
Because an app may do something like this: while (!(ptr = bo_map(..., DONT_BLOCK))) { /* Do some other work. */ } And it would be looping endlessly if we didn't flush.
Diffstat (limited to 'src/gallium/winsys')
-rw-r--r--src/gallium/winsys/radeon/drm/radeon_drm_bo.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
index 550886d14f8..027e9d3f47a 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
@@ -162,6 +162,7 @@ static void *radeon_bo_map_internal(struct pb_buffer *_buf,
if (flags & PB_USAGE_DONTBLOCK) {
if (radeon_bo_is_referenced_by_cs(cs, bo)) {
+ cs->flush_cs(cs->flush_data);
return NULL;
}