@@ -784,6 +784,10 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
784784 table->CmdSetDescriptorBufferOffsets2EXT = (PFN_vkCmdSetDescriptorBufferOffsets2EXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsets2EXT");
785785 table->CmdBindDescriptorBufferEmbeddedSamplers2EXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT");
786786
787+ // ---- VK_KHR_copy_memory_indirect extension commands
788+ table->CmdCopyMemoryIndirectKHR = (PFN_vkCmdCopyMemoryIndirectKHR)gdpa(dev, "vkCmdCopyMemoryIndirectKHR");
789+ table->CmdCopyMemoryToImageIndirectKHR = (PFN_vkCmdCopyMemoryToImageIndirectKHR)gdpa(dev, "vkCmdCopyMemoryToImageIndirectKHR");
790+
787791 // ---- VK_EXT_debug_marker extension commands
788792 table->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gdpa(dev, "vkDebugMarkerSetObjectTagEXT");
789793 table->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gdpa(dev, "vkDebugMarkerSetObjectNameEXT");
@@ -2746,6 +2750,10 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
27462750 if (!strcmp(name, "CmdSetDescriptorBufferOffsets2EXT")) return (void *)table->CmdSetDescriptorBufferOffsets2EXT;
27472751 if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplers2EXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplers2EXT;
27482752
2753+ // ---- VK_KHR_copy_memory_indirect extension commands
2754+ if (!strcmp(name, "CmdCopyMemoryIndirectKHR")) return (void *)table->CmdCopyMemoryIndirectKHR;
2755+ if (!strcmp(name, "CmdCopyMemoryToImageIndirectKHR")) return (void *)table->CmdCopyMemoryToImageIndirectKHR;
2756+
27492757 // ---- VK_EXT_debug_marker extension commands
27502758 if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectTagEXT : NULL;
27512759 if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectNameEXT : NULL;
@@ -5493,6 +5501,35 @@ VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplers2EXT(
54935501}
54945502
54955503
5504+ // ---- VK_KHR_copy_memory_indirect extension trampoline/terminators
5505+
5506+ VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryIndirectKHR(
5507+ VkCommandBuffer commandBuffer,
5508+ const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo) {
5509+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5510+ if (NULL == disp) {
5511+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5512+ "vkCmdCopyMemoryIndirectKHR: Invalid commandBuffer "
5513+ "[VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-parameter]");
5514+ abort(); /* Intentionally fail so user can correct issue. */
5515+ }
5516+ disp->CmdCopyMemoryIndirectKHR(commandBuffer, pCopyMemoryIndirectInfo);
5517+ }
5518+
5519+ VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectKHR(
5520+ VkCommandBuffer commandBuffer,
5521+ const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo) {
5522+ const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5523+ if (NULL == disp) {
5524+ loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5525+ "vkCmdCopyMemoryToImageIndirectKHR: Invalid commandBuffer "
5526+ "[VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-parameter]");
5527+ abort(); /* Intentionally fail so user can correct issue. */
5528+ }
5529+ disp->CmdCopyMemoryToImageIndirectKHR(commandBuffer, pCopyMemoryToImageIndirectInfo);
5530+ }
5531+
5532+
54965533// ---- VK_EXT_debug_marker extension trampoline/terminators
54975534
54985535VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
@@ -11818,6 +11855,16 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
1181811855 return true;
1181911856 }
1182011857
11858+ // ---- VK_KHR_copy_memory_indirect extension commands
11859+ if (!strcmp("vkCmdCopyMemoryIndirectKHR", name)) {
11860+ *addr = (void *)CmdCopyMemoryIndirectKHR;
11861+ return true;
11862+ }
11863+ if (!strcmp("vkCmdCopyMemoryToImageIndirectKHR", name)) {
11864+ *addr = (void *)CmdCopyMemoryToImageIndirectKHR;
11865+ return true;
11866+ }
11867+
1182111868 // ---- VK_EXT_debug_marker extension commands
1182211869 if (!strcmp("vkDebugMarkerSetObjectTagEXT", name)) {
1182311870 *addr = (void *)DebugMarkerSetObjectTagEXT;
0 commit comments