anv/allocator: Add support for a list of BOs in block pool.
authorRafael Antognolli <rafael.antognolli@intel.com>
Fri, 7 Dec 2018 19:03:38 +0000 (11:03 -0800)
committerRafael Antognolli <rafael.antognolli@intel.com>
Thu, 17 Jan 2019 23:08:04 +0000 (15:08 -0800)
commitf874604f45b5fd7a46453a37f99d7c6717c8a4f6
tree1f00548dc08fedd8368605e8478feab447f8c310
parente3dc56d7311c82d6dbda7948f9ca4345d44f8bdb
anv/allocator: Add support for a list of BOs in block pool.

So far we use only one BO (the last one created) in the block pool. When
we switch to not use the userptr API, we will need multiple BOs. So add
code now to store multiple BOs in the block pool.

This has several implications, the main one being that we can't use
pool->map as before. For that reason we update the getter to find which
BO a given offset is part of, and return the respective map.

v3:
 - Simplify anv_block_pool_map (Jason).
 - Use fixed size array for anv_bo's (Jason)
v4:
 - Respect the order (item, container) in anv_block_pool_foreach_bo
 (Jason).

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/vulkan/anv_allocator.c
src/intel/vulkan/anv_private.h