MCPcopy Create free account
hub / github.com/PacktPublishing/3D-Graphics-Rendering-Cookbook / createDevice2

Function createDevice2

shared/UtilsVulkan.cpp:391–429  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

389}
390
391VkResult createDevice2(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 deviceFeatures2, uint32_t graphicsFamily, VkDevice* device)
392{
393 const std::vector<const char*> extensions =
394 {
395 VK_KHR_SWAPCHAIN_EXTENSION_NAME,
396 VK_KHR_MAINTENANCE3_EXTENSION_NAME,
397 VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME,
398 // for legacy drivers Vulkan 1.1
399 VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME
400 };
401
402 const float queuePriority = 1.0f;
403
404 const VkDeviceQueueCreateInfo qci =
405 {
406 .sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
407 .pNext = nullptr,
408 .flags = 0,
409 .queueFamilyIndex = graphicsFamily,
410 .queueCount = 1,
411 .pQueuePriorities = &queuePriority
412 };
413
414 const VkDeviceCreateInfo ci =
415 {
416 .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
417 .pNext = &deviceFeatures2,
418 .flags = 0,
419 .queueCreateInfoCount = 1,
420 .pQueueCreateInfos = &qci,
421 .enabledLayerCount = 0,
422 .ppEnabledLayerNames = nullptr,
423 .enabledExtensionCount = static_cast<uint32_t>(extensions.size()),
424 .ppEnabledExtensionNames = extensions.data(),
425 .pEnabledFeatures = nullptr
426 };
427
428 return vkCreateDevice(physicalDevice, &ci, nullptr, device);
429}
430
431VkResult createDevice2WithCompute(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 deviceFeatures2, uint32_t graphicsFamily, uint32_t computeFamily, VkDevice* device)
432{

Callers 2

createDevice2WithComputeFunction · 0.85
initVulkanRenderDevice2Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected