Skip to content

anv: Allow using A64 messages for SSBOs

Faith Ekstrand requested to merge gfxstrand/mesa:review/anv-a64-ssbo into master

This commit adds support in the Vulkan driver for using the global memory A64 messages for SSBOs instead of binding table messages. This has a few advantages:

  1. We can now support an almost arbitrary number of SSBOs in descriptor sets because we're no longer limited by the 240 binding table entries.
  2. We can now implement VK_EXT_shader_atomic_int64 because 64-bit atomics only work with A64 messages.
  3. It's another step on the way to VK_EXT_descriptor_indexing

Even though we now can use A64 messages, we choose to only use them when needed because the BTI messages are still a bit faster because they do bounds checking for us for free and don't involve 64-bit arithmetic in the shader. This is accomplished by attempting to lower as many SSBO ops as possible before we actually call nir_lower_explicit_io.

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

Edited by Faith Ekstrand

Merge request reports