zink: vertex binding improvements
!29069 (merged) is a respite from most mismatches between GL and VK, but it doesn't resolve all issues:
- if a driver doesn't support the base feature (and there's a real, pressing, permanent need to care about such drivers):
- generate masks of int/uint/float vattrib types in
zink_shader_create
- force-apply the right type based on these masks when binding attribs
- seriously don't make a MR for this unless it's actually needed because it will be spaghetti code
- generate masks of int/uint/float vattrib types in
- if a driver doesn't support
nativeUnalignedPerformance
- try and copy the vertex buffer to an aligned offset pre-draw using reordering
- need to only do on-demand copies when the vbuf contents change
- unclear whether this should happen in u_vbuf (using
PIPE_CAP_VERTEX_ATTRIB_ELEMENT_ALIGNED_ONLY
) or in the driver proper?
- try and copy the vertex buffer to an aligned offset pre-draw using reordering