设备初始化
Instance --> GPU --> Device
Instance表示具体的Vulkan应用。在一个应用程序中可以创建多个实例,这些实例之间相互独立,互不干扰。
当调用API创建Vulkan实例的时候,Vulkan SDK内部会经由驱动装载器(loader)查找可用的GPU设备。
创建Vulkan实例需要两个输入信息:
应用程序的信息
内存分配回调函数
Vulkan通过用户输入的内存分配器来分配内存。
创建好Instance,就可以用Instance枚举所有可用的Vulkan GPU设备。
有了GPU设备,就可以获取具体GPU的信息。如果系统中安装了多个GPU设备,就可用GPU信息比较GPU设备之间的兼容性等。
找到了合适的GPU后,就可以通过GPU创建设备示例。
绘制
Queues
有了设备,就可以创建命令队列。命令队列是与设备绑定的,不能跨设备使用。
队列封装了图形、计算、直接内存访问功能,独立调度、异步等调度操作。
Command Buffer
有了设备,就可以创建命令缓冲。命令缓冲是绘制命令的批次集合。
用户可创建任意多的命令缓冲,支持在多线程中创建。
Command占用的内存是通过Command Buffer内存池动态分配,不需要指定内存池的大小。
Command
在命令缓冲区中可以创建多个命令。多个命令完成批次即命令缓冲后