To create a graphics pipeline that uses the following vertex description:
struct Vertex { float x, y, z, w; uint8_t u, v; };
The application could use the following set of structures:
const VkVertexInputBindingDescription binding = { 0, // binding sizeof(Vertex), // stride VK_VERTEX_INPUT_RATE_VERTEX // inputRate }; const VkVertexInputAttributeDescription attributes[] = { { 0, // location binding.binding, // binding VK_FORMAT_R32G32B32A32_SFLOAT, // format 0 // offset }, { 1, // location binding.binding, // binding VK_FORMAT_R8G8_UNORM, // format 4 * sizeof(float) // offset } }; const VkPipelineVertexInputStateCreateInfo viInfo = { VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO, // sType NULL, // pNext 0, // flags 1, // vertexBindingDescriptionCount &binding, // pVertexBindingDescriptions 2, // vertexAttributeDescriptionCount &attributes[0] // pVertexAttributeDescriptions };