v3dv: push constant improvements
A bunch of improvements for push constants, including:
- Not saving/restoring command buffer push constant data for meta operations if the meta operations don't push constants or the command buffer had no dirty push constant data.
- Instead of always copying MAX_PUSH_CONSTANTS_SIZE to the UBO, we only copy the range that is actually used.
- Fixes a bug where we only mapped bytes 0..MAX_PUSH_CONSTANTS_SIZE and would try to write push constants updates beyond that range.
- Fixes a bug where we could fail to add the push constants BO to the job if there is an inline uniform buffer with indirect indexing.
- Handle the case where we exhaust BO memory for push constant data.
Edited by Iago Toral