freedreno/ir3: Enable the i/o vectorizer on UBOs.
authorEric Anholt <eric@anholt.net>
Thu, 20 Aug 2020 20:29:58 +0000 (13:29 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 30 Sep 2020 19:53:43 +0000 (19:53 +0000)
commit49ec863e8303170fd2a871689f9d9366215dca7e
tree1c8864a6b3c0918ee024454f3659cd058ccc66e6
parente3f465580511153daca9ec9085375bd518ed5b24
freedreno/ir3: Enable the i/o vectorizer on UBOs.

This will merge loads of UBO components together into vec4 loads.  At the
same time, it improves the alignment information on our loads, fixing the
regression from the vec3 loads fix.

shader-db results:
total instructions in shared programs: 12829370 -> 8755851 (-31.75%)
total cat6 in shared programs: 145840 -> 97027 (-33.47%)

Overall results from before the vec3 fix:
total instructions in shared programs: 8019997 -> 8755851 (9.18%)
total cat6 in shared programs: 87683 -> 97027 (10.66%)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6612>
src/freedreno/ir3/ir3_nir.c