🗒️Vulkan Tutorial
type
status
date
slug
summary
tags
category
icon
password
Vulkan大致初始化流程
- 创建Vulkan实例
- 创建Debug messenger(可选项,若编译选项为DEBUG时启用)
- 创建Window surface
- 选择物理设备并创建逻辑设备,取得队列(三种队列:图形、呈现、计算)
- 创建SwapChain(交换链)
Vulkan上下文
我们将在绘制、渲染的时候需要用到的Vulkan对象统一封装为Vulkan上下文:
我们抽象成以下的上下文初始化函数,进而初始化Vulkan:
可以发现顺序依次是:创建instance→挑选PhysicalDevice→创建surface→创建device。
其中surface的创建由窗口的API决定,比如GLFW、SDL和WIN32.
创建Instance
vulkan的instance由appInfo和createInfo决定,里面包括了Vulkan API版本的指定:
挑选Physical Device
考虑到大部分都是单一显卡,所以直接选择第一个就好,如果有多个设备需要考虑赋分机制:
创建Surface
如果是GLFW的话,用如下Callback:
请求Queue
我们要获取图形队列和呈现队列,所以写一个获取queueInfo的函数:
然后:
创建Command Pool
命令池是用来分配命令缓冲的,在渲染的时候需要用到命令缓冲,然后提交到队列: