@@ -1216,6 +1216,14 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
12161216 table->UpdateIndirectExecutionSetPipelineEXT = (PFN_vkUpdateIndirectExecutionSetPipelineEXT)gdpa(dev, "vkUpdateIndirectExecutionSetPipelineEXT");
12171217 table->UpdateIndirectExecutionSetShaderEXT = (PFN_vkUpdateIndirectExecutionSetShaderEXT)gdpa(dev, "vkUpdateIndirectExecutionSetShaderEXT");
12181218
1219+ // ---- VK_EXT_external_memory_metal extension commands
1220+ #if defined(VK_USE_PLATFORM_METAL_EXT)
1221+ table->GetMemoryMetalHandleEXT = (PFN_vkGetMemoryMetalHandleEXT)gdpa(dev, "vkGetMemoryMetalHandleEXT");
1222+ #endif // VK_USE_PLATFORM_METAL_EXT
1223+ #if defined(VK_USE_PLATFORM_METAL_EXT)
1224+ table->GetMemoryMetalHandlePropertiesEXT = (PFN_vkGetMemoryMetalHandlePropertiesEXT)gdpa(dev, "vkGetMemoryMetalHandlePropertiesEXT");
1225+ #endif // VK_USE_PLATFORM_METAL_EXT
1226+
12191227 // ---- VK_KHR_acceleration_structure extension commands
12201228 table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)gdpa(dev, "vkCreateAccelerationStructureKHR");
12211229 table->DestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)gdpa(dev, "vkDestroyAccelerationStructureKHR");
@@ -3075,6 +3083,14 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
30753083 if (!strcmp(name, "UpdateIndirectExecutionSetPipelineEXT")) return (void *)table->UpdateIndirectExecutionSetPipelineEXT;
30763084 if (!strcmp(name, "UpdateIndirectExecutionSetShaderEXT")) return (void *)table->UpdateIndirectExecutionSetShaderEXT;
30773085
3086+ // ---- VK_EXT_external_memory_metal extension commands
3087+ #if defined(VK_USE_PLATFORM_METAL_EXT)
3088+ if (!strcmp(name, "GetMemoryMetalHandleEXT")) return (void *)table->GetMemoryMetalHandleEXT;
3089+ #endif // VK_USE_PLATFORM_METAL_EXT
3090+ #if defined(VK_USE_PLATFORM_METAL_EXT)
3091+ if (!strcmp(name, "GetMemoryMetalHandlePropertiesEXT")) return (void *)table->GetMemoryMetalHandlePropertiesEXT;
3092+ #endif // VK_USE_PLATFORM_METAL_EXT
3093+
30783094 // ---- VK_KHR_acceleration_structure extension commands
30793095 if (!strcmp(name, "CreateAccelerationStructureKHR")) return (void *)table->CreateAccelerationStructureKHR;
30803096 if (!strcmp(name, "DestroyAccelerationStructureKHR")) return (void *)table->DestroyAccelerationStructureKHR;
@@ -9838,6 +9854,42 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixFlex
98389854}
98399855
98409856
9857+ // ---- VK_EXT_external_memory_metal extension trampoline/terminators
9858+
9859+ #if defined(VK_USE_PLATFORM_METAL_EXT)
9860+ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandleEXT(
9861+ VkDevice device,
9862+ const VkMemoryGetMetalHandleInfoEXT* pGetMetalHandleInfo,
9863+ void** pHandle) {
9864+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9865+ if (NULL == disp) {
9866+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9867+ "vkGetMemoryMetalHandleEXT: Invalid device "
9868+ "[VUID-vkGetMemoryMetalHandleEXT-device-parameter]");
9869+ abort(); /* Intentionally fail so user can correct issue. */
9870+ }
9871+ return disp->GetMemoryMetalHandleEXT(device, pGetMetalHandleInfo, pHandle);
9872+ }
9873+
9874+ #endif // VK_USE_PLATFORM_METAL_EXT
9875+ #if defined(VK_USE_PLATFORM_METAL_EXT)
9876+ VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandlePropertiesEXT(
9877+ VkDevice device,
9878+ VkExternalMemoryHandleTypeFlagBits handleType,
9879+ const void* pHandle,
9880+ VkMemoryMetalHandlePropertiesEXT* pMemoryMetalHandleProperties) {
9881+ const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9882+ if (NULL == disp) {
9883+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9884+ "vkGetMemoryMetalHandlePropertiesEXT: Invalid device "
9885+ "[VUID-vkGetMemoryMetalHandlePropertiesEXT-device-parameter]");
9886+ abort(); /* Intentionally fail so user can correct issue. */
9887+ }
9888+ return disp->GetMemoryMetalHandlePropertiesEXT(device, handleType, pHandle, pMemoryMetalHandleProperties);
9889+ }
9890+
9891+ #endif // VK_USE_PLATFORM_METAL_EXT
9892+
98419893// ---- VK_KHR_acceleration_structure extension trampoline/terminators
98429894
98439895VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
@@ -12227,6 +12279,20 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
1222712279 return true;
1222812280 }
1222912281
12282+ // ---- VK_EXT_external_memory_metal extension commands
12283+ #if defined(VK_USE_PLATFORM_METAL_EXT)
12284+ if (!strcmp("vkGetMemoryMetalHandleEXT", name)) {
12285+ *addr = (void *)GetMemoryMetalHandleEXT;
12286+ return true;
12287+ }
12288+ #endif // VK_USE_PLATFORM_METAL_EXT
12289+ #if defined(VK_USE_PLATFORM_METAL_EXT)
12290+ if (!strcmp("vkGetMemoryMetalHandlePropertiesEXT", name)) {
12291+ *addr = (void *)GetMemoryMetalHandlePropertiesEXT;
12292+ return true;
12293+ }
12294+ #endif // VK_USE_PLATFORM_METAL_EXT
12295+
1223012296 // ---- VK_KHR_acceleration_structure extension commands
1223112297 if (!strcmp("vkCreateAccelerationStructureKHR", name)) {
1223212298 *addr = (void *)CreateAccelerationStructureKHR;
0 commit comments