Enabled device extentions

This commit is contained in:
Warwick New 2024-12-24 15:15:52 +00:00
parent cbda78de7b
commit d223af2df9

View file

@ -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);