Buffer 在Vulkan里面,所有需要存储的资源都视为Buffer。其实这个不难理解,因为无论是Texture、VertexBuffer、IndexBuffer或者UniformBuffer等等,其实都最终都是一段内存,因此Vulkan将这些资源都视为Buffer。创建Buffer时就需要指定Buffer的大小、用途、共享模式等等。如下所示: 1 2 3 4 5 VkBufferCreateInfo vertexBufferInfo; ZeroVulkanStruct(vertexBufferInfo, VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO); vertexBufferInfo.size = vertices.size() * sizeof (Vertex); vertexBufferInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; VERIFYVULKANRESULT(vkCreateBuffer(m_Device, &vertexBufferInfo, VULKAN_CPU_ALLOCATOR, &tempVertexBuffer.buffer)); 内存 但是Buffer并不会自己分配内存,需要手动分配一端内存出来并与之绑定。由于在GPU中需要内存对齐