zink: add a suballocator
this is an aux/pipebuffer implementation borrowing heavily from the one in radeonsi. it currently has the following limitations, which will be resolved in a followup series: * 32bit address space still explodes * swapchain images still have separate memory handling performance in games like Tomb Raider has been observed to increase by over 1000% SQUASHED: simplify get_memory_type_index() now that the heaps are enumerated, this can be reduced to a simple array index with a fallback Reviewed-by:Dave Airlie <airlied@redhat.com> Part-of: <mesa/mesa!12146>
- src/gallium/drivers/zink/meson.build 1 addition, 0 deletionssrc/gallium/drivers/zink/meson.build
- src/gallium/drivers/zink/zink_bo.c 1014 additions, 0 deletionssrc/gallium/drivers/zink/zink_bo.c
- src/gallium/drivers/zink/zink_bo.h 270 additions, 0 deletionssrc/gallium/drivers/zink/zink_bo.h
- src/gallium/drivers/zink/zink_context.c 4 additions, 66 deletionssrc/gallium/drivers/zink/zink_context.c
- src/gallium/drivers/zink/zink_resource.c 47 additions, 121 deletionssrc/gallium/drivers/zink/zink_resource.c
- src/gallium/drivers/zink/zink_resource.h 50 additions, 33 deletionssrc/gallium/drivers/zink/zink_resource.h
- src/gallium/drivers/zink/zink_screen.c 23 additions, 21 deletionssrc/gallium/drivers/zink/zink_screen.c
- src/gallium/drivers/zink/zink_screen.h 16 additions, 9 deletionssrc/gallium/drivers/zink/zink_screen.h