When the vertex stage is present in a pipeline, the vertex shader input
variables form an interface with the vertex input attributes. The vertex
shader input variables are matched by the Location and
Component decorations to the vertex input attributes specified
in the pVertexInputState member of the
VkGraphicsPipelineCreateInfo structure.
The vertex shader input variables listed by OpEntryPoint with the
Input storage class form the vertex input interface. These variables
must be identified with a Location decoration and can also be
identified with a Component decoration.
For the purposes of interface
matching: variables declared without a Component decoration
are considered to have a Component decoration of zero.
The number of available vertex input locations is given by the
maxVertexInputAttributes member of the VkPhysicalDeviceLimits
structure.
See Section 20.1.1, “Attribute Location and Component Assignment” for details.
All vertex shader inputs declared as above must have a corresponding attribute and binding in the pipeline.