Skip to content

spirv: Delete the legacy offset/index UBO/SSBO lowering

For quite some time now, NIR has supported doing explicit I/O access via derefs. ANV has been using it for years and all of the OpenCL work is based on it as well. If you use derefs for explicit I/O access, you get all sorts of nice things like actual optimizations that can remove redundant SSBO loads and stores. However, that doesn't seem to have been enough to entice people seeing as neither RADV nor turnip are using the deref path yet.

I would REALLY like to delete the 700 lines of on-the-fly legacy lowering code we've been carrying around. We can't do that, of course, until RADV, Turnip, and the new vc5 Vulkan driver have also flipped the switch. I'm hoping that the nice juicy patch at the end of this series may help motivate people. 😄

The first four patches are part of !5241 (closed) so you can mostly ignore them.

cc: @anholt @cwabbott0 @bnieuwenhuizen @hakzsam @apinheiro

Edited by Faith Ekstrand

Merge request reports