Add trim command to VK_FUCHSIA_compact_image

Bug: 60394
Change-Id: I5aeefc08cc41bad1a46817128b4141fdbb038f4b
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/Vulkan-Loader/+/489898
Reviewed-by: John Bauman <jbauman@google.com>
diff --git a/loader/generated/vk_dispatch_table_helper.h b/loader/generated/vk_dispatch_table_helper.h
index ad6fda2..bbe824c 100644
--- a/loader/generated/vk_dispatch_table_helper.h
+++ b/loader/generated/vk_dispatch_table_helper.h
@@ -261,6 +261,7 @@
 static VKAPI_ATTR VkResult VKAPI_CALL StubGetSemaphoreZirconHandleFUCHSIA(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle) { return VK_SUCCESS; };
 #endif // VK_USE_PLATFORM_FUCHSIA
 static VKAPI_ATTR void VKAPI_CALL StubCmdWriteCompactImageMemorySizeFUCHSIA(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, VkBuffer buffer, VkDeviceSize bufferOffset, const VkImageSubresourceLayers* pSubresourceLayers) {  };
+static VKAPI_ATTR void VKAPI_CALL StubTrimCompactImageDeviceMemoryFUCHSIA(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {  };
 #ifdef VK_ENABLE_BETA_EXTENSIONS
 static VKAPI_ATTR VkResult VKAPI_CALL StubCreateAccelerationStructureKHR(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure) { return VK_SUCCESS; };
 #endif // VK_ENABLE_BETA_EXTENSIONS
@@ -887,6 +888,8 @@
 #endif // VK_USE_PLATFORM_FUCHSIA
     table->CmdWriteCompactImageMemorySizeFUCHSIA = (PFN_vkCmdWriteCompactImageMemorySizeFUCHSIA) gpa(device, "vkCmdWriteCompactImageMemorySizeFUCHSIA");
     if (table->CmdWriteCompactImageMemorySizeFUCHSIA == nullptr) { table->CmdWriteCompactImageMemorySizeFUCHSIA = (PFN_vkCmdWriteCompactImageMemorySizeFUCHSIA)StubCmdWriteCompactImageMemorySizeFUCHSIA; }
+    table->TrimCompactImageDeviceMemoryFUCHSIA = (PFN_vkTrimCompactImageDeviceMemoryFUCHSIA) gpa(device, "vkTrimCompactImageDeviceMemoryFUCHSIA");
+    if (table->TrimCompactImageDeviceMemoryFUCHSIA == nullptr) { table->TrimCompactImageDeviceMemoryFUCHSIA = (PFN_vkTrimCompactImageDeviceMemoryFUCHSIA)StubTrimCompactImageDeviceMemoryFUCHSIA; }
 #ifdef VK_ENABLE_BETA_EXTENSIONS
     table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR) gpa(device, "vkCreateAccelerationStructureKHR");
     if (table->CreateAccelerationStructureKHR == nullptr) { table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)StubCreateAccelerationStructureKHR; }
diff --git a/loader/generated/vk_layer_dispatch_table.h b/loader/generated/vk_layer_dispatch_table.h
index 861cca3..ebc49d6 100644
--- a/loader/generated/vk_layer_dispatch_table.h
+++ b/loader/generated/vk_layer_dispatch_table.h
@@ -767,6 +767,7 @@
 
     // ---- VK_FUCHSIA_compact_image extension commands
     PFN_vkCmdWriteCompactImageMemorySizeFUCHSIA CmdWriteCompactImageMemorySizeFUCHSIA;
+    PFN_vkTrimCompactImageDeviceMemoryFUCHSIA TrimCompactImageDeviceMemoryFUCHSIA;
 
     // ---- VK_KHR_ray_tracing extension commands
 #ifdef VK_ENABLE_BETA_EXTENSIONS
diff --git a/loader/generated/vk_loader_extensions.c b/loader/generated/vk_loader_extensions.c
index 166b349..cf8efc3 100644
--- a/loader/generated/vk_loader_extensions.c
+++ b/loader/generated/vk_loader_extensions.c
@@ -830,6 +830,7 @@
 
     // ---- VK_FUCHSIA_compact_image extension commands
     table->CmdWriteCompactImageMemorySizeFUCHSIA = (PFN_vkCmdWriteCompactImageMemorySizeFUCHSIA)gdpa(dev, "vkCmdWriteCompactImageMemorySizeFUCHSIA");
+    table->TrimCompactImageDeviceMemoryFUCHSIA = (PFN_vkTrimCompactImageDeviceMemoryFUCHSIA)gdpa(dev, "vkTrimCompactImageDeviceMemoryFUCHSIA");
 
     // ---- VK_KHR_ray_tracing extension commands
 #ifdef VK_ENABLE_BETA_EXTENSIONS
@@ -1631,6 +1632,7 @@
 
     // ---- VK_FUCHSIA_compact_image extension commands
     if (!strcmp(name, "CmdWriteCompactImageMemorySizeFUCHSIA")) return (void *)table->CmdWriteCompactImageMemorySizeFUCHSIA;
+    if (!strcmp(name, "TrimCompactImageDeviceMemoryFUCHSIA")) return (void *)table->TrimCompactImageDeviceMemoryFUCHSIA;
 
     // ---- VK_KHR_ray_tracing extension commands
 #ifdef VK_ENABLE_BETA_EXTENSIONS
@@ -4035,6 +4037,15 @@
     disp->CmdWriteCompactImageMemorySizeFUCHSIA(commandBuffer, image, imageLayout, buffer, bufferOffset, pSubresourceLayers);
 }
 
+VKAPI_ATTR void VKAPI_CALL TrimCompactImageDeviceMemoryFUCHSIA(
+    VkDevice                                    device,
+    VkImage                                     image,
+    VkDeviceMemory                              memory,
+    VkDeviceSize                                memoryOffset) {
+    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
+    disp->TrimCompactImageDeviceMemoryFUCHSIA(device, image, memory, memoryOffset);
+}
+
 
 // ---- VK_KHR_ray_tracing extension trampoline/terminators
 
@@ -5310,6 +5321,10 @@
         *addr = (void *)CmdWriteCompactImageMemorySizeFUCHSIA;
         return true;
     }
+    if (!strcmp("vkTrimCompactImageDeviceMemoryFUCHSIA", name)) {
+        *addr = (void *)TrimCompactImageDeviceMemoryFUCHSIA;
+        return true;
+    }
 
     // ---- VK_KHR_ray_tracing extension commands
 #ifdef VK_ENABLE_BETA_EXTENSIONS