[Mesa-dev] [PATCH v4 00/23] anv: Soft-pin!

Jason Ekstrand jason at jlekstrand.net
Thu May 31 15:46:21 UTC 2018


This is what I hope to be the final re-spin of Scott's soft-pin patch
series for our Vulkan driver.  Why are there over a dozen new patches from
me?  I started with Scott's v3 and tried to come up with a good way to
apply my review feedback on the last patch and it turned into a bit of a
rabbit-hole.

The first thing I tried to fix was to make anv bake addresses into surface
states up-front wherever possible.  I ended up going a bit bananas on
plumbing anv_address through everywhere.  I think it's a good clean-up in
general and should help when we go to do sparse bindings.

The second thing I tried to fix was to improve the fix to batch chaining.
This led to a couple of patches that clean up the way we do return chaining
from secondary command buffers.  The modification ended up being basically
exactly what Scott did originally but it's now got some nice asserts to
keep things sane.

Jason Ekstrand (15):
  util: Add a virtual memory allocator
  intel/common: Add an address de-cannonicalization helper
  anv: Add some anv_address helpers
  anv: Use full anv_addresses in anv_surface_state
  anv: Use an anv_address in anv_buffer_view
  anv/cmd_buffer: Use anv_address for handling indirect parameters
  anv: Use an anv_address in anv_buffer
  anv/cmd_buffer: Rework surface relocation helpers
  anv: Use an address for each anv_image plane
  anv/allocator: Set the BO flags in bo_cache_alloc/import
  anv/allocator: Support softpin in the BO cache
  anv: Soft-pin client-allocated memory
  anv/batch_chain: Call batch_bo_finish at the end of end_batch_buffer
  anv/batch_chain: Simplify secondary batch return chaining

Kenneth Graunke (1):
  util: Make vma.c support non-power-of-two alignments.

Scott D Phillips (7):
  util: Add a randomized test for the virtual memory allocator
  anv: Add vma_heap allocators in anv_device
  anv/blorp: Write relocated values into surface states
  anv: Soft-pin state pools
  anv: Use a separate pool for binding tables when soft pinning
  anv: For pinned BOs, skip relocations, but track bo usage
  anv: Soft-pin batch buffers
  anv: Soft-pin everything else

 configure.ac                                       |   1 +
 src/intel/common/gen_gem.h                         |  10 +
 src/intel/vulkan/anv_allocator.c                   | 105 ++++++++-
 src/intel/vulkan/anv_batch_chain.c                 | 202 +++++++++++------
 src/intel/vulkan/anv_blorp.c                       |  28 +--
 src/intel/vulkan/anv_descriptor_set.c              |   5 +-
 src/intel/vulkan/anv_device.c                      | 189 +++++++++++++---
 src/intel/vulkan/anv_image.c                       |  84 +++----
 src/intel/vulkan/anv_intel.c                       |  15 +-
 src/intel/vulkan/anv_private.h                     | 174 +++++++++++++--
 src/intel/vulkan/anv_queue.c                       |   7 +-
 src/intel/vulkan/gen7_cmd_buffer.c                 |   8 +-
 src/intel/vulkan/gen8_cmd_buffer.c                 |   3 +-
 src/intel/vulkan/genX_blorp_exec.c                 |   6 +
 src/intel/vulkan/genX_cmd_buffer.c                 | 189 ++++++++--------
 src/intel/vulkan/genX_query.c                      |  17 +-
 src/intel/vulkan/tests/block_pool_no_free.c        |   2 +-
 src/intel/vulkan/tests/state_pool.c                |   2 +-
 src/intel/vulkan/tests/state_pool_free_list_only.c |   2 +-
 src/intel/vulkan/tests/state_pool_no_free.c        |   2 +-
 src/util/Makefile.am                               |   3 +-
 src/util/Makefile.sources                          |   4 +-
 src/util/meson.build                               |   3 +
 src/util/tests/vma/Makefile.am                     |  39 ++++
 src/util/tests/vma/meson.build                     |  29 +++
 src/util/tests/vma/vma_random_test.cpp             | 244 +++++++++++++++++++++
 src/util/vma.c                                     | 234 ++++++++++++++++++++
 src/util/vma.h                                     |  53 +++++
 28 files changed, 1344 insertions(+), 316 deletions(-)
 create mode 100644 src/util/tests/vma/Makefile.am
 create mode 100644 src/util/tests/vma/meson.build
 create mode 100644 src/util/tests/vma/vma_random_test.cpp
 create mode 100644 src/util/vma.c
 create mode 100644 src/util/vma.h

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list