Added check for swapchain extention
This commit is contained in:
parent
da681747e7
commit
cbda78de7b
1 changed files with 31 additions and 7 deletions
38
src/main.c
38
src/main.c
|
|
@ -267,21 +267,45 @@ QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device,
|
||||||
return indices;
|
return indices;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ckeckDeviceExtensionSupport(VkPhysicalDevice device) {
|
bool checkDeviceExtensionSupport(VkPhysicalDevice device,
|
||||||
uint32_t extensionCount;
|
const char *requiredExtentions[],
|
||||||
vkEnumerateDeviceExtensionProperties(device, NULL, &extensionCount, NULL);
|
size_t requiredExtentionCount) {
|
||||||
|
uint32_t availableExtensionCount;
|
||||||
VkExtensionProperties availableExtentions[extensionCount];
|
vkEnumerateDeviceExtensionProperties(device, NULL, &availableExtensionCount,
|
||||||
vkEnumerateDeviceExtensionProperties(device, NULL, &extensionCount,
|
NULL);
|
||||||
|
VkExtensionProperties availableExtentions[availableExtensionCount];
|
||||||
|
vkEnumerateDeviceExtensionProperties(device, NULL, &availableExtensionCount,
|
||||||
availableExtentions);
|
availableExtentions);
|
||||||
|
|
||||||
|
for (uint i = 0; i < requiredExtentionCount; i++) {
|
||||||
|
bool extentionFound = false;
|
||||||
|
for (uint j = 0; j < availableExtensionCount; j++) {
|
||||||
|
if (strcmp(availableExtentions[j].extensionName, requiredExtentions[i]) ==
|
||||||
|
0) {
|
||||||
|
extentionFound = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!extentionFound) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isDeviceSuitable(VkPhysicalDevice device, VkSurfaceKHR *surface) {
|
bool isDeviceSuitable(VkPhysicalDevice device, VkSurfaceKHR *surface) {
|
||||||
QueueFamilyIndices indices = findQueueFamilies(device, surface);
|
QueueFamilyIndices indices = findQueueFamilies(device, surface);
|
||||||
|
bool completeIndeces =
|
||||||
|
indices.graphicsFamilyExists && indices.presentFamilyExists;
|
||||||
|
|
||||||
return 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);
|
||||||
|
|
||||||
|
return completeIndeces && extensionsSupported;
|
||||||
}
|
}
|
||||||
|
|
||||||
void pickPhysicalDevice(Application *app) {
|
void pickPhysicalDevice(Application *app) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue