Enabled device extentions
This commit is contained in:
parent
cbda78de7b
commit
d223af2df9
1 changed files with 11 additions and 13 deletions
24
src/main.c
24
src/main.c
|
|
@ -28,6 +28,10 @@ debugCallback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
|
||||||
return VK_FALSE;
|
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"};
|
const char *validationLayers[] = {"VK_LAYER_KHRONOS_validation"};
|
||||||
size_t validationLayerCount =
|
size_t validationLayerCount =
|
||||||
sizeof(validationLayers) / sizeof(validationLayers[0]);
|
sizeof(validationLayers) / sizeof(validationLayers[0]);
|
||||||
|
|
@ -267,9 +271,8 @@ QueueFamilyIndices findQueueFamilies(VkPhysicalDevice device,
|
||||||
return indices;
|
return indices;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool checkDeviceExtensionSupport(VkPhysicalDevice device,
|
bool checkDeviceExtensionSupport(VkPhysicalDevice device) {
|
||||||
const char *requiredExtentions[],
|
|
||||||
size_t requiredExtentionCount) {
|
|
||||||
uint32_t availableExtensionCount;
|
uint32_t availableExtensionCount;
|
||||||
vkEnumerateDeviceExtensionProperties(device, NULL, &availableExtensionCount,
|
vkEnumerateDeviceExtensionProperties(device, NULL, &availableExtensionCount,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
@ -277,10 +280,10 @@ bool checkDeviceExtensionSupport(VkPhysicalDevice device,
|
||||||
vkEnumerateDeviceExtensionProperties(device, NULL, &availableExtensionCount,
|
vkEnumerateDeviceExtensionProperties(device, NULL, &availableExtensionCount,
|
||||||
availableExtentions);
|
availableExtentions);
|
||||||
|
|
||||||
for (uint i = 0; i < requiredExtentionCount; i++) {
|
for (uint i = 0; i < deviceExtentionCount; i++) {
|
||||||
bool extentionFound = false;
|
bool extentionFound = false;
|
||||||
for (uint j = 0; j < availableExtensionCount; j++) {
|
for (uint j = 0; j < availableExtensionCount; j++) {
|
||||||
if (strcmp(availableExtentions[j].extensionName, requiredExtentions[i]) ==
|
if (strcmp(availableExtentions[j].extensionName, deviceExtensions[i]) ==
|
||||||
0) {
|
0) {
|
||||||
extentionFound = true;
|
extentionFound = true;
|
||||||
break;
|
break;
|
||||||
|
|
@ -298,12 +301,7 @@ bool isDeviceSuitable(VkPhysicalDevice device, VkSurfaceKHR *surface) {
|
||||||
bool completeIndeces =
|
bool completeIndeces =
|
||||||
indices.graphicsFamilyExists && indices.presentFamilyExists;
|
indices.graphicsFamilyExists && indices.presentFamilyExists;
|
||||||
|
|
||||||
const char *requiredExtensions[] = {VK_KHR_SWAPCHAIN_EXTENSION_NAME};
|
bool extensionsSupported = checkDeviceExtensionSupport(device);
|
||||||
size_t requiredExtentionCount =
|
|
||||||
sizeof(requiredExtensions) / sizeof(const char *);
|
|
||||||
|
|
||||||
bool extensionsSupported = checkDeviceExtensionSupport(
|
|
||||||
device, requiredExtensions, requiredExtentionCount);
|
|
||||||
|
|
||||||
return completeIndeces && extensionsSupported;
|
return completeIndeces && extensionsSupported;
|
||||||
}
|
}
|
||||||
|
|
@ -339,8 +337,6 @@ void pickPhysicalDevice(Application *app) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void createLogicalDevice(Application *app) {
|
void createLogicalDevice(Application *app) {
|
||||||
// Specify Queues
|
|
||||||
|
|
||||||
QueueFamilyIndices indices =
|
QueueFamilyIndices indices =
|
||||||
findQueueFamilies(app->physicalDevice, &app->surface);
|
findQueueFamilies(app->physicalDevice, &app->surface);
|
||||||
|
|
||||||
|
|
@ -384,6 +380,8 @@ void createLogicalDevice(Application *app) {
|
||||||
createInfo.pQueueCreateInfos = queueCreateInfos;
|
createInfo.pQueueCreateInfos = queueCreateInfos;
|
||||||
createInfo.queueCreateInfoCount = dyna_length(uniqueQueueFamilies);
|
createInfo.queueCreateInfoCount = dyna_length(uniqueQueueFamilies);
|
||||||
createInfo.pEnabledFeatures = &deviceFeatures;
|
createInfo.pEnabledFeatures = &deviceFeatures;
|
||||||
|
createInfo.enabledExtensionCount = deviceExtentionCount;
|
||||||
|
createInfo.ppEnabledExtensionNames = deviceExtensions;
|
||||||
|
|
||||||
dyna_deinit(uniqueQueueFamilies);
|
dyna_deinit(uniqueQueueFamilies);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue