vkCreateDevice
函数原型
VkResult vkCreateDevice(
VkPhysicalDevice physicalDevice,
const VkDeviceCreateInfo* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkDevice* pDevice);
描述
创建逻辑设备,逻辑设备可以看成是一个物理设备的连接。
参数
physicalDevice
: 必须是调用vkEnumeratePhysicalDevices返回的一个物理设备句柄。pCreateInfo
:VkDeviceCreateInfo
结构体指针,包含创建逻辑device的信息。pAllocator
:host memory
分配器。pDevice
: 创建返回的VkDevice
句柄。
返回值
VK_SUCCESS
: 成功创建VkDevice
。- 其他 : 创建失败。
代码示例
VkDevice CreateDevice()
{
VkDevice device = VK_NULL_HANDLE;
VkDeviceQueueCreateInfo queueCreateInfo = {};
queueCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
queueCreateInfo.queueFamilyIndex = 0;
queueCreateInfo.queueCount = 1;
const float defaultQueuePriority = 0.0f;
queueCreateInfo.pQueuePriorities = &defaultQueuePriority;
VkDeviceCreateInfo deviceCreateInfo = {};
deviceCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
deviceCreateInfo.queueCreateInfoCount = 1;
deviceCreateInfo.pQueueCreateInfos = &queueCreateInfo;
VkPhysicalDevice physicalDevice = GetPhysicalDevices(0);
vkCreateDevice(physicalDevice, &deviceCreateInfo, nullptr, &device);
return device;
}