diff options
author | Marek Olšák <[email protected]> | 2011-02-14 23:15:55 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2011-02-14 23:34:45 +0100 |
commit | 89ee0d527c689b70a08c1eb396486d47da7f120d (patch) | |
tree | 27e2fb2e415af4b203414259c6d285bccd642bbb /src/gallium/winsys/radeon/drm | |
parent | ec21eabe2a343b875c4c23b410fea8bfc204f917 (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/radeon/drm')
-rw-r--r-- | src/gallium/winsys/radeon/drm/radeon_drm_bo.c | 1 |
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; } |