Browse Source

winsys/radeon: disable use of the buffer busy-for-write flag

tags/mesa-8.0-rc1
Marek Olšák 14 years ago
parent
commit
1554e69e00
1 changed files with 12 additions and 0 deletions
  1. 12
    0
      src/gallium/winsys/radeon/drm/radeon_drm_bo.c

+ 12
- 0
src/gallium/winsys/radeon/drm/radeon_drm_bo.c View File

@@ -192,6 +192,17 @@ static void *radeon_bo_map_internal(struct pb_buffer *_buf,
if (radeon_bo_is_referenced_by_cs_for_write(cs, bo)) {
cs->flush_cs(cs->flush_data, 0);
radeon_bo_wait((struct pb_buffer*)bo);
} else {
/* XXX We could check whether the buffer is busy for write here. */
radeon_bo_wait((struct pb_buffer*)bo);
}
#if 0
/* XXX This per-winsys busy-for-write tracking sucks.
* What if some other process wrote something, e.g. using
* DRI2CopyRegion? We wouldn't get the busy_for_write flag
* set, skipping bo_wait.
* We need to move the is-busy-for-write query into the kernel.
*/
} else if (bo->busy_for_write) {
/* Update the busy_for_write field (done by radeon_bo_is_busy)
* and wait if needed. */
@@ -199,6 +210,7 @@ static void *radeon_bo_map_internal(struct pb_buffer *_buf,
radeon_bo_wait((struct pb_buffer*)bo);
}
}
#endif
} else {
/* Mapping for write. */
if (radeon_bo_is_referenced_by_cs(cs, bo)) {

Loading…
Cancel
Save