anv VK_EXT_descriptor_buffer support

On top of !21645 (merged)

A few things that need to be fixed :

  • stop using 2 surface states for storage surfaces !22302 (merged)
  • We need to have the kernel program a bit in SAMPLER_MODE (bit0 : Indirect State Base Addr Override) so that border colors are not indexed from the bindless sampler heap when using a bindless sampler (you can put samplers in Dynamic State or Bindless Sampler State heaps on Gfx11+) Kernel patch
  • Found a problem with TGL related to the kernel patch drm/intel#8380 (SAMPLER_MODE write not sticking) (currently working around it by reducing the Gfx11/12 descriptor buffer heap from 4Gb to 2Gb)
  • need additional memory types & memory heaps (failing some memory allocation tests only on Gfx9)
  • hash embedded shader params as part of the descriptor set layout

Currently passes CTS on DG2, TGL, ICL, Gfx9

Edited by Lionel Landwerlin

Merge request reports