anv: Add vma_heap allocators in anv_device

Graphics / Mesa 3D Graphics Library / Mesa - Scott D Phillips [] - 31 May 2018 23:51 EDT

These will be used to assign virtual addresses to soft pinned buffers in a later patch.

Two allocators are added for separate 'low' and 'high' virtual memory areas. Another alternative would have been to add a double-sided allocator, which wasn't done here just because it didn't appear to give any code complexity advantages.

v2 (Scott Phillips):- rename has_exec_softpin to use_softpin (Jason)- Only remove bottom one page and top 4 GiB from virt (Jason)- refer to comment in anv_allocator about state address + size overflowing 48 bits (Jason)- Mention hi/lo allocators vs double-sided allocator in commit message (Chris)- assign state pool memory ranges statically (Jason)

v3 (Jason Ekstrand):- Use (LOW|HIGH)_HEAP_(MIN|MAX)_ADDRESS rather than (1 << 31) for determining which heap to use in anv_vma_free- Only return de-canonicalized addresses to the heap

aaea46242d anv: Add vma_heap allocators in anv_device
src/intel/vulkan/anv_device.c | 84 ++++++++++++++++++++++++++++++++++++++++++
src/intel/vulkan/anv_private.h | 60 ++++++++++++++++++++++++++++++
2 files changed, 144 insertions(+)


  • Share