freedreno/a6xx, tu: Shader clip/cull distances
This implements gl_ClipDistance
and gl_CullDistance
on a6xx, and changes the legacy clip plane path to use the HW clip distance support on a6xx. This fixes artifacts with neverball, and it's required by DXVK to expose feature level 9_1
and above.
I ran into a few bugs with the tess/GS io lowering due to using compact arrays in NIR, but it seemed like there were more fundamental problems with it, so I rewrote it. There was also one core NIR patch required, due to how we compact VPC locations per-component.