pan/bi: Add transform feedback lowering pass
authorAlyssa Rosenzweig <alyssa@collabora.com>
Thu, 2 Jun 2022 14:50:54 +0000 (10:50 -0400)
committerMarge Bot <emma+marge@anholt.net>
Sat, 4 Jun 2022 14:35:56 +0000 (14:35 +0000)
commitae3fa6cc1d01975df1b81d75b9e4bd5df3792625
tree5dfe750af945977b9a2242e0de5b7072c6f662ab
parentdc2d8a643ff6628dd359b712e85746b4e1ed0d1b
pan/bi: Add transform feedback lowering pass

Add a simple NIR-based implementation of transform feedback, appropriate for
OpenGL ES 3.1 class hardware (compute but no geometry or tessellation shaders).
Stores to varyings that will be captured are replaced by stores to transform
feedback buffers and some addressing math. This allows implementing the semantic
of transform feedback in a compute-like stage.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15720>
src/panfrost/bifrost/bi_lower_xfb.c [new file with mode: 0644]
src/panfrost/bifrost/bifrost_compile.c
src/panfrost/bifrost/bifrost_nir.h
src/panfrost/bifrost/meson.build