r600g/compute: Add a function for moving items in the pool
authorBruno Jiménez <brunojimen@gmail.com>
Wed, 16 Jul 2014 21:12:43 +0000 (23:12 +0200)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 23 Jul 2014 14:29:17 +0000 (10:29 -0400)
commit1f705b2bee4c83674593f92df81ec888e2a2e23d
treea752eb4df5f69d1af34869f992030504efe77955
parent23ae2db8549ab0bd66252449db968e8aec4a3acc
r600g/compute: Add a function for moving items in the pool

This function will be used in the future by compute_memory_defrag
to move items forward in the pool.

It does so by first checking for overlaping ranges, if the ranges
don't overlap it will copy the contents directly. If they overlap
it will try first to make a temporary buffer, if this buffer fails
to allocate, it will finally fall back to a mapping.

Note that it will only be needed to move items forward, it only
checks for overlapping ranges in that case. If needed, it can
easily be added by changing the first if.

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