[Mesa-dev] [MR] anv: Implement SSBOs bindings with GPU addresses in a descriptor BO

Jason Ekstrand jason at jlekstrand.net
Fri Jan 11 18:17:57 UTC 2019


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:

 1. Add a BO to the side of each descriptor set (push descriptors don't
work yet).

 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.

 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.

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.

Note: This MR depends on !70 (intel: Add support for split SEND
instructions) which is why it's so many patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190111/d037d571/attachment.html>


More information about the mesa-dev mailing list