[toc]
# Vulkan 对象创建
- 通常 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 阶段 (编译?), 顶点 / 细分 / 视口 / 光栅化 / 多重采样 / 深度模板 / 颜色混合等阶段.