Skip to content

anv: Add support for A64 UBO and descriptor access

Faith Ekstrand requested to merge gfxstrand/mesa:wip/anv-bindless-ubo into master

This MR adds support to ANV for accessing UBOs and descriptor buffers using A64 messages instead of buffer surfaces. There are a couple of reasons for this:

  1. If we want to do bindless UBOs, we need to either use bindless handles or we need to use A64 messages.
  2. SSBOs already use A64 so doing that for UBOs lets us share most of the same code in anv_nir_apply_pipeline_layout.c
  3. With ray-tracing, we have no binding tables whatsoever so everything needs to be bindless, including descriptors.

I debated back-and-forth about whether to do bindless handles or A64. I settled on A64 for a couple reasons:

  1. A64 lets me share lots of code between the SSBO and UBO paths.
  2. I really want descriptor buffers and regular UBOs to be the same because inline uniforms live in the descriptor buffer and I wanted them to be the same as regular UBOs.
Edited by Faith Ekstrand

Merge request reports