[toc]

# Vulkan 对象创建

  1. 通常 Vulkan 的对象创建遵循以下顺序

- VK [Object] CreateInfo Object 可以为任何东西,比如 Image , 用于描述待创建物体的信息
- vkCreate [Object] 一般实际的创建有四个参数:
- LogicDevice - Vk [Object] CreateInfo (上面说的) - userAllocator - Object 对象地址 比如上面的就先创建了 Buffer 的对象,
首先,创建了 Buffer 对象的描述对象, VkBufferCreateInfo
然后,调用内部接口 vkCreateBuffer() 来创建 Buffer 对象,传入 物理设备Buffer描述符分配器(传入null的话使用默认的)buffer的引用

# 申请和绑定内存

配合上图,主要分三段
- 1. 创建内存请求对象**VkMemoryRequirements**
- 2. 创建内存分配类型的信息对象 VkMemoryAllocateInfo , 告诉驱动想分配什么样的内存
- 3. 分配内存 VkDeviceMemory :
- vkAllocatorMemory (物理设备,分配信息,分配器,VkDeviceMemory 的引用)
- vkBindBufferMemory (物理设备,vkBuffer 的引用,VkDeviceMemory 对象,0)

# VK 的渲染管线

如上图, VkGraphicsPipelineCreateInfo 上面方框内的都是 Vulkan 的 可配置管线的阶段 ,可以看到,有 Shader 阶段 (编译?), 顶点 / 细分 / 视口 / 光栅化 / 多重采样 / 深度模板 / 颜色混合等阶段.