freedreno/turnip: GL uniforms vec3 loads fix, UBO i/o vectorizing
Fixes a bug in freedreno in the default GL uniform block where PIPE_CAP_PACKED_UNIOFORMS
causes us to have uniform vectors straddling a vec4 boundary and they will load incorrectly if not promoted to the constant file. To keep this fix from blowing up shader-db too badly, we fix up the align_mul/offsets we generate as much as we can, both at the NIR generation level and after the fact using the i/o vectorizer.
overall shader-db (affecting only shaders where alignment bugs were fixed):
total instructions in shared programs: 8019997 -> 8755851 (9.18%)
total cat6 in shared programs: 87683 -> 97027 (10.66%)
Edited by Emma Anholt