[Mesa-dev] [PATCH 0/3] r600g/compute: Implement grow+defrag for compute_memory_pool

Bruno Jiménez brunojimen at gmail.com
Sat Jul 19 10:35:48 PDT 2014


Hi,

This series is a follow up for the 'Adding support for defragmenting
compute_memory_pool' series. It also sits on top of the patch I sent
here: http://lists.freedesktop.org/archives/mesa-dev/2014-July/062923.html

It modifies the function 'compute_memory_grow_pool' so it can defrag
the pool at the same time as it grows it, thus reducing the total amount
of copies to one per item in the case grow+defrag. In the case where
the pool needs to grow, but it's not fragmented, then we copy only
the 'real' data that the items have, instead of copying the whole
resource, data and garbage at the same time.

The fallback path for grow+defrag isn't very good, but hopefully
it won't be used much.

As usual, if you have any doubt about any of the patches, just ask.

Thanks in advance!
Bruno

Bruno Jiménez (3):
  r600g/compute: Allow compute_memory_move_item to move items between
    resources
  r600g/compute: Allow compute_memory_defrag to defragment between
    resources
  r600g/compute: Defrag the pool at the same time as we grow it

 src/gallium/drivers/r600/compute_memory_pool.c | 86 +++++++++++++-------------
 src/gallium/drivers/r600/compute_memory_pool.h |  4 +-
 2 files changed, 47 insertions(+), 43 deletions(-)

-- 
2.0.2



More information about the mesa-dev mailing list