From 751b1f828b9e21c8f50d16664e4c4fba28a88897 Mon Sep 17 00:00:00 2001 From: Greg Wells Date: Wed, 25 Jun 2025 20:23:59 -0400 Subject: [PATCH] Get everything to work --- CMakeLists.txt | 3 ++- projects/apis/vulkan/loader/vulkan_command_loader.c | 2 +- projects/apis/vulkan/loader/vulkan_device_loader.c | 2 +- projects/apis/vulkan/loader/vulkan_instance_loader.c | 2 +- projects/apis/vulkan/loader/vulkan_loader.h | 7 +++---- projects/apis/vulkan/src/instance/vulkan_instance.c | 2 +- projects/loader/src/gryphn_loader.c | 12 +++++++++--- projects/loader/src/gryphn_loader_info.h | 1 + .../validation_layers/function_loader/CMakeLists.txt | 6 +++--- 9 files changed, 22 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a7ecba..81ca5ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,4 +27,5 @@ endif() add_subdirectory(projects/loader) # build gryphn loader add_subdirectory(projects/core) # build gryphn core add_subdirectory(projects/platform) # build gryphn platform -target_link_libraries(Gryphn INTERFACE GryphnCore GryphnLoader GryphnPlatform) +add_subdirectory(projects/validation_layers/function_loader/) +target_link_libraries(Gryphn INTERFACE GryphnCore GryphnLoader GryphnPlatform GryphnFunctionValidator) diff --git a/projects/apis/vulkan/loader/vulkan_command_loader.c b/projects/apis/vulkan/loader/vulkan_command_loader.c index 275ca83..57d8ca3 100644 --- a/projects/apis/vulkan/loader/vulkan_command_loader.c +++ b/projects/apis/vulkan/loader/vulkan_command_loader.c @@ -2,7 +2,7 @@ #include #include -gnCommandFunctions loadVulkanCommandFunctions(loaderInfo info) { +gnCommandFunctions loadVulkanCommandFunctions() { return (gnCommandFunctions){ ._gnCommandPoolAllocateCommandBuffers = allocateCommandBuffers, ._gnBeginCommandBuffer = beginCommandBuffer, diff --git a/projects/apis/vulkan/loader/vulkan_device_loader.c b/projects/apis/vulkan/loader/vulkan_device_loader.c index d9f5fb7..c214dea 100644 --- a/projects/apis/vulkan/loader/vulkan_device_loader.c +++ b/projects/apis/vulkan/loader/vulkan_device_loader.c @@ -15,7 +15,7 @@ #include #include -gnDeviceFunctions loadVulkanDeviceFunctions(loaderInfo info) { +gnDeviceFunctions loadVulkanDeviceFunctions() { return (gnDeviceFunctions){ ._gnCreatePresentationQueue = createPresentationQueue, ._gnPresentationQueueGetImage = getPresentQueueImage, diff --git a/projects/apis/vulkan/loader/vulkan_instance_loader.c b/projects/apis/vulkan/loader/vulkan_instance_loader.c index 25c09a3..573ce9f 100644 --- a/projects/apis/vulkan/loader/vulkan_instance_loader.c +++ b/projects/apis/vulkan/loader/vulkan_instance_loader.c @@ -4,7 +4,7 @@ #include #include -gnInstanceFunctions loadVulkanInstanceFunctions(loaderInfo info) { +gnInstanceFunctions loadVulkanInstanceFunctions() { return (gnInstanceFunctions){ ._gnCreateInstance = createInstance, ._gnDestroyInstance = destroyInstance, diff --git a/projects/apis/vulkan/loader/vulkan_loader.h b/projects/apis/vulkan/loader/vulkan_loader.h index 509c60b..b6f706d 100644 --- a/projects/apis/vulkan/loader/vulkan_loader.h +++ b/projects/apis/vulkan/loader/vulkan_loader.h @@ -2,8 +2,7 @@ #include "loader/src/gryphn_instance_functions.h" #include "loader/src/gryphn_device_functions.h" #include "loader/src/gryphn_command_functions.h" -#include "loader/src/gryphn_loader_info.h" -gnInstanceFunctions loadVulkanInstanceFunctions(loaderInfo info); -gnDeviceFunctions loadVulkanDeviceFunctions(loaderInfo info); -gnCommandFunctions loadVulkanCommandFunctions(loaderInfo info); +gnInstanceFunctions loadVulkanInstanceFunctions(); +gnDeviceFunctions loadVulkanDeviceFunctions(); +gnCommandFunctions loadVulkanCommandFunctions(); diff --git a/projects/apis/vulkan/src/instance/vulkan_instance.c b/projects/apis/vulkan/src/instance/vulkan_instance.c index 96ca48e..a2f7c32 100644 --- a/projects/apis/vulkan/src/instance/vulkan_instance.c +++ b/projects/apis/vulkan/src/instance/vulkan_instance.c @@ -76,7 +76,7 @@ gnReturnCode createInstance(gnInstanceHandle instance, gnInstanceInfo instanceIn }; #ifdef GN_PLATFORM_MACOS - createInfo.createFlags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; + createInfo.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; #endif if (instanceInfo.debugger != NULL) { diff --git a/projects/loader/src/gryphn_loader.c b/projects/loader/src/gryphn_loader.c index f422b3d..4812ced 100644 --- a/projects/loader/src/gryphn_loader.c +++ b/projects/loader/src/gryphn_loader.c @@ -11,7 +11,9 @@ gnInstanceFunctions loadAPIFunctions(gnRenderingAPI api) { switch (api) { case GN_RENDERINGAPI_NONE: return (gnInstanceFunctions){ NULL }; - case GN_RENDERINGAPI_VULKAN: return loadVulkanInstanceFunctions(info); +#ifdef GN_API_VULKAN + case GN_RENDERINGAPI_VULKAN: return loadVulkanInstanceFunctions(); +#endif case GN_RENDERINGAPI_SOFTWARE: return (gnInstanceFunctions){ NULL }; case GN_RENDERINGAPI_DIRECTX11: return (gnInstanceFunctions){ NULL }; @@ -36,7 +38,9 @@ gnInstanceFunctions loadInstanceFunctions(loaderInfo info) { gnDeviceFunctions loadDeviceFunctions(loaderInfo info) { switch (info.api) { case GN_RENDERINGAPI_NONE: return (gnDeviceFunctions){ NULL }; - case GN_RENDERINGAPI_VULKAN: return loadVulkanDeviceFunctions(info); +#ifdef GN_API_VULKAN + case GN_RENDERINGAPI_VULKAN: return loadVulkanDeviceFunctions(); +#endif case GN_RENDERINGAPI_SOFTWARE: return (gnDeviceFunctions){ NULL }; case GN_RENDERINGAPI_DIRECTX11: return (gnDeviceFunctions){ NULL }; @@ -53,7 +57,9 @@ gnDeviceFunctions loadDeviceFunctions(loaderInfo info) { gnCommandFunctions loadCommandFunctions(loaderInfo info) { switch (info.api) { case GN_RENDERINGAPI_NONE: return (gnCommandFunctions){ NULL }; - case GN_RENDERINGAPI_VULKAN: return loadVulkanCommandFunctions(info); +#ifdef GN_API_VULKAN + case GN_RENDERINGAPI_VULKAN: return loadVulkanCommandFunctions(); +#endif case GN_RENDERINGAPI_SOFTWARE: return (gnCommandFunctions){ NULL }; case GN_RENDERINGAPI_DIRECTX11: return (gnCommandFunctions){ NULL }; diff --git a/projects/loader/src/gryphn_loader_info.h b/projects/loader/src/gryphn_loader_info.h index 477b7b8..e38411e 100644 --- a/projects/loader/src/gryphn_loader_info.h +++ b/projects/loader/src/gryphn_loader_info.h @@ -3,4 +3,5 @@ typedef struct loaderInfo { gnRenderingAPI api; + gnBool validateIfLoaded; } loaderInfo; diff --git a/projects/validation_layers/function_loader/CMakeLists.txt b/projects/validation_layers/function_loader/CMakeLists.txt index 459cca7..02e9d96 100644 --- a/projects/validation_layers/function_loader/CMakeLists.txt +++ b/projects/validation_layers/function_loader/CMakeLists.txt @@ -4,6 +4,6 @@ project(GryphnFunctionValidator) file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS "src/*.c") file(GLOB_RECURSE LOADER_FILES CONFIGURE_DEPENDS "loader/*.c") add_library(GryphnFunctionValidator STATIC ${SOURCE_FILES} ${LOADER_FILES}) -target_include_directories(GryphnFunctionValidator PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../utils) -target_include_directories(GryphnFunctionValidator PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../) -target_include_directories(GryphnFunctionValidator PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../core/src/) +target_include_directories(GryphnFunctionValidator PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../utils) +target_include_directories(GryphnFunctionValidator PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../) +target_include_directories(GryphnFunctionValidator PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../../core/src/)