Преглед на файлове

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

tags/mesa-8.0-rc1
Marek Olšák преди 14 години
родител
ревизия
1554e69e00
променени са 1 файла, в които са добавени 12 реда и са изтрити 0 реда
  1. 12
    0
      src/gallium/winsys/radeon/drm/radeon_drm_bo.c

+ 12
- 0
src/gallium/winsys/radeon/drm/radeon_drm_bo.c Целия файл

@@ -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…
Отказ
Запис