From 63ec31216e408211ef825ce4c2dd4c8e137383ad Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Wed, 1 Oct 2025 11:37:40 -0400 Subject: [PATCH] forgot to return array of devices --- .../vulkan/src/instance/vulkan_instance.c | 2 +- .../output_device/vulkan_physical_device.c | 23 ++++++++----------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/projects/apis/vulkan/src/instance/vulkan_instance.c b/projects/apis/vulkan/src/instance/vulkan_instance.c index 2418ec1..b2a7050 100644 --- a/projects/apis/vulkan/src/instance/vulkan_instance.c +++ b/projects/apis/vulkan/src/instance/vulkan_instance.c @@ -111,7 +111,7 @@ gnReturnCode vulkanCreateInstance(gnInstanceHandle instance, gnInstanceCreateInf } gnReturnCode vulkanQueryDevices(gnInstanceHandle handle, uint32_t* count, gnPhysicalDeviceHandle* devices, gryphnInstanceFunctionLayers* next) { - return VkResultToGnReturnCode(vkEnumeratePhysicalDevices(handle->instance->vk_instance, count, NULL)); + return VkResultToGnReturnCode(vkEnumeratePhysicalDevices(handle->instance->vk_instance, count, (VkPhysicalDevice*)devices)); } gnBool vulkanIsInstanceSuitable(gnInstanceHandle instance, gnSuitableField field, gryphnInstanceFunctionLayers* next) { diff --git a/projects/apis/vulkan/src/output_device/vulkan_physical_device.c b/projects/apis/vulkan/src/output_device/vulkan_physical_device.c index 8d1e99d..52eaf80 100644 --- a/projects/apis/vulkan/src/output_device/vulkan_physical_device.c +++ b/projects/apis/vulkan/src/output_device/vulkan_physical_device.c @@ -13,7 +13,6 @@ inline gnPhysicalDeviceType vulkanDeviceTypeToGryphn(VkPhysicalDeviceType type) case VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM: return GN_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU; // WE SHOULD NEVER HAVE TO DEAL WITH THIS ERROR } } - gnPhysicalDeviceProperties vulkanQueryPhysicalDeviceProperties(gnInstance instance, gnPhysicalDeviceHandle device, gryphnInstanceFunctionLayers* layers) { VkPhysicalDeviceProperties properties; vkGetPhysicalDeviceProperties((VkPhysicalDevice)device, &properties); @@ -174,15 +173,13 @@ vulkanNeededQueue* vulkanLoadNeededQueues(gnPhysicalDevice physicalDevice, uint3 } -// gnBool deviceCanPresentToSurface(gnPhysicalDevice physicalDevice, gnWindowSurface surface) { -// vulkanPhysicalDevice* device = (vulkanPhysicalDevice*)physicalDevice; - -// uint32_t queueFamilyCount = 0; -// vkGetPhysicalDeviceQueueFamilyProperties(device->device, &queueFamilyCount, NULL); -// for (uint32_t i = 0; i < queueFamilyCount; i++) { -// VkBool32 supportsPresent; -// vkGetPhysicalDeviceSurfaceSupportKHR(device->device, i, surface->windowSurface->surface, &supportsPresent); -// if (supportsPresent) return GN_TRUE; -// } -// return GN_FALSE; -// } +gnBool deviceCanPresentToSurface(gnPhysicalDevice physicalDevice, gnWindowSurface surface) {; + uint32_t queueFamilyCount = 0; + vkGetPhysicalDeviceQueueFamilyProperties((VkPhysicalDevice)physicalDevice, &queueFamilyCount, NULL); + for (uint32_t i = 0; i < queueFamilyCount; i++) { + VkBool32 supportsPresent; + vkGetPhysicalDeviceSurfaceSupportKHR((VkPhysicalDevice)physicalDevice, i, surface->windowSurface->surface, &supportsPresent); + if (supportsPresent) return GN_TRUE; + } + return GN_FALSE; +}