<div dir="ltr"><div dir="ltr">This merge request, which I've marked WIP, is trying to push ANV in a more modern direction.  Whereas most other drivers have abandon binding tables in favour of descriptor buffers, we've been holding on to binding tables like our lives depended on it.  This MR attempts to start moving us into the future.  So far, I've done the following:<br><br> 1. Add a BO to the side of each descriptor set (push descriptors don't work yet).<br><br> 2. Moved the image param data into that BO.  This means more pulling in compute shaders on gen8 and earlier but it means push space is no longer a constraint on the number of images we can have.<br><br> 3. Switched SSBOs over to pushing a GPU address + size and using A64 messages in the shader to directly access the GPU address.  This only works if we have softpin because I really didn't want to try put relocations in descriptor buffers.<br><br>All in all, this whole thing makes me a bit uneasy.  It's a major change to our binding model and what we've got now has been working well for quite a while.  However, it is going to be needed in order to implement several extensions so we need to start moving that direction.  The one thing that gives me some hope is that AMD and NVIDIA have been doing things more-or-less this way for quite some time and it's working well for them.<br><br>Note: This MR depends on !70 (intel: Add support for split SEND instructions) which is why it's so many patches<br></div></div>