From f6e22542848a9d1f06e2bfba020dd7dffb050b62 Mon Sep 17 00:00:00 2001 From: Greg Wells Date: Tue, 15 Jul 2025 12:32:54 -0400 Subject: [PATCH] fix seg fault --- .../src/output_device/vulkan_output_device.c | 19 +------------------ .../src/output_device/gryphn_output_device.h | 6 +++++- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/projects/apis/vulkan/src/output_device/vulkan_output_device.c b/projects/apis/vulkan/src/output_device/vulkan_output_device.c index 1a1f4a8..63a8615 100644 --- a/projects/apis/vulkan/src/output_device/vulkan_output_device.c +++ b/projects/apis/vulkan/src/output_device/vulkan_output_device.c @@ -45,7 +45,7 @@ gnReturnCode createOutputDevice(gnOutputDeviceHandle outputDevice, gnInstanceHan if (vkCreateDevice(deviceInfo.physicalDevice->physicalDevice->device, &deviceCreateInfo, NULL, &outputDevice->outputDevice->device) != VK_SUCCESS) return GN_FAILED_TO_CREATE_DEVICE; - outputDevice->outputDevice->queues = malloc(sizeof(VkQueue) * deviceInfo.physicalDevice->physicalDevice->neededQueueCount); + outputDevice->outputDevice->queues = malloc(sizeof(vulkanQueue) * deviceInfo.physicalDevice->physicalDevice->neededQueueCount); uint32_t transferQueue = 0; for (int i = 0; i < deviceInfo.physicalDevice->physicalDevice->neededQueueCount; i++) { outputDevice->outputDevice->queues[i].queueInfo = deviceInfo.physicalDevice->physicalDevice->neededQueues[i]; @@ -61,20 +61,6 @@ gnReturnCode createOutputDevice(gnOutputDeviceHandle outputDevice, gnInstanceHan } } - uint32_t queueCount = 0; - vkGetPhysicalDeviceQueueFamilyProperties( - deviceInfo.physicalDevice->physicalDevice->device, - &queueCount, - NULL - ); - - VkQueueFamilyProperties* queueFamilies = malloc(sizeof(VkQueueFamilyProperties) * queueCount); - vkGetPhysicalDeviceQueueFamilyProperties( - deviceInfo.physicalDevice->physicalDevice->device, - &queueCount, - queueFamilies - ); - VkCommandPoolCreateInfo poolInfo = { .sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, .flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, @@ -84,9 +70,6 @@ gnReturnCode createOutputDevice(gnOutputDeviceHandle outputDevice, gnInstanceHan if (vkCreateCommandPool(outputDevice->outputDevice->device, &poolInfo, NULL, &outputDevice->outputDevice->transferCommandPool) != VK_SUCCESS) return GN_FAILED_TO_CREATE_COMMAND_POOL; - free(queueCreateInfos); - free(queueFamilies); - VkFenceCreateInfo fenceInfo = { .sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO }; if (vkCreateFence(outputDevice->outputDevice->device, &fenceInfo, NULL, &outputDevice->outputDevice->barrierFence) != VK_SUCCESS) return GN_FAILED_TO_CREATE_FENCE; diff --git a/projects/core/src/output_device/gryphn_output_device.h b/projects/core/src/output_device/gryphn_output_device.h index 5d7fb05..75e4dc2 100644 --- a/projects/core/src/output_device/gryphn_output_device.h +++ b/projects/core/src/output_device/gryphn_output_device.h @@ -8,10 +8,14 @@ // // float* queuePriority; // } gnDeviceQueueInfo; +typedef struct gnOutputDeviceEnabledFeatures { + +} gnOutputDeviceEnabledFeatures; + typedef struct gnOutputDeviceInfo { // uint32_t queueInfoCount; // gnDeviceQueueInfo* queueInfos; - gnPhysicalDeviceFeatures enabledFeatures; + gnOutputDeviceEnabledFeatures enabledFeatures; gnPhysicalDevice physicalDevice; } gnOutputDeviceInfo;