diff --git a/src/main.c b/src/main.c index de8d904..3badb19 100644 --- a/src/main.c +++ b/src/main.c @@ -28,6 +28,10 @@ debugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, return VK_FALSE; } +const char *deviceExtensions[] = {VK_KHR_SWAPCHAIN_EXTENSION_NAME}; +size_t deviceExtentionCount = + sizeof(deviceExtensions) / sizeof(deviceExtensions[0]); + const char *validationLayers[] = {"VK_LAYER_KHRONOS_validation"}; size_t validationLayerCount = sizeof(validationLayers) / sizeof(validationLayers[0]); @@ -267,9 +271,8 @@ QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device, return indices; } -bool checkDeviceExtensionSupport(VkPhysicalDevice device, - const char *requiredExtentions[], - size_t requiredExtentionCount) { +bool checkDeviceExtensionSupport(VkPhysicalDevice device) { + uint32_t availableExtensionCount; vkEnumerateDeviceExtensionProperties(device, NULL, &availableExtensionCount, NULL); @@ -277,10 +280,10 @@ bool checkDeviceExtensionSupport(VkPhysicalDevice device, vkEnumerateDeviceExtensionProperties(device, NULL, &availableExtensionCount, availableExtentions); - for (uint i = 0; i < requiredExtentionCount; i++) { + for (uint i = 0; i < deviceExtentionCount; i++) { bool extentionFound = false; for (uint j = 0; j < availableExtensionCount; j++) { - if (strcmp(availableExtentions[j].extensionName, requiredExtentions[i]) == + if (strcmp(availableExtentions[j].extensionName, deviceExtensions[i]) == 0) { extentionFound = true; break; @@ -298,12 +301,7 @@ bool isDeviceSuitable(VkPhysicalDevice device, VkSurfaceKHR *surface) { bool completeIndeces = indices.graphicsFamilyExists && indices.presentFamilyExists; - const char *requiredExtensions[] = {VK_KHR_SWAPCHAIN_EXTENSION_NAME}; - size_t requiredExtentionCount = - sizeof(requiredExtensions) / sizeof(const char *); - - bool extensionsSupported = checkDeviceExtensionSupport( - device, requiredExtensions, requiredExtentionCount); + bool extensionsSupported = checkDeviceExtensionSupport(device); return completeIndeces && extensionsSupported; } @@ -339,8 +337,6 @@ void pickPhysicalDevice(Application *app) { } void createLogicalDevice(Application *app) { - // Specify Queues - QueueFamilyIndices indices = findQueueFamilies(app->physicalDevice, &app->surface); @@ -384,6 +380,8 @@ void createLogicalDevice(Application *app) { createInfo.pQueueCreateInfos = queueCreateInfos; createInfo.queueCreateInfoCount = dyna_length(uniqueQueueFamilies); createInfo.pEnabledFeatures = &deviceFeatures; + createInfo.enabledExtensionCount = deviceExtentionCount; + createInfo.ppEnabledExtensionNames = deviceExtensions; dyna_deinit(uniqueQueueFamilies);