iris: Optimize binding table layouts and remove pointless stalls on Icelake and XeHP
This series updates iris to use newer binding table layouts which are more efficient, and allocates larger binders:
- Current: 15:5 (64kB limit, 32B alignment)
- Icelake post-series: 18:8 (512kB limit, 256B alignment)
- XeHP post-series: 20:5 (1MB limit, 32B alignment)
Every time we update the binder, we have to stall. Larger binders remove stalls. On Icelake, we were able to remove 10-15% of binder stalls. On XeHP, 90% of binder stalls get eliminated on the traces I ran. This should help performance.
See !4995 and @llandwerlin's rebased branch where we're trying to do this in anv, too.