08/02/2020
文章目录
逻辑设备
使用物理设备创建逻辑设备,队列家族创建队列。逻辑设备由VkDevice声明,如果要创建逻辑设备,首先需要确认队列信息,逻辑设备代表处于初始化状态的设备,在创建逻辑设备时,可以选择可选特性,开启需要的扩展。
第一步:创建队列族
物理设备可以查询支持的不同的队列族,找到相关索引的队列族,就可以创建队列族。
逻辑设备需要两个队列,一个关于图形的另一个关于呈现的队列族。可以先绑定一个队列族。
QueueFamilyIndices indices = findQueueFamilies(physicalDevice);
std::vector<VkDeviceQueueCreateInfo> queueCreateInfos;
std::set<uint32_t> uniqueQueueFamilies = {
indices.graphicsFamily.value(), indices.presentFamily.value() };
float queuePriority = 1.0f;
for (uint32_t queueFamily : uniqueQueueFamilies) {
VkDeviceQueueCreateInfo queueCreateInfo{
};
queueCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
queueCreateInfo