[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