lavapipe: reduce the lp_descriptor size to get vulkan conformance
What does this MR do and why?
Vulkan states the descriptor size needs to be 256 bytes or less, we are over that.
This refactors some stuff then does 3 things to reduce it:
- cuts height/depth to uint16_t, first/last_level down to uint8_t.
- multisample textures don't have mips so merge sample_stride into mip_offset[15] and sample_num into last_level
- moves sampler_index from the outside struct into a gap in the inside structs (this is probably going to be dodgiest bit)
with all 3, the struct size is 256, the one more patch to make the dEQP-VK.binding_model.descriptor_buffer.basic.limits test pass.
Edited by Dave Airlie