r600g/compute: Add an intermediate resource for OpenCL buffers
authorBruno Jiménez <brunojimen@gmail.com>
Wed, 18 Jun 2014 15:01:51 +0000 (17:01 +0200)
committerTom Stellard <thomas.stellard@amd.com>
Fri, 20 Jun 2014 17:43:28 +0000 (13:43 -0400)
commit0038402753b6a5c2a56f66ae0ffe25a9eb1d1b63
tree43f4a6bf5128e7581169348fd705bb3426a9a899
parent96a95f48eaf8af2c6ace51531bdd5bfbcf71165e
r600g/compute: Add an intermediate resource for OpenCL buffers

This patch changes completely the way buffers are added to the
compute_memory_pool. Before this, whenever we were going to
map a buffer or write to or read from it, it would get placed
into the pool. Now, every unallocated buffer has its own
r600_resource until it is allocated in the pool.

NOTE: This patch also increase the GPU memory usage at the moment
of putting every buffer in it's place. More or less, the memory
usage is ~2x(sum of every buffer size)

v2: Cleanup

v3: Use temporary variables to avoid so many castings in functions,
    as suggested by Tom Stellard

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
src/gallium/drivers/r600/compute_memory_pool.c
src/gallium/drivers/r600/compute_memory_pool.h
src/gallium/drivers/r600/evergreen_compute.c