This is the code that creates Metal vertex descriptors:
The expected behavior is that the location in the vertex shader matches the location in the attributes array; instead this code fills the array from 0 to count-1, which doesn't work for vertex shaders that have 3 input attributes with locations 0, 2, 4. The array index should instead use VkVertexInputAttributeDescription::location.
@zeux this is an unbelievably precise definition of a bug, almost carrying a fix in it self :). Thank you for chasing this down! Fix is on the way.
Thanks! FWIW based on cursory inspection CTS doesn鈥檛 seem to cover this, I filed https://github.com/KhronosGroup/VK-GL-CTS/issues/121 for this as well.
Most helpful comment
Thanks! FWIW based on cursory inspection CTS doesn鈥檛 seem to cover this, I filed https://github.com/KhronosGroup/VK-GL-CTS/issues/121 for this as well.