Skip to content

anv: split internal surface states from descriptors

On Intel HW we use the same mechanism for internal operations surfaces as well as application surfaces (VkDescriptor).

This change splits the surface pool in 2, one part dedicated to internal allocations, the other to application VkDescriptors.

To do so, the STATE_BASE_ADDRESS::SurfaceStateBaseAddress points to a 4Gb area, with the following layout :

  • 1Gb of binding table pool
  • 2Gb of internal surface states
  • 1Gb of bindless surface states

That way any entry from the binding table can refer to both internal & bindless surface states but none of the driver allocations interfere with the allocation of the application.

Based off a change from Sviatoslav Peleshko.

Signed-off-by: Lionel Landwerlin lionel.g.landwerlin@intel.com

Edited by Lionel Landwerlin

Merge request reports