[Mesa-dev] [RFC PATCH 00/14] Do not use userptr in anv if softpin is available.
Rafael Antognolli
rafael.antognolli at intel.com
Sat Dec 8 00:05:39 UTC 2018
This series changes anv_block_pool to use a list of BO's instead of a
single BO that gets reallocated and set with userptr.
The main changes are:
- The introduction of anv_state_table to track anv_states, and
recycle them;
- Addition of a list of BOs in anv_block_pool, instead of a single
BO;
- Forcing allocations to not cross boundaries between the previous
size of a block_pool and the new one;
- And pushing back the "padding" required to avoid such boundaries
cross to the pool of free anv_states.
I'm still working on increasing the test coverage (adding new tests for
some new cases we have now), but the series seems reasonable imho to
start getting some review already.
Cc: Jason Ekstrand <jason at jlekstrand.net>
Rafael Antognolli (14):
anv/tests: Fix block_pool_no_free test.
anv/allocator: Add anv_state_table.
anv/allocator: Use anv_state_table on anv_state_pool_alloc.
anv/allocator: Use anv_state_table on back_alloc too.
anv/allocator: Remove usage of anv_free_list.
anv/allocator: Add getters for anv_block_pool.
anv: Update usage of block_pool->bo.
anv/allocator: Add support for a list of BOs in block pool.
anv: Validate the list of BOs from the block pool.
anv: Add clflush to states.
anv: Remove some asserts.
anv/allocator: Rework chunk return to the state pool.
anv/allocator: Add padding information.
anv/allocator: Add support for non-userptr.
src/intel/vulkan/anv_allocator.c | 741 ++++++++++++++++----
src/intel/vulkan/anv_batch_chain.c | 62 +-
src/intel/vulkan/anv_blorp.c | 2 +-
src/intel/vulkan/anv_private.h | 73 +-
src/intel/vulkan/gen8_cmd_buffer.c | 6 +-
src/intel/vulkan/genX_blorp_exec.c | 9 +-
src/intel/vulkan/genX_cmd_buffer.c | 20 +-
src/intel/vulkan/genX_gpu_memcpy.c | 3 -
src/intel/vulkan/tests/block_pool_no_free.c | 19 +-
9 files changed, 740 insertions(+), 195 deletions(-)
--
2.17.1
More information about the mesa-dev
mailing list