MCPcopy Create free account
hub / github.com/android/ndk-samples / createLogicalDeviceAndQueue

Method createLogicalDeviceAndQueue

hello-vulkan/app/src/main/cpp/hellovk.h:863–901  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

861// END DEVICE SUITABILITY
862
863void HelloVK::createLogicalDeviceAndQueue() {
864 QueueFamilyIndices indices = findQueueFamilies(physicalDevice);
865 std::vector<VkDeviceQueueCreateInfo> queueCreateInfos;
866 std::set<uint32_t> uniqueQueueFamilies = {indices.graphicsFamily.value(),
867 indices.presentFamily.value()};
868 float queuePriority = 1.0f;
869 for (uint32_t queueFamily : uniqueQueueFamilies) {
870 VkDeviceQueueCreateInfo queueCreateInfo{};
871 queueCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
872 queueCreateInfo.queueFamilyIndex = queueFamily;
873 queueCreateInfo.queueCount = 1;
874 queueCreateInfo.pQueuePriorities = &queuePriority;
875 queueCreateInfos.push_back(queueCreateInfo);
876 }
877
878 VkPhysicalDeviceFeatures deviceFeatures{};
879
880 VkDeviceCreateInfo createInfo{};
881 createInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
882 createInfo.queueCreateInfoCount =
883 static_cast<uint32_t>(queueCreateInfos.size());
884 createInfo.pQueueCreateInfos = queueCreateInfos.data();
885 createInfo.pEnabledFeatures = &deviceFeatures;
886 createInfo.enabledExtensionCount =
887 static_cast<uint32_t>(deviceExtensions.size());
888 createInfo.ppEnabledExtensionNames = deviceExtensions.data();
889 if (enableValidationLayers) {
890 createInfo.enabledLayerCount =
891 static_cast<uint32_t>(validationLayers.size());
892 createInfo.ppEnabledLayerNames = validationLayers.data();
893 } else {
894 createInfo.enabledLayerCount = 0;
895 }
896
897 VK_CHECK(vkCreateDevice(physicalDevice, &createInfo, nullptr, &device));
898
899 vkGetDeviceQueue(device, indices.graphicsFamily.value(), 0, &graphicsQueue);
900 vkGetDeviceQueue(device, indices.presentFamily.value(), 0, &presentQueue);
901}
902
903VkExtent2D HelloVK::chooseSwapExtent(
904 const VkSurfaceCapabilitiesKHR& capabilities) {

Callers

nothing calls this directly

Calls 2

dataMethod · 0.80
valueMethod · 0.45

Tested by

no test coverage detected