Skip to content

anv: Implement VK_EXT_descriptor_indexing

This MR implements the VK_EXT_descriptor_indexing extension. Most of the work covered by this MR is just preparing the back-end compiler and NIR for handling bindless textures and images. We already have bindless SSBOs thanks to !366 (closed). The work to actually add a descriptor buffer was done in !365 (merged).

The end result of all this bindless stuff is that, with the exception of input attachments and SSBOs, we can now support an arbitrary number of descriptors for all the other types whenever we have bindless (SKL+). We can still fall back to binding tables when we can so that we don't have to do extra shader arithmetic, manual bounds-checking, and that sort of garbage all the time. This graceful fall-back also means that we can relatively easily handle bindless on SKL+ where it's fully supported but neatly fall back to 100% bindful on older platforms. On BDW, we get bindless for SSBOs because it does support the A64 stateful messages.

This MR is based on !366 (closed) so it looks like it's more patches than it actually is.

Merge request reports