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