tu: Initial implementation of VK_EXT_inline_uniform_block
authorConnor Abbott <cwabbott0@gmail.com>
Tue, 26 Jul 2022 10:25:30 +0000 (12:25 +0200)
committerMarge Bot <emma+marge@anholt.net>
Wed, 14 Sep 2022 12:46:01 +0000 (12:46 +0000)
commit201851a3d12db81ebcf7ae085da15a943a947324
tree00cac976adf91f27b65c047ab57a389961fcf085
parent15f3274ea6150ee1b778b9e891269692496cab19
tu: Initial implementation of VK_EXT_inline_uniform_block

This is a trivial implementation where we just insert a UBO descriptor
pointing to the actual data and then treat it as a normal UBO everywhere
else. In theory an indirect CP_LOAD_STATE would be more efficient than
ldc.k to preload inline uniform blocks to constants. However we will
always need the UBO descriptor anyway, even if we lower the limits
enough to always be able to preload them, because with variable pointers
we may have a pointer that could be to either an inline uniform block or
regular uniform block. So, using an indirect CP_LOAD_STATE should be an
optimization on top of this.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17960>
docs/features.txt
src/freedreno/vulkan/tu_descriptor_set.c
src/freedreno/vulkan/tu_descriptor_set.h
src/freedreno/vulkan/tu_device.c
src/freedreno/vulkan/tu_pipeline.c
src/freedreno/vulkan/tu_shader.c