[Mesa-dev] [PATCH 0/2] [RFC] r600g/compute: Track better how items are mapped

Bruno Jiménez brunojimen at gmail.com
Thu Aug 7 03:14:22 PDT 2014


Hi,

This series adds support for actually knowing when an item is not
mapped. Previously, when an item was marked as 'MAPPED_FOR_READING'
we couldn't really remove that status because although we controlled
how items were mapped, we didn't control how they were unmapped.

Patch 1 modifies how items track how they are mapped. As an item can
be mapped multiple times for reading/writing, we should also
know how many times the item is mapped.

Patch 2 adds a new structure that will be used to actually make possible
that r600_compute_global_transfer_unmap is called when we try to unmap
an item, so we can decrement the map count.

Patch 2 is a bit of hack that seems to work, but any suggestions about
it are welcomed.

Thanks in advance!
Bruno

Bruno Jiménez (2):
  r600g/compute: Add a member to the items to track how many maps it has
  r600g/compute: Decrement map_count when unmapping items

 src/gallium/drivers/r600/compute_memory_pool.c |  5 +--
 src/gallium/drivers/r600/compute_memory_pool.h |  1 +
 src/gallium/drivers/r600/evergreen_compute.c   | 49 +++++++++++++++++++-------
 src/gallium/drivers/r600/evergreen_compute.h   |  5 +++
 4 files changed, 45 insertions(+), 15 deletions(-)

-- 
2.0.4



More information about the mesa-dev mailing list