turnip: Short-circuit if ladder generation for constant index SSBO/UBOs.
authorEmma Anholt <emma@anholt.net>
Fri, 25 Jun 2021 21:02:07 +0000 (14:02 -0700)
committerMarge Bot <eric+marge@anholt.net>
Mon, 28 Jun 2021 16:26:24 +0000 (16:26 +0000)
commitfd5293cc439ac8cf35f17bf596b6393a0f9929c1
tree190f26b54558a2802111f2fd354cac0c70f1ec95
parent0afab39af9bcf5448d74b9b849c13085fdf92983
turnip: Short-circuit if ladder generation for constant index SSBO/UBOs.

The compiler *can* eventually chew through all the copy prop, constant
folding, and dead_cf necessary to use just our constant index, but we can
save a whole lot of hassle by chasing the MOVs up front and finding the
constant.

dEQP-VK.ubo.3_level_array.scalar.row_major_mat4.both goes from 2.0s to
1.6s on a release build (3.1s to 2.1s for a debug build like we use in CI).

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11613>
src/freedreno/vulkan/tu_shader.c