Mesa (master): r300g: flush CS in bo_map even if we get USAGE_DONTBLOCK
Marek Olšák
mareko at kemper.freedesktop.org
Mon Feb 14 22:59:19 UTC 2011
Module: Mesa
Branch: master
Commit: 89ee0d527c689b70a08c1eb396486d47da7f120d
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=89ee0d527c689b70a08c1eb396486d47da7f120d
Author: Marek Olšák <maraeo at gmail.com>
Date: Mon Feb 14 23:15:55 2011 +0100
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.
---
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 550886d..027e9d3 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;
}
More information about the mesa-commit
mailing list