aco: Compact LDS usage
This MR reduces the LDS usage of ACO by about 35% by packing the driver locations closer together. Depends on !4351 (merged) for correct behaviour.
- In order to be able to pack the driver locations, a new NIR linking helper is introduced which looks at the outputs of a producer and the inputs of a consumer and creates a mask from both of them. This mask is then used for assigning driver locations. The new linking helper can be used by other drivers as well, if they so desire.
- RADV makes use of the new NIR linking helper for assigning default driver locations to I/O variables before shader compilation.
- ACO will use the new default driver locations, and it also uses the number of linked I/O variables for determining the TCS input/output size, which the LDS size calculation is based on. The ESGS item size is also adjusted.