asahi: Rework descriptors
This series has 3 goals:
- Decouple our core descriptor handling from the GL binding model. This is required to implement things like
txs
(texture size) queries on AGXV, which uses the Vulkan binding model. This is accomplished by forcing bindless in these cases, rather than hardcoding compiler knowledge of a GL-style binding table. - Enable a single GL shader to access descriptors from multiple shader stages. This is needed to merge shader stages in GL, which will be used for bringing up new shader stages.
- Reduce driver overhead by dirty tracking descriptor upload. Nice drawoverhead synthetic wins.