From 50b285e824ca73f45cafed2bb5fc17ec10a86779 Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Sun, 3 Aug 2025 13:33:49 -0400 Subject: [PATCH] fix output devices --- projects/apis/metal/src/devices/metal_output_device.m | 5 +---- .../apis/metal/src/devices/metal_output_devices.h | 2 +- .../vulkan/src/output_device/vulkan_output_device.c | 11 ++++++----- .../vulkan/src/output_device/vulkan_output_devices.h | 2 +- .../core/src/output_device/gryphn_output_device.c | 4 ++-- .../core/src/output_device/gryphn_output_device.h | 2 +- projects/loader/src/gryphn_instance_functions.h | 2 +- .../function_loader/src/instance_functions.c | 4 ++-- .../function_loader/src/instance_functions.h | 2 +- 9 files changed, 16 insertions(+), 18 deletions(-) diff --git a/projects/apis/metal/src/devices/metal_output_device.m b/projects/apis/metal/src/devices/metal_output_device.m index b8e48e8..6ca3ae9 100644 --- a/projects/apis/metal/src/devices/metal_output_device.m +++ b/projects/apis/metal/src/devices/metal_output_device.m @@ -15,10 +15,7 @@ void waitForMetalDevice(gnOutputDeviceHandle device) { [device->outputDevice->executingCommandBuffer waitUntilCompleted]; } -void destroyMetalOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device) { - // for (int i = 0; i < device->outputDevice->queueCount; i++) { - // [device->outputDevice->queues[i] release]; - // } +void destroyMetalOutputDevice(gnOutputDeviceHandle device) { [device->outputDevice->transferQueue release]; [device->outputDevice->device release]; free(device->outputDevice); diff --git a/projects/apis/metal/src/devices/metal_output_devices.h b/projects/apis/metal/src/devices/metal_output_devices.h index 7a5fcad..f1a91f2 100644 --- a/projects/apis/metal/src/devices/metal_output_devices.h +++ b/projects/apis/metal/src/devices/metal_output_devices.h @@ -21,4 +21,4 @@ gnBool metalCanDevicePresent(gnPhysicalDevice device, gnWindowSurface windowSurf gnReturnCode createMetalOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle outputDevice, gnOutputDeviceInfo deviceInfo); void waitForMetalDevice(gnOutputDeviceHandle device); -void destroyMetalOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device); +void destroyMetalOutputDevice(gnOutputDeviceHandle device); 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 9f82e1d..9991973 100644 --- a/projects/apis/vulkan/src/output_device/vulkan_output_device.c +++ b/projects/apis/vulkan/src/output_device/vulkan_output_device.c @@ -5,6 +5,7 @@ #include "instance/gryphn_instance.h" #include "commands/command_buffer/vulkan_command_buffer.h" #include "vulkan_result_converter.h" +#include "string.h" gnReturnCode createVulkanOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device, gnOutputDeviceInfo deviceInfo) { device->outputDevice = malloc(sizeof(gnPlatformOutputDevice)); @@ -17,7 +18,7 @@ gnReturnCode createVulkanOutputDevice(gnInstanceHandle instance, gnOutputDeviceH queueCreateInfos = malloc(sizeof(VkDeviceQueueCreateInfo) * deviceInfo.physicalDevice->physicalDevice->neededQueueCount); createQueueCount = deviceInfo.physicalDevice->physicalDevice->neededQueueCount; float queuePriority = 1.0f; - for (int i = 0; i < deviceInfo.physicalDevice->physicalDevice->neededQueueCount; i++) { + for (uint32_t i = 0; i < deviceInfo.physicalDevice->physicalDevice->neededQueueCount; i++) { queueCreateInfos[i].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; queueCreateInfos[i].flags = 0; queueCreateInfos[i].queueCount = 1; @@ -27,7 +28,7 @@ gnReturnCode createVulkanOutputDevice(gnInstanceHandle instance, gnOutputDeviceH } else { createQueueCount = deviceInfo.queueInfoCount; queueCreateInfos = malloc(sizeof(VkDeviceQueueCreateInfo) * deviceInfo.queueInfoCount); - for (int i = 0; i < deviceInfo.queueInfoCount; i++) { + for (uint32_t i = 0; i < deviceInfo.queueInfoCount; i++) { queueCreateInfos[i].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; queueCreateInfos[i].flags = 0; queueCreateInfos[i].queueCount = deviceInfo.queueInfos[i].queueCount; @@ -49,7 +50,7 @@ gnReturnCode createVulkanOutputDevice(gnInstanceHandle instance, gnOutputDeviceH deviceCreateInfo.ppEnabledExtensionNames = vkGetGryphnDeviceExtensions(&deviceCreateInfo.enabledExtensionCount, deviceInfo.physicalDevice->physicalDevice->device); device->outputDevice->enabledOversizedDescriptorPools = GN_FALSE; - for (int i = 0; i < deviceCreateInfo.enabledExtensionCount; i++) + for (uint32_t i = 0; i < deviceCreateInfo.enabledExtensionCount; i++) if (strcmp(deviceCreateInfo.ppEnabledExtensionNames[i], VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME) == 0) device->outputDevice->enabledOversizedDescriptorPools = GN_TRUE; if (instance->hasDebugger) @@ -66,7 +67,7 @@ gnReturnCode createVulkanOutputDevice(gnInstanceHandle instance, gnOutputDeviceH device->outputDevice->queues = malloc(sizeof(vulkanQueue) * deviceInfo.physicalDevice->physicalDevice->neededQueueCount); uint32_t transferQueue = 0; - for (int i = 0; i < deviceInfo.physicalDevice->physicalDevice->neededQueueCount; i++) { + for (uint32_t i = 0; i < deviceInfo.physicalDevice->physicalDevice->neededQueueCount; i++) { device->outputDevice->queues[i].queueInfo = deviceInfo.physicalDevice->physicalDevice->neededQueues[i]; vkGetDeviceQueue(device->outputDevice->device, deviceInfo.physicalDevice->physicalDevice->neededQueues[i].queueIndex, 0, &device->outputDevice->queues[i].queue); @@ -109,7 +110,7 @@ void waitForDevice(const gnOutputDeviceHandle device) { vkDeviceWaitIdle(device->outputDevice->device); } -void destroyVulkanOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device) { +void destroyVulkanOutputDevice(gnOutputDeviceHandle device) { vkDestroyFence(device->outputDevice->device, device->outputDevice->barrierFence, NULL); gnDestroyVulkanBuffer(&device->outputDevice->stagingBuffer, device->outputDevice->device); vkDestroyCommandPool(device->outputDevice->device, device->outputDevice->transferCommandPool, NULL); diff --git a/projects/apis/vulkan/src/output_device/vulkan_output_devices.h b/projects/apis/vulkan/src/output_device/vulkan_output_devices.h index a4e9d34..6300f66 100644 --- a/projects/apis/vulkan/src/output_device/vulkan_output_devices.h +++ b/projects/apis/vulkan/src/output_device/vulkan_output_devices.h @@ -32,4 +32,4 @@ void gnEndVulkanTransferOperation(gnDevice device, VkCommandBuffer commandBuffer gnReturnCode createVulkanOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device, gnOutputDeviceInfo deviceInfo); void waitForDevice(gnOutputDeviceHandle device); -void destroyVulkanOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device); +void destroyVulkanOutputDevice(gnOutputDeviceHandle device); diff --git a/projects/core/src/output_device/gryphn_output_device.c b/projects/core/src/output_device/gryphn_output_device.c index 9064bd3..a7987a0 100644 --- a/projects/core/src/output_device/gryphn_output_device.c +++ b/projects/core/src/output_device/gryphn_output_device.c @@ -11,7 +11,7 @@ gnReturnCode gnCreateOutputDevice(gnOutputDeviceHandle* outputDevice, gnInstance void gnWaitForDevice(gnOutputDeviceHandle device) { device->instance->callingLayer->deviceFunctions._gnWaitForDevice(device); } -void gnDestroyOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device) { - device->instance->callingLayer->instanceFunctions._gnDestroyOutputDevice(instance, device); +void gnDestroyOutputDevice(gnOutputDeviceHandle device) { + device->instance->callingLayer->instanceFunctions._gnDestroyOutputDevice(device); free(device); } diff --git a/projects/core/src/output_device/gryphn_output_device.h b/projects/core/src/output_device/gryphn_output_device.h index 3083dd5..529fc14 100644 --- a/projects/core/src/output_device/gryphn_output_device.h +++ b/projects/core/src/output_device/gryphn_output_device.h @@ -31,4 +31,4 @@ struct gnOutputDevice_t { gnReturnCode gnCreateOutputDevice(gnOutputDeviceHandle* outputDevice, gnInstanceHandle instance, gnOutputDeviceInfo deviceInfo); void gnWaitForDevice(gnOutputDeviceHandle device); -void gnDestroyOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device); +void gnDestroyOutputDevice(gnOutputDeviceHandle device); diff --git a/projects/loader/src/gryphn_instance_functions.h b/projects/loader/src/gryphn_instance_functions.h index dcc10e8..607e3e5 100644 --- a/projects/loader/src/gryphn_instance_functions.h +++ b/projects/loader/src/gryphn_instance_functions.h @@ -27,7 +27,7 @@ typedef struct gnInstanceFunctions { gnBool (*_gnPhysicalDeviceCanPresentToSurface)(gnPhysicalDevice device, gnWindowSurfaceHandle windowSurface); gnReturnCode (*_gnCreateOutputDevice)(gnInstanceHandle instance, gnOutputDeviceHandle device, gnOutputDeviceInfo deviceInfo); - void (*_gnDestroyOutputDevice)(gnInstanceHandle handle, gnOutputDeviceHandle device); + void (*_gnDestroyOutputDevice)(gnOutputDeviceHandle device); #ifdef GN_PLATFORM_LINUX #ifdef GN_WINDOW_X11 diff --git a/projects/validation_layers/function_loader/src/instance_functions.c b/projects/validation_layers/function_loader/src/instance_functions.c index 5bf6fe9..9f24cde 100644 --- a/projects/validation_layers/function_loader/src/instance_functions.c +++ b/projects/validation_layers/function_loader/src/instance_functions.c @@ -34,8 +34,8 @@ gnBool checkCanDevicePresent(gnPhysicalDevice device, gnWindowSurfaceHandle wind gnReturnCode checkCreateOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device, gnOutputDeviceInfo deviceInfo) { CHECK_FUNCTION_WITH_RETURN_CODE(instance, _gnCreateOutputDevice, instanceFunctions, instance, device, deviceInfo); } -void checkDestroyOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device) { - CHECK_VOID_FUNCTION(device->instance, _gnDestroyOutputDevice, instanceFunctions, instance, device); +void checkDestroyOutputDevice(gnOutputDeviceHandle device) { + CHECK_VOID_FUNCTION(device->instance, _gnDestroyOutputDevice, instanceFunctions, device); } #ifdef GN_PLATFORM_MACOS diff --git a/projects/validation_layers/function_loader/src/instance_functions.h b/projects/validation_layers/function_loader/src/instance_functions.h index 76e5424..366843f 100644 --- a/projects/validation_layers/function_loader/src/instance_functions.h +++ b/projects/validation_layers/function_loader/src/instance_functions.h @@ -9,7 +9,7 @@ gnPhysicalDevice* checkGetPhysicalDevices(gnInstanceHandle instance, uint32_t* c gnBool checkCanDevicePresent(gnPhysicalDevice device, gnWindowSurfaceHandle windowSurface); gnReturnCode checkCreateOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device, gnOutputDeviceInfo deviceInfo); -void checkDestroyOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device); +void checkDestroyOutputDevice(gnOutputDeviceHandle device); #ifdef GN_PLATFORM_MACOS gnReturnCode checkCreateSurfaceMacOS(gnWindowSurfaceHandle windowSurface, gnInstanceHandle instance, gnMacOSWindowSurfaceInfo createInfo);