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.