metal is instance suitable

This commit is contained in:
Gregory Wells
2025-09-17 13:39:19 -04:00
parent f7e71b77c2
commit 6f278affc6
3 changed files with 7 additions and 1 deletions

View File

@@ -8,7 +8,7 @@ gryphnInstanceFunctionLayers metalLoadAPILayer(void) {
.createInstance = metalCreateInstance,
.queryDevices = metalQueryDevices,
.destroyInstance = metalDestroyInstance,
// .isSuitable = metalIsInstanceSuitable,
.isSuitable = metalIsInstanceSuitable,
.getPhysicalDeviceProperties = metalQueryPhysicalDeviceProperties,
.next = NULL
};

View File

@@ -9,4 +9,5 @@ typedef struct gnPlatformInstance_t {
gnReturnCode metalCreateInstance(gnInstanceHandle instance, gnInstanceCreateInfo* instanceInfo, gryphnInstanceFunctionLayers* next, gnAllocators* allocators);
gnReturnCode metalQueryDevices(gnInstanceHandle instance, uint32_t* count, gnPhysicalDeviceHandle* devices, gryphnInstanceFunctionLayers* next);
gnBool metalIsInstanceSuitable(gnInstanceHandle instance, gnSuitableField field, gryphnInstanceFunctionLayers* next);
void metalDestroyInstance(gnInstance instance, gryphnInstanceFunctionLayers* next, gnAllocators* allocators);

View File

@@ -17,6 +17,11 @@ gnReturnCode metalQueryDevices(gnInstanceHandle instance, uint32_t* count, gnPhy
devices[i] = (uint64_t)metalDevices[i];
return GN_SUCCESS;
}
gnBool metalIsInstanceSuitable(gnInstanceHandle instance, gnSuitableField field, gryphnInstanceFunctionLayers* next) {
switch (field) {
case GN_NON_EXISTANT_PHYSICAL_DEVICE: return GN_FALSE;
}
}
void metalDestroyInstance(gnInstanceHandle instance, gryphnInstanceFunctionLayers* next, gnAllocators* allocators) {
if (next != NULL) return;
allocators->free(instance->instance, allocators->userData);