1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 // Autogenerated module VkDecoderSnapshot
17 //
18 // (impl) generated by codegen/vulkan/vulkan-docs-next/scripts/genvk.py -registry
19 // codegen/vulkan/vulkan-docs-next/xml/vk.xml -registryGfxstream
20 // codegen/vulkan/vulkan-docs-next/xml/vk_gfxstream.xml cereal -o host/vulkan/cereal
21 //
22 // Please do not modify directly;
23 // re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
24 // or directly from Python by defining:
25 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
26 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
27 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
28 //
29 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
30 // $CEREAL_OUTPUT_DIR
31 //
32 
33 #include "VkDecoderSnapshot.h"
34 
35 #include "VkDecoderGlobalState.h"
36 #include "VkReconstruction.h"
37 #include "VulkanHandleMapping.h"
38 #include "aemu/base/synchronization/Lock.h"
39 
40 using namespace gfxstream::vk;
41 using emugl::GfxApiLogger;
42 using emugl::HealthMonitor;
43 
44 class VkDecoderSnapshot::Impl {
45    public:
Impl()46     Impl() {}
47 
save(android::base::Stream * stream)48     void save(android::base::Stream* stream) { mReconstruction.save(stream); }
49 
load(android::base::Stream * stream,GfxApiLogger & gfx_logger,HealthMonitor<> * healthMonitor)50     void load(android::base::Stream* stream, GfxApiLogger& gfx_logger,
51               HealthMonitor<>* healthMonitor) {
52         mReconstruction.load(stream, gfx_logger, healthMonitor);
53     }
54 
createExtraHandlesForNextApi(const uint64_t * created,uint32_t count)55     void createExtraHandlesForNextApi(const uint64_t* created, uint32_t count) {
56         mReconstruction.createExtraHandlesForNextApi(created, count);
57     }
58 #ifdef VK_VERSION_1_0
vkCreateInstance(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance)59     void vkCreateInstance(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
60                           android::base::BumpPool* pool, VkResult input_result,
61                           const VkInstanceCreateInfo* pCreateInfo,
62                           const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) {
63         if (!pInstance) return;
64         android::base::AutoLock lock(mLock);
65         // pInstance create
66         mReconstruction.addHandles((const uint64_t*)pInstance, 1);
67         auto apiHandle = mReconstruction.createApiInfo();
68         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
69         mReconstruction.setApiTrace(apiInfo, OP_vkCreateInstance, snapshotTraceBegin,
70                                     snapshotTraceBytes);
71         mReconstruction.forEachHandleAddApi((const uint64_t*)pInstance, 1, apiHandle,
72                                             VkReconstruction::CREATED);
73         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pInstance, 1);
74     }
vkDestroyInstance(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkInstance instance,const VkAllocationCallbacks * pAllocator)75     void vkDestroyInstance(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
76                            android::base::BumpPool* pool, VkInstance instance,
77                            const VkAllocationCallbacks* pAllocator) {
78         android::base::AutoLock lock(mLock);
79         // instance destroy
80         mReconstruction.removeHandles((const uint64_t*)(&instance), 1, true);
81     }
vkEnumeratePhysicalDevices(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices)82     void vkEnumeratePhysicalDevices(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
83                                     android::base::BumpPool* pool, VkResult input_result,
84                                     VkInstance instance, uint32_t* pPhysicalDeviceCount,
85                                     VkPhysicalDevice* pPhysicalDevices) {
86         if (!pPhysicalDevices) return;
87         android::base::AutoLock lock(mLock);
88         // pPhysicalDevices create
89         mReconstruction.addHandles((const uint64_t*)pPhysicalDevices, (*(pPhysicalDeviceCount)));
90         mReconstruction.addHandleDependency((const uint64_t*)pPhysicalDevices,
91                                             (*(pPhysicalDeviceCount)),
92                                             (uint64_t)(uintptr_t)instance);
93         auto apiHandle = mReconstruction.createApiInfo();
94         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
95         mReconstruction.setApiTrace(apiInfo, OP_vkEnumeratePhysicalDevices, snapshotTraceBegin,
96                                     snapshotTraceBytes);
97         if (pPhysicalDeviceCount) {
98             mReconstruction.forEachHandleAddApi((const uint64_t*)pPhysicalDevices,
99                                                 (*(pPhysicalDeviceCount)), apiHandle,
100                                                 VkReconstruction::CREATED);
101             mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPhysicalDevices,
102                                                     (*(pPhysicalDeviceCount)));
103         }
104     }
vkGetPhysicalDeviceFeatures(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures)105     void vkGetPhysicalDeviceFeatures(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
106                                      android::base::BumpPool* pool, VkPhysicalDevice physicalDevice,
107                                      VkPhysicalDeviceFeatures* pFeatures) {}
vkGetPhysicalDeviceFormatProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties)108     void vkGetPhysicalDeviceFormatProperties(const uint8_t* snapshotTraceBegin,
109                                              size_t snapshotTraceBytes,
110                                              android::base::BumpPool* pool,
111                                              VkPhysicalDevice physicalDevice, VkFormat format,
112                                              VkFormatProperties* pFormatProperties) {}
vkGetPhysicalDeviceImageFormatProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties)113     void vkGetPhysicalDeviceImageFormatProperties(
114         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
115         VkResult input_result, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
116         VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags,
117         VkImageFormatProperties* pImageFormatProperties) {}
vkGetPhysicalDeviceProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties)118     void vkGetPhysicalDeviceProperties(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
119                                        android::base::BumpPool* pool,
120                                        VkPhysicalDevice physicalDevice,
121                                        VkPhysicalDeviceProperties* pProperties) {}
vkGetPhysicalDeviceQueueFamilyProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties)122     void vkGetPhysicalDeviceQueueFamilyProperties(const uint8_t* snapshotTraceBegin,
123                                                   size_t snapshotTraceBytes,
124                                                   android::base::BumpPool* pool,
125                                                   VkPhysicalDevice physicalDevice,
126                                                   uint32_t* pQueueFamilyPropertyCount,
127                                                   VkQueueFamilyProperties* pQueueFamilyProperties) {
128     }
vkGetPhysicalDeviceMemoryProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties)129     void vkGetPhysicalDeviceMemoryProperties(const uint8_t* snapshotTraceBegin,
130                                              size_t snapshotTraceBytes,
131                                              android::base::BumpPool* pool,
132                                              VkPhysicalDevice physicalDevice,
133                                              VkPhysicalDeviceMemoryProperties* pMemoryProperties) {}
vkGetInstanceProcAddr(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,PFN_vkVoidFunction input_result,VkInstance instance,const char * pName)134     void vkGetInstanceProcAddr(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
135                                android::base::BumpPool* pool, PFN_vkVoidFunction input_result,
136                                VkInstance instance, const char* pName) {}
vkGetDeviceProcAddr(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,PFN_vkVoidFunction input_result,VkDevice device,const char * pName)137     void vkGetDeviceProcAddr(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
138                              android::base::BumpPool* pool, PFN_vkVoidFunction input_result,
139                              VkDevice device, const char* pName) {}
vkCreateDevice(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice)140     void vkCreateDevice(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
141                         android::base::BumpPool* pool, VkResult input_result,
142                         VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo,
143                         const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) {
144         if (!pDevice) return;
145         android::base::AutoLock lock(mLock);
146         // pDevice create
147         mReconstruction.addHandles((const uint64_t*)pDevice, 1);
148         mReconstruction.addHandleDependency((const uint64_t*)pDevice, 1,
149                                             (uint64_t)(uintptr_t)physicalDevice);
150         auto apiHandle = mReconstruction.createApiInfo();
151         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
152         mReconstruction.setApiTrace(apiInfo, OP_vkCreateDevice, snapshotTraceBegin,
153                                     snapshotTraceBytes);
154         mReconstruction.forEachHandleAddApi((const uint64_t*)pDevice, 1, apiHandle,
155                                             VkReconstruction::CREATED);
156         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pDevice, 1);
157     }
vkDestroyDevice(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkAllocationCallbacks * pAllocator)158     void vkDestroyDevice(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
159                          android::base::BumpPool* pool, VkDevice device,
160                          const VkAllocationCallbacks* pAllocator) {
161         android::base::AutoLock lock(mLock);
162         // device destroy
163         mReconstruction.removeHandles((const uint64_t*)(&device), 1, true);
164     }
vkEnumerateInstanceExtensionProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)165     void vkEnumerateInstanceExtensionProperties(const uint8_t* snapshotTraceBegin,
166                                                 size_t snapshotTraceBytes,
167                                                 android::base::BumpPool* pool,
168                                                 VkResult input_result, const char* pLayerName,
169                                                 uint32_t* pPropertyCount,
170                                                 VkExtensionProperties* pProperties) {}
vkEnumerateDeviceExtensionProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)171     void vkEnumerateDeviceExtensionProperties(const uint8_t* snapshotTraceBegin,
172                                               size_t snapshotTraceBytes,
173                                               android::base::BumpPool* pool, VkResult input_result,
174                                               VkPhysicalDevice physicalDevice,
175                                               const char* pLayerName, uint32_t* pPropertyCount,
176                                               VkExtensionProperties* pProperties) {}
vkEnumerateInstanceLayerProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,uint32_t * pPropertyCount,VkLayerProperties * pProperties)177     void vkEnumerateInstanceLayerProperties(const uint8_t* snapshotTraceBegin,
178                                             size_t snapshotTraceBytes,
179                                             android::base::BumpPool* pool, VkResult input_result,
180                                             uint32_t* pPropertyCount,
181                                             VkLayerProperties* pProperties) {}
vkEnumerateDeviceLayerProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties)182     void vkEnumerateDeviceLayerProperties(const uint8_t* snapshotTraceBegin,
183                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
184                                           VkResult input_result, VkPhysicalDevice physicalDevice,
185                                           uint32_t* pPropertyCount,
186                                           VkLayerProperties* pProperties) {}
vkGetDeviceQueue(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue)187     void vkGetDeviceQueue(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
188                           android::base::BumpPool* pool, VkDevice device, uint32_t queueFamilyIndex,
189                           uint32_t queueIndex, VkQueue* pQueue) {}
vkQueueSubmit(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)190     void vkQueueSubmit(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
191                        android::base::BumpPool* pool, VkResult input_result, VkQueue queue,
192                        uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) {}
vkQueueWaitIdle(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue)193     void vkQueueWaitIdle(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
194                          android::base::BumpPool* pool, VkResult input_result, VkQueue queue) {}
vkDeviceWaitIdle(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device)195     void vkDeviceWaitIdle(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
196                           android::base::BumpPool* pool, VkResult input_result, VkDevice device) {}
vkAllocateMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory)197     void vkAllocateMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
198                           android::base::BumpPool* pool, VkResult input_result, VkDevice device,
199                           const VkMemoryAllocateInfo* pAllocateInfo,
200                           const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) {
201         if (!pMemory) return;
202         android::base::AutoLock lock(mLock);
203         // pMemory create
204         mReconstruction.addHandles((const uint64_t*)pMemory, 1);
205         mReconstruction.addHandleDependency((const uint64_t*)pMemory, 1,
206                                             (uint64_t)(uintptr_t)device);
207         const VkMemoryDedicatedAllocateInfo* dedicatedAllocateInfo =
208             vk_find_struct<VkMemoryDedicatedAllocateInfo>(pAllocateInfo);
209         if (dedicatedAllocateInfo) {
210             if (dedicatedAllocateInfo->image) {
211                 mReconstruction.addHandleDependency(
212                     (const uint64_t*)pMemory, 1,
213                     (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkImage(
214                         dedicatedAllocateInfo->image));
215             }
216             if (dedicatedAllocateInfo->buffer) {
217                 mReconstruction.addHandleDependency(
218                     (const uint64_t*)pMemory, 1,
219                     (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkBuffer(
220                         dedicatedAllocateInfo->buffer));
221             }
222         }
223         auto apiHandle = mReconstruction.createApiInfo();
224         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
225         mReconstruction.setApiTrace(apiInfo, OP_vkAllocateMemory, snapshotTraceBegin,
226                                     snapshotTraceBytes);
227         mReconstruction.forEachHandleAddApi((const uint64_t*)pMemory, 1, apiHandle,
228                                             VkReconstruction::CREATED);
229         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pMemory, 1);
230     }
vkFreeMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)231     void vkFreeMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
232                       android::base::BumpPool* pool, VkDevice device, VkDeviceMemory memory,
233                       const VkAllocationCallbacks* pAllocator) {
234         android::base::AutoLock lock(mLock);
235         // memory destroy
236         mReconstruction.removeHandles((const uint64_t*)(&memory), 1, true);
237     }
vkMapMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData)238     void vkMapMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
239                      android::base::BumpPool* pool, VkResult input_result, VkDevice device,
240                      VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size,
241                      VkMemoryMapFlags flags, void** ppData) {}
vkUnmapMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDeviceMemory memory)242     void vkUnmapMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
243                        android::base::BumpPool* pool, VkDevice device, VkDeviceMemory memory) {}
vkFlushMappedMemoryRanges(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)244     void vkFlushMappedMemoryRanges(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
245                                    android::base::BumpPool* pool, VkResult input_result,
246                                    VkDevice device, uint32_t memoryRangeCount,
247                                    const VkMappedMemoryRange* pMemoryRanges) {}
vkInvalidateMappedMemoryRanges(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)248     void vkInvalidateMappedMemoryRanges(const uint8_t* snapshotTraceBegin,
249                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
250                                         VkResult input_result, VkDevice device,
251                                         uint32_t memoryRangeCount,
252                                         const VkMappedMemoryRange* pMemoryRanges) {}
vkGetDeviceMemoryCommitment(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)253     void vkGetDeviceMemoryCommitment(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
254                                      android::base::BumpPool* pool, VkDevice device,
255                                      VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) {
256     }
vkBindBufferMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)257     void vkBindBufferMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
258                             android::base::BumpPool* pool, VkResult input_result, VkDevice device,
259                             VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
260         VkBuffer boxed_VkBuffer = unboxed_to_boxed_non_dispatchable_VkBuffer((&buffer)[0]);
261         android::base::AutoLock lock(mLock);
262         // buffer create
263         mReconstruction.addHandleDependency(
264             (const uint64_t*)&boxed_VkBuffer, 1,
265             (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkDeviceMemory(memory),
266             VkReconstruction::BOUND_MEMORY);
267         mReconstruction.addHandleDependency((const uint64_t*)&boxed_VkBuffer, 1,
268                                             (uint64_t)(uintptr_t)((&boxed_VkBuffer)[0]),
269                                             VkReconstruction::BOUND_MEMORY);
270         auto apiHandle = mReconstruction.createApiInfo();
271         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
272         mReconstruction.setApiTrace(apiInfo, OP_vkBindBufferMemory, snapshotTraceBegin,
273                                     snapshotTraceBytes);
274         mReconstruction.forEachHandleAddApi((const uint64_t*)&boxed_VkBuffer, 1, apiHandle,
275                                             VkReconstruction::BOUND_MEMORY);
276     }
vkBindImageMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset)277     void vkBindImageMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
278                            android::base::BumpPool* pool, VkResult input_result, VkDevice device,
279                            VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) {
280         VkImage boxed_VkImage = unboxed_to_boxed_non_dispatchable_VkImage((&image)[0]);
281         android::base::AutoLock lock(mLock);
282         // image create
283         mReconstruction.addHandleDependency(
284             (const uint64_t*)&boxed_VkImage, 1,
285             (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkDeviceMemory(memory),
286             VkReconstruction::BOUND_MEMORY);
287         mReconstruction.addHandleDependency((const uint64_t*)&boxed_VkImage, 1,
288                                             (uint64_t)(uintptr_t)((&boxed_VkImage)[0]),
289                                             VkReconstruction::BOUND_MEMORY);
290         auto apiHandle = mReconstruction.createApiInfo();
291         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
292         mReconstruction.setApiTrace(apiInfo, OP_vkBindImageMemory, snapshotTraceBegin,
293                                     snapshotTraceBytes);
294         mReconstruction.forEachHandleAddApi((const uint64_t*)&boxed_VkImage, 1, apiHandle,
295                                             VkReconstruction::BOUND_MEMORY);
296     }
vkGetBufferMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)297     void vkGetBufferMemoryRequirements(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
298                                        android::base::BumpPool* pool, VkDevice device,
299                                        VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) {
300     }
vkGetImageMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)301     void vkGetImageMemoryRequirements(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
302                                       android::base::BumpPool* pool, VkDevice device, VkImage image,
303                                       VkMemoryRequirements* pMemoryRequirements) {}
vkGetImageSparseMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)304     void vkGetImageSparseMemoryRequirements(
305         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
306         VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount,
307         VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {}
vkGetPhysicalDeviceSparseImageFormatProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties)308     void vkGetPhysicalDeviceSparseImageFormatProperties(
309         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
310         VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
311         VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling,
312         uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {}
vkQueueBindSparse(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)313     void vkQueueBindSparse(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
314                            android::base::BumpPool* pool, VkResult input_result, VkQueue queue,
315                            uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo,
316                            VkFence fence) {}
vkCreateFence(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)317     void vkCreateFence(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
318                        android::base::BumpPool* pool, VkResult input_result, VkDevice device,
319                        const VkFenceCreateInfo* pCreateInfo,
320                        const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
321         if (!pFence) return;
322         android::base::AutoLock lock(mLock);
323         // pFence create
324         mReconstruction.addHandles((const uint64_t*)pFence, 1);
325         mReconstruction.addHandleDependency((const uint64_t*)pFence, 1,
326                                             (uint64_t)(uintptr_t)device);
327         auto apiHandle = mReconstruction.createApiInfo();
328         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
329         mReconstruction.setApiTrace(apiInfo, OP_vkCreateFence, snapshotTraceBegin,
330                                     snapshotTraceBytes);
331         mReconstruction.forEachHandleAddApi((const uint64_t*)pFence, 1, apiHandle,
332                                             VkReconstruction::CREATED);
333         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pFence, 1);
334     }
vkDestroyFence(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)335     void vkDestroyFence(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
336                         android::base::BumpPool* pool, VkDevice device, VkFence fence,
337                         const VkAllocationCallbacks* pAllocator) {
338         android::base::AutoLock lock(mLock);
339         // fence destroy
340         mReconstruction.removeHandles((const uint64_t*)(&fence), 1, true);
341     }
vkResetFences(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t fenceCount,const VkFence * pFences)342     void vkResetFences(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
343                        android::base::BumpPool* pool, VkResult input_result, VkDevice device,
344                        uint32_t fenceCount, const VkFence* pFences) {}
vkGetFenceStatus(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkFence fence)345     void vkGetFenceStatus(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
346                           android::base::BumpPool* pool, VkResult input_result, VkDevice device,
347                           VkFence fence) {}
vkWaitForFences(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)348     void vkWaitForFences(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
349                          android::base::BumpPool* pool, VkResult input_result, VkDevice device,
350                          uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll,
351                          uint64_t timeout) {}
vkCreateSemaphore(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)352     void vkCreateSemaphore(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
353                            android::base::BumpPool* pool, VkResult input_result, VkDevice device,
354                            const VkSemaphoreCreateInfo* pCreateInfo,
355                            const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) {
356         if (!pSemaphore) return;
357         android::base::AutoLock lock(mLock);
358         // pSemaphore create
359         mReconstruction.addHandles((const uint64_t*)pSemaphore, 1);
360         mReconstruction.addHandleDependency((const uint64_t*)pSemaphore, 1,
361                                             (uint64_t)(uintptr_t)device);
362         auto apiHandle = mReconstruction.createApiInfo();
363         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
364         mReconstruction.setApiTrace(apiInfo, OP_vkCreateSemaphore, snapshotTraceBegin,
365                                     snapshotTraceBytes);
366         mReconstruction.forEachHandleAddApi((const uint64_t*)pSemaphore, 1, apiHandle,
367                                             VkReconstruction::CREATED);
368         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pSemaphore, 1);
369     }
vkDestroySemaphore(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)370     void vkDestroySemaphore(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
371                             android::base::BumpPool* pool, VkDevice device, VkSemaphore semaphore,
372                             const VkAllocationCallbacks* pAllocator) {
373         android::base::AutoLock lock(mLock);
374         // semaphore destroy
375         mReconstruction.removeHandles((const uint64_t*)(&semaphore), 1, true);
376     }
vkCreateEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent)377     void vkCreateEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
378                        android::base::BumpPool* pool, VkResult input_result, VkDevice device,
379                        const VkEventCreateInfo* pCreateInfo,
380                        const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
381         if (!pEvent) return;
382         android::base::AutoLock lock(mLock);
383         // pEvent create
384         mReconstruction.addHandles((const uint64_t*)pEvent, 1);
385         mReconstruction.addHandleDependency((const uint64_t*)pEvent, 1,
386                                             (uint64_t)(uintptr_t)device);
387         auto apiHandle = mReconstruction.createApiInfo();
388         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
389         mReconstruction.setApiTrace(apiInfo, OP_vkCreateEvent, snapshotTraceBegin,
390                                     snapshotTraceBytes);
391         mReconstruction.forEachHandleAddApi((const uint64_t*)pEvent, 1, apiHandle,
392                                             VkReconstruction::CREATED);
393         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pEvent, 1);
394     }
vkDestroyEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)395     void vkDestroyEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
396                         android::base::BumpPool* pool, VkDevice device, VkEvent event,
397                         const VkAllocationCallbacks* pAllocator) {
398         android::base::AutoLock lock(mLock);
399         // event destroy
400         mReconstruction.removeHandles((const uint64_t*)(&event), 1, true);
401     }
vkGetEventStatus(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkEvent event)402     void vkGetEventStatus(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
403                           android::base::BumpPool* pool, VkResult input_result, VkDevice device,
404                           VkEvent event) {}
vkSetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkEvent event)405     void vkSetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
406                     android::base::BumpPool* pool, VkResult input_result, VkDevice device,
407                     VkEvent event) {}
vkResetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkEvent event)408     void vkResetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
409                       android::base::BumpPool* pool, VkResult input_result, VkDevice device,
410                       VkEvent event) {}
vkCreateQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool)411     void vkCreateQueryPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
412                            android::base::BumpPool* pool, VkResult input_result, VkDevice device,
413                            const VkQueryPoolCreateInfo* pCreateInfo,
414                            const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) {
415         if (!pQueryPool) return;
416         android::base::AutoLock lock(mLock);
417         // pQueryPool create
418         mReconstruction.addHandles((const uint64_t*)pQueryPool, 1);
419         mReconstruction.addHandleDependency((const uint64_t*)pQueryPool, 1,
420                                             (uint64_t)(uintptr_t)device);
421         auto apiHandle = mReconstruction.createApiInfo();
422         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
423         mReconstruction.setApiTrace(apiInfo, OP_vkCreateQueryPool, snapshotTraceBegin,
424                                     snapshotTraceBytes);
425         mReconstruction.forEachHandleAddApi((const uint64_t*)pQueryPool, 1, apiHandle,
426                                             VkReconstruction::CREATED);
427         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pQueryPool, 1);
428     }
vkDestroyQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)429     void vkDestroyQueryPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
430                             android::base::BumpPool* pool, VkDevice device, VkQueryPool queryPool,
431                             const VkAllocationCallbacks* pAllocator) {
432         android::base::AutoLock lock(mLock);
433         // queryPool destroy
434         mReconstruction.removeHandles((const uint64_t*)(&queryPool), 1, true);
435     }
vkGetQueryPoolResults(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)436     void vkGetQueryPoolResults(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
437                                android::base::BumpPool* pool, VkResult input_result,
438                                VkDevice device, VkQueryPool queryPool, uint32_t firstQuery,
439                                uint32_t queryCount, size_t dataSize, void* pData,
440                                VkDeviceSize stride, VkQueryResultFlags flags) {}
vkCreateBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)441     void vkCreateBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
442                         android::base::BumpPool* pool, VkResult input_result, VkDevice device,
443                         const VkBufferCreateInfo* pCreateInfo,
444                         const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
445         if (!pBuffer) return;
446         android::base::AutoLock lock(mLock);
447         // pBuffer create
448         mReconstruction.addHandles((const uint64_t*)pBuffer, 1);
449         mReconstruction.addHandleDependency((const uint64_t*)pBuffer, 1,
450                                             (uint64_t)(uintptr_t)device);
451         auto apiHandle = mReconstruction.createApiInfo();
452         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
453         mReconstruction.setApiTrace(apiInfo, OP_vkCreateBuffer, snapshotTraceBegin,
454                                     snapshotTraceBytes);
455         mReconstruction.forEachHandleAddApi((const uint64_t*)pBuffer, 1, apiHandle,
456                                             VkReconstruction::CREATED);
457         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pBuffer, 1);
458     }
vkDestroyBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)459     void vkDestroyBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
460                          android::base::BumpPool* pool, VkDevice device, VkBuffer buffer,
461                          const VkAllocationCallbacks* pAllocator) {
462         android::base::AutoLock lock(mLock);
463         // buffer destroy
464         mReconstruction.removeHandles((const uint64_t*)(&buffer), 1, true);
465     }
vkCreateBufferView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)466     void vkCreateBufferView(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
467                             android::base::BumpPool* pool, VkResult input_result, VkDevice device,
468                             const VkBufferViewCreateInfo* pCreateInfo,
469                             const VkAllocationCallbacks* pAllocator, VkBufferView* pView) {
470         if (!pView) return;
471         android::base::AutoLock lock(mLock);
472         // pView create
473         mReconstruction.addHandles((const uint64_t*)pView, 1);
474         mReconstruction.addHandleDependency((const uint64_t*)pView, 1, (uint64_t)(uintptr_t)device);
475         auto apiHandle = mReconstruction.createApiInfo();
476         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
477         mReconstruction.setApiTrace(apiInfo, OP_vkCreateBufferView, snapshotTraceBegin,
478                                     snapshotTraceBytes);
479         mReconstruction.forEachHandleAddApi((const uint64_t*)pView, 1, apiHandle,
480                                             VkReconstruction::CREATED);
481         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pView, 1);
482     }
vkDestroyBufferView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)483     void vkDestroyBufferView(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
484                              android::base::BumpPool* pool, VkDevice device,
485                              VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) {
486         android::base::AutoLock lock(mLock);
487         // bufferView destroy
488         mReconstruction.removeHandles((const uint64_t*)(&bufferView), 1, true);
489     }
vkCreateImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage)490     void vkCreateImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
491                        android::base::BumpPool* pool, VkResult input_result, VkDevice device,
492                        const VkImageCreateInfo* pCreateInfo,
493                        const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
494         if (!pImage) return;
495         android::base::AutoLock lock(mLock);
496         // pImage create
497         mReconstruction.addHandles((const uint64_t*)pImage, 1);
498         mReconstruction.addHandleDependency((const uint64_t*)pImage, 1,
499                                             (uint64_t)(uintptr_t)device);
500         auto apiHandle = mReconstruction.createApiInfo();
501         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
502         mReconstruction.setApiTrace(apiInfo, OP_vkCreateImage, snapshotTraceBegin,
503                                     snapshotTraceBytes);
504         mReconstruction.forEachHandleAddApi((const uint64_t*)pImage, 1, apiHandle,
505                                             VkReconstruction::CREATED);
506         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pImage, 1);
507     }
vkDestroyImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)508     void vkDestroyImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
509                         android::base::BumpPool* pool, VkDevice device, VkImage image,
510                         const VkAllocationCallbacks* pAllocator) {
511         android::base::AutoLock lock(mLock);
512         // image destroy
513         mReconstruction.removeHandles((const uint64_t*)(&image), 1, true);
514     }
vkGetImageSubresourceLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)515     void vkGetImageSubresourceLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
516                                      android::base::BumpPool* pool, VkDevice device, VkImage image,
517                                      const VkImageSubresource* pSubresource,
518                                      VkSubresourceLayout* pLayout) {}
vkCreateImageView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView)519     void vkCreateImageView(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
520                            android::base::BumpPool* pool, VkResult input_result, VkDevice device,
521                            const VkImageViewCreateInfo* pCreateInfo,
522                            const VkAllocationCallbacks* pAllocator, VkImageView* pView) {
523         if (!pView) return;
524         android::base::AutoLock lock(mLock);
525         // pView create
526         mReconstruction.addHandles((const uint64_t*)pView, 1);
527         mReconstruction.addHandleDependency((const uint64_t*)pView, 1, (uint64_t)(uintptr_t)device);
528         mReconstruction.addHandleDependency(
529             (const uint64_t*)pView, 1,
530             (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkImage(pCreateInfo->image),
531             VkReconstruction::CREATED, VkReconstruction::BOUND_MEMORY);
532         auto apiHandle = mReconstruction.createApiInfo();
533         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
534         mReconstruction.setApiTrace(apiInfo, OP_vkCreateImageView, snapshotTraceBegin,
535                                     snapshotTraceBytes);
536         mReconstruction.forEachHandleAddApi((const uint64_t*)pView, 1, apiHandle,
537                                             VkReconstruction::CREATED);
538         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pView, 1);
539     }
vkDestroyImageView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)540     void vkDestroyImageView(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
541                             android::base::BumpPool* pool, VkDevice device, VkImageView imageView,
542                             const VkAllocationCallbacks* pAllocator) {
543         android::base::AutoLock lock(mLock);
544         // imageView destroy
545         mReconstruction.removeHandles((const uint64_t*)(&imageView), 1, true);
546     }
vkCreateShaderModule(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)547     void vkCreateShaderModule(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
548                               android::base::BumpPool* pool, VkResult input_result, VkDevice device,
549                               const VkShaderModuleCreateInfo* pCreateInfo,
550                               const VkAllocationCallbacks* pAllocator,
551                               VkShaderModule* pShaderModule) {
552         if (!pShaderModule) return;
553         android::base::AutoLock lock(mLock);
554         // pShaderModule create
555         mReconstruction.addHandles((const uint64_t*)pShaderModule, 1);
556         mReconstruction.addHandleDependency((const uint64_t*)pShaderModule, 1,
557                                             (uint64_t)(uintptr_t)device);
558         auto apiHandle = mReconstruction.createApiInfo();
559         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
560         mReconstruction.setApiTrace(apiInfo, OP_vkCreateShaderModule, snapshotTraceBegin,
561                                     snapshotTraceBytes);
562         mReconstruction.forEachHandleAddApi((const uint64_t*)pShaderModule, 1, apiHandle,
563                                             VkReconstruction::CREATED);
564         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pShaderModule, 1);
565     }
vkDestroyShaderModule(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)566     void vkDestroyShaderModule(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
567                                android::base::BumpPool* pool, VkDevice device,
568                                VkShaderModule shaderModule,
569                                const VkAllocationCallbacks* pAllocator) {
570         android::base::AutoLock lock(mLock);
571         // shaderModule destroy
572         mReconstruction.removeHandles((const uint64_t*)(&shaderModule), 1, false);
573     }
vkCreatePipelineCache(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache)574     void vkCreatePipelineCache(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
575                                android::base::BumpPool* pool, VkResult input_result,
576                                VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo,
577                                const VkAllocationCallbacks* pAllocator,
578                                VkPipelineCache* pPipelineCache) {
579         if (!pPipelineCache) return;
580         android::base::AutoLock lock(mLock);
581         // pPipelineCache create
582         mReconstruction.addHandles((const uint64_t*)pPipelineCache, 1);
583         mReconstruction.addHandleDependency((const uint64_t*)pPipelineCache, 1,
584                                             (uint64_t)(uintptr_t)device);
585         auto apiHandle = mReconstruction.createApiInfo();
586         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
587         mReconstruction.setApiTrace(apiInfo, OP_vkCreatePipelineCache, snapshotTraceBegin,
588                                     snapshotTraceBytes);
589         mReconstruction.forEachHandleAddApi((const uint64_t*)pPipelineCache, 1, apiHandle,
590                                             VkReconstruction::CREATED);
591         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPipelineCache, 1);
592     }
vkDestroyPipelineCache(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)593     void vkDestroyPipelineCache(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
594                                 android::base::BumpPool* pool, VkDevice device,
595                                 VkPipelineCache pipelineCache,
596                                 const VkAllocationCallbacks* pAllocator) {
597         android::base::AutoLock lock(mLock);
598         // pipelineCache destroy
599         mReconstruction.removeHandles((const uint64_t*)(&pipelineCache), 1, true);
600     }
vkGetPipelineCacheData(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)601     void vkGetPipelineCacheData(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
602                                 android::base::BumpPool* pool, VkResult input_result,
603                                 VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize,
604                                 void* pData) {}
vkMergePipelineCaches(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)605     void vkMergePipelineCaches(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
606                                android::base::BumpPool* pool, VkResult input_result,
607                                VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount,
608                                const VkPipelineCache* pSrcCaches) {}
vkCreateGraphicsPipelines(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)609     void vkCreateGraphicsPipelines(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
610                                    android::base::BumpPool* pool, VkResult input_result,
611                                    VkDevice device, VkPipelineCache pipelineCache,
612                                    uint32_t createInfoCount,
613                                    const VkGraphicsPipelineCreateInfo* pCreateInfos,
614                                    const VkAllocationCallbacks* pAllocator,
615                                    VkPipeline* pPipelines) {
616         if (!pPipelines) return;
617         android::base::AutoLock lock(mLock);
618         // pPipelines create
619         mReconstruction.addHandles((const uint64_t*)pPipelines, ((createInfoCount)));
620         mReconstruction.addHandleDependency((const uint64_t*)pPipelines, ((createInfoCount)),
621                                             (uint64_t)(uintptr_t)device);
622         for (uint32_t i = 0; i < createInfoCount; ++i) {
623             for (uint32_t j = 0; j < pCreateInfos[i].stageCount; ++j) {
624                 mReconstruction.addHandleDependency(
625                     (const uint64_t*)(pPipelines + i), 1,
626                     (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkShaderModule(
627                         pCreateInfos[i].pStages[j].module));
628             }
629         }
630         auto apiHandle = mReconstruction.createApiInfo();
631         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
632         mReconstruction.setApiTrace(apiInfo, OP_vkCreateGraphicsPipelines, snapshotTraceBegin,
633                                     snapshotTraceBytes);
634         mReconstruction.forEachHandleAddApi((const uint64_t*)pPipelines, ((createInfoCount)),
635                                             apiHandle, VkReconstruction::CREATED);
636         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPipelines,
637                                                 ((createInfoCount)));
638     }
vkCreateComputePipelines(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)639     void vkCreateComputePipelines(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
640                                   android::base::BumpPool* pool, VkResult input_result,
641                                   VkDevice device, VkPipelineCache pipelineCache,
642                                   uint32_t createInfoCount,
643                                   const VkComputePipelineCreateInfo* pCreateInfos,
644                                   const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) {
645         if (!pPipelines) return;
646         android::base::AutoLock lock(mLock);
647         // pPipelines create
648         mReconstruction.addHandles((const uint64_t*)pPipelines, ((createInfoCount)));
649         mReconstruction.addHandleDependency((const uint64_t*)pPipelines, ((createInfoCount)),
650                                             (uint64_t)(uintptr_t)device);
651         auto apiHandle = mReconstruction.createApiInfo();
652         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
653         mReconstruction.setApiTrace(apiInfo, OP_vkCreateComputePipelines, snapshotTraceBegin,
654                                     snapshotTraceBytes);
655         mReconstruction.forEachHandleAddApi((const uint64_t*)pPipelines, ((createInfoCount)),
656                                             apiHandle, VkReconstruction::CREATED);
657         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPipelines,
658                                                 ((createInfoCount)));
659     }
vkDestroyPipeline(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)660     void vkDestroyPipeline(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
661                            android::base::BumpPool* pool, VkDevice device, VkPipeline pipeline,
662                            const VkAllocationCallbacks* pAllocator) {
663         android::base::AutoLock lock(mLock);
664         // pipeline destroy
665         mReconstruction.removeHandles((const uint64_t*)(&pipeline), 1, true);
666     }
vkCreatePipelineLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout)667     void vkCreatePipelineLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
668                                 android::base::BumpPool* pool, VkResult input_result,
669                                 VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo,
670                                 const VkAllocationCallbacks* pAllocator,
671                                 VkPipelineLayout* pPipelineLayout) {
672         if (!pPipelineLayout) return;
673         android::base::AutoLock lock(mLock);
674         // pPipelineLayout create
675         mReconstruction.addHandles((const uint64_t*)pPipelineLayout, 1);
676         mReconstruction.addHandleDependency((const uint64_t*)pPipelineLayout, 1,
677                                             (uint64_t)(uintptr_t)device);
678         auto apiHandle = mReconstruction.createApiInfo();
679         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
680         mReconstruction.setApiTrace(apiInfo, OP_vkCreatePipelineLayout, snapshotTraceBegin,
681                                     snapshotTraceBytes);
682         mReconstruction.forEachHandleAddApi((const uint64_t*)pPipelineLayout, 1, apiHandle,
683                                             VkReconstruction::CREATED);
684         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPipelineLayout, 1);
685     }
vkDestroyPipelineLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)686     void vkDestroyPipelineLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
687                                  android::base::BumpPool* pool, VkDevice device,
688                                  VkPipelineLayout pipelineLayout,
689                                  const VkAllocationCallbacks* pAllocator) {
690         android::base::AutoLock lock(mLock);
691         // pipelineLayout destroy
692         mReconstruction.removeHandles((const uint64_t*)(&pipelineLayout), 1, true);
693     }
vkCreateSampler(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler)694     void vkCreateSampler(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
695                          android::base::BumpPool* pool, VkResult input_result, VkDevice device,
696                          const VkSamplerCreateInfo* pCreateInfo,
697                          const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) {
698         if (!pSampler) return;
699         android::base::AutoLock lock(mLock);
700         // pSampler create
701         mReconstruction.addHandles((const uint64_t*)pSampler, 1);
702         mReconstruction.addHandleDependency((const uint64_t*)pSampler, 1,
703                                             (uint64_t)(uintptr_t)device);
704         auto apiHandle = mReconstruction.createApiInfo();
705         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
706         mReconstruction.setApiTrace(apiInfo, OP_vkCreateSampler, snapshotTraceBegin,
707                                     snapshotTraceBytes);
708         mReconstruction.forEachHandleAddApi((const uint64_t*)pSampler, 1, apiHandle,
709                                             VkReconstruction::CREATED);
710         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pSampler, 1);
711     }
vkDestroySampler(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)712     void vkDestroySampler(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
713                           android::base::BumpPool* pool, VkDevice device, VkSampler sampler,
714                           const VkAllocationCallbacks* pAllocator) {
715         android::base::AutoLock lock(mLock);
716         // sampler destroy
717         mReconstruction.removeHandles((const uint64_t*)(&sampler), 1, true);
718     }
vkCreateDescriptorSetLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)719     void vkCreateDescriptorSetLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
720                                      android::base::BumpPool* pool, VkResult input_result,
721                                      VkDevice device,
722                                      const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
723                                      const VkAllocationCallbacks* pAllocator,
724                                      VkDescriptorSetLayout* pSetLayout) {
725         if (!pSetLayout) return;
726         android::base::AutoLock lock(mLock);
727         // pSetLayout create
728         mReconstruction.addHandles((const uint64_t*)pSetLayout, 1);
729         mReconstruction.addHandleDependency((const uint64_t*)pSetLayout, 1,
730                                             (uint64_t)(uintptr_t)device);
731         auto apiHandle = mReconstruction.createApiInfo();
732         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
733         mReconstruction.setApiTrace(apiInfo, OP_vkCreateDescriptorSetLayout, snapshotTraceBegin,
734                                     snapshotTraceBytes);
735         mReconstruction.forEachHandleAddApi((const uint64_t*)pSetLayout, 1, apiHandle,
736                                             VkReconstruction::CREATED);
737         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pSetLayout, 1);
738     }
vkDestroyDescriptorSetLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)739     void vkDestroyDescriptorSetLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
740                                       android::base::BumpPool* pool, VkDevice device,
741                                       VkDescriptorSetLayout descriptorSetLayout,
742                                       const VkAllocationCallbacks* pAllocator) {
743         android::base::AutoLock lock(mLock);
744         // descriptorSetLayout destroy
745         mReconstruction.removeHandles((const uint64_t*)(&descriptorSetLayout), 1, true);
746     }
vkCreateDescriptorPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)747     void vkCreateDescriptorPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
748                                 android::base::BumpPool* pool, VkResult input_result,
749                                 VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo,
750                                 const VkAllocationCallbacks* pAllocator,
751                                 VkDescriptorPool* pDescriptorPool) {
752         if (!pDescriptorPool) return;
753         android::base::AutoLock lock(mLock);
754         // pDescriptorPool create
755         mReconstruction.addHandles((const uint64_t*)pDescriptorPool, 1);
756         mReconstruction.addHandleDependency((const uint64_t*)pDescriptorPool, 1,
757                                             (uint64_t)(uintptr_t)device);
758         auto apiHandle = mReconstruction.createApiInfo();
759         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
760         mReconstruction.setApiTrace(apiInfo, OP_vkCreateDescriptorPool, snapshotTraceBegin,
761                                     snapshotTraceBytes);
762         mReconstruction.forEachHandleAddApi((const uint64_t*)pDescriptorPool, 1, apiHandle,
763                                             VkReconstruction::CREATED);
764         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pDescriptorPool, 1);
765     }
vkDestroyDescriptorPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)766     void vkDestroyDescriptorPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
767                                  android::base::BumpPool* pool, VkDevice device,
768                                  VkDescriptorPool descriptorPool,
769                                  const VkAllocationCallbacks* pAllocator) {
770         android::base::AutoLock lock(mLock);
771         // descriptorPool destroy
772         mReconstruction.removeHandles((const uint64_t*)(&descriptorPool), 1, true);
773     }
vkResetDescriptorPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)774     void vkResetDescriptorPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
775                                android::base::BumpPool* pool, VkResult input_result,
776                                VkDevice device, VkDescriptorPool descriptorPool,
777                                VkDescriptorPoolResetFlags flags) {}
vkAllocateDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets)778     void vkAllocateDescriptorSets(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
779                                   android::base::BumpPool* pool, VkResult input_result,
780                                   VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo,
781                                   VkDescriptorSet* pDescriptorSets) {}
vkFreeDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets)782     void vkFreeDescriptorSets(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
783                               android::base::BumpPool* pool, VkResult input_result, VkDevice device,
784                               VkDescriptorPool descriptorPool, uint32_t descriptorSetCount,
785                               const VkDescriptorSet* pDescriptorSets) {
786         android::base::AutoLock lock(mLock);
787         // pDescriptorSets destroy
788         mReconstruction.removeHandles((const uint64_t*)pDescriptorSets, ((descriptorSetCount)),
789                                       true);
790     }
vkUpdateDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies)791     void vkUpdateDescriptorSets(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
792                                 android::base::BumpPool* pool, VkDevice device,
793                                 uint32_t descriptorWriteCount,
794                                 const VkWriteDescriptorSet* pDescriptorWrites,
795                                 uint32_t descriptorCopyCount,
796                                 const VkCopyDescriptorSet* pDescriptorCopies) {}
vkCreateFramebuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer)797     void vkCreateFramebuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
798                              android::base::BumpPool* pool, VkResult input_result, VkDevice device,
799                              const VkFramebufferCreateInfo* pCreateInfo,
800                              const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) {
801         if (!pFramebuffer) return;
802         android::base::AutoLock lock(mLock);
803         // pFramebuffer create
804         mReconstruction.addHandles((const uint64_t*)pFramebuffer, 1);
805         mReconstruction.addHandleDependency((const uint64_t*)pFramebuffer, 1,
806                                             (uint64_t)(uintptr_t)device);
807         mReconstruction.addHandleDependency(
808             (const uint64_t*)pFramebuffer, 1,
809             (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkRenderPass(
810                 pCreateInfo->renderPass));
811         for (uint32_t i = 0; i < pCreateInfo->attachmentCount; ++i) {
812             mReconstruction.addHandleDependency(
813                 (const uint64_t*)pFramebuffer, 1,
814                 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkImageView(
815                     pCreateInfo->pAttachments[i]));
816         }
817         auto apiHandle = mReconstruction.createApiInfo();
818         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
819         mReconstruction.setApiTrace(apiInfo, OP_vkCreateFramebuffer, snapshotTraceBegin,
820                                     snapshotTraceBytes);
821         mReconstruction.forEachHandleAddApi((const uint64_t*)pFramebuffer, 1, apiHandle,
822                                             VkReconstruction::CREATED);
823         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pFramebuffer, 1);
824     }
vkDestroyFramebuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)825     void vkDestroyFramebuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
826                               android::base::BumpPool* pool, VkDevice device,
827                               VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) {
828         android::base::AutoLock lock(mLock);
829         // framebuffer destroy
830         mReconstruction.removeHandles((const uint64_t*)(&framebuffer), 1, true);
831     }
vkCreateRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)832     void vkCreateRenderPass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
833                             android::base::BumpPool* pool, VkResult input_result, VkDevice device,
834                             const VkRenderPassCreateInfo* pCreateInfo,
835                             const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
836         if (!pRenderPass) return;
837         android::base::AutoLock lock(mLock);
838         // pRenderPass create
839         mReconstruction.addHandles((const uint64_t*)pRenderPass, 1);
840         mReconstruction.addHandleDependency((const uint64_t*)pRenderPass, 1,
841                                             (uint64_t)(uintptr_t)device);
842         auto apiHandle = mReconstruction.createApiInfo();
843         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
844         mReconstruction.setApiTrace(apiInfo, OP_vkCreateRenderPass, snapshotTraceBegin,
845                                     snapshotTraceBytes);
846         mReconstruction.forEachHandleAddApi((const uint64_t*)pRenderPass, 1, apiHandle,
847                                             VkReconstruction::CREATED);
848         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pRenderPass, 1);
849     }
vkDestroyRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)850     void vkDestroyRenderPass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
851                              android::base::BumpPool* pool, VkDevice device,
852                              VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) {
853         android::base::AutoLock lock(mLock);
854         // renderPass destroy
855         mReconstruction.removeHandles((const uint64_t*)(&renderPass), 1, true);
856     }
vkGetRenderAreaGranularity(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)857     void vkGetRenderAreaGranularity(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
858                                     android::base::BumpPool* pool, VkDevice device,
859                                     VkRenderPass renderPass, VkExtent2D* pGranularity) {}
vkCreateCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)860     void vkCreateCommandPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
861                              android::base::BumpPool* pool, VkResult input_result, VkDevice device,
862                              const VkCommandPoolCreateInfo* pCreateInfo,
863                              const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) {
864         if (!pCommandPool) return;
865         android::base::AutoLock lock(mLock);
866         // pCommandPool create
867         mReconstruction.addHandles((const uint64_t*)pCommandPool, 1);
868         mReconstruction.addHandleDependency((const uint64_t*)pCommandPool, 1,
869                                             (uint64_t)(uintptr_t)device);
870         auto apiHandle = mReconstruction.createApiInfo();
871         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
872         mReconstruction.setApiTrace(apiInfo, OP_vkCreateCommandPool, snapshotTraceBegin,
873                                     snapshotTraceBytes);
874         mReconstruction.forEachHandleAddApi((const uint64_t*)pCommandPool, 1, apiHandle,
875                                             VkReconstruction::CREATED);
876         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pCommandPool, 1);
877     }
vkDestroyCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)878     void vkDestroyCommandPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
879                               android::base::BumpPool* pool, VkDevice device,
880                               VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) {
881         android::base::AutoLock lock(mLock);
882         // commandPool destroy
883         mReconstruction.removeHandles((const uint64_t*)(&commandPool), 1, true);
884     }
vkResetCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)885     void vkResetCommandPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
886                             android::base::BumpPool* pool, VkResult input_result, VkDevice device,
887                             VkCommandPool commandPool, VkCommandPoolResetFlags flags) {}
vkAllocateCommandBuffers(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers)888     void vkAllocateCommandBuffers(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
889                                   android::base::BumpPool* pool, VkResult input_result,
890                                   VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo,
891                                   VkCommandBuffer* pCommandBuffers) {
892         if (!pCommandBuffers) return;
893         android::base::AutoLock lock(mLock);
894         // pCommandBuffers create
895         mReconstruction.addHandles((const uint64_t*)pCommandBuffers,
896                                    pAllocateInfo->commandBufferCount);
897         mReconstruction.addHandleDependency(
898             (const uint64_t*)pCommandBuffers, pAllocateInfo->commandBufferCount,
899             (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkCommandPool(
900                 pAllocateInfo->commandPool));
901         auto apiHandle = mReconstruction.createApiInfo();
902         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
903         mReconstruction.setApiTrace(apiInfo, OP_vkAllocateCommandBuffers, snapshotTraceBegin,
904                                     snapshotTraceBytes);
905         mReconstruction.forEachHandleAddApi((const uint64_t*)pCommandBuffers,
906                                             pAllocateInfo->commandBufferCount, apiHandle,
907                                             VkReconstruction::CREATED);
908         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pCommandBuffers,
909                                                 pAllocateInfo->commandBufferCount);
910     }
vkFreeCommandBuffers(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)911     void vkFreeCommandBuffers(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
912                               android::base::BumpPool* pool, VkDevice device,
913                               VkCommandPool commandPool, uint32_t commandBufferCount,
914                               const VkCommandBuffer* pCommandBuffers) {
915         android::base::AutoLock lock(mLock);
916         // pCommandBuffers destroy
917         mReconstruction.removeHandles((const uint64_t*)pCommandBuffers, ((commandBufferCount)),
918                                       true);
919     }
vkBeginCommandBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)920     void vkBeginCommandBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
921                               android::base::BumpPool* pool, VkResult input_result,
922                               VkCommandBuffer commandBuffer,
923                               const VkCommandBufferBeginInfo* pBeginInfo) {
924         android::base::AutoLock lock(mLock);
925         // commandBuffer modify
926         auto apiHandle = mReconstruction.createApiInfo();
927         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
928         mReconstruction.setApiTrace(apiInfo, OP_vkBeginCommandBuffer, snapshotTraceBegin,
929                                     snapshotTraceBytes);
930         for (uint32_t i = 0; i < 1; ++i) {
931             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
932             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
933         }
934     }
vkEndCommandBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkCommandBuffer commandBuffer)935     void vkEndCommandBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
936                             android::base::BumpPool* pool, VkResult input_result,
937                             VkCommandBuffer commandBuffer) {
938         android::base::AutoLock lock(mLock);
939         // commandBuffer modify
940         auto apiHandle = mReconstruction.createApiInfo();
941         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
942         mReconstruction.setApiTrace(apiInfo, OP_vkEndCommandBuffer, snapshotTraceBegin,
943                                     snapshotTraceBytes);
944         for (uint32_t i = 0; i < 1; ++i) {
945             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
946             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
947         }
948     }
vkResetCommandBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)949     void vkResetCommandBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
950                               android::base::BumpPool* pool, VkResult input_result,
951                               VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) {
952         android::base::AutoLock lock(mLock);
953         // commandBuffer modify
954         auto apiHandle = mReconstruction.createApiInfo();
955         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
956         mReconstruction.setApiTrace(apiInfo, OP_vkResetCommandBuffer, snapshotTraceBegin,
957                                     snapshotTraceBytes);
958         for (uint32_t i = 0; i < 1; ++i) {
959             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
960             mReconstruction.forEachHandleClearModifyApi((const uint64_t*)(&boxed), 1);
961         }
962     }
vkCmdBindPipeline(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)963     void vkCmdBindPipeline(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
964                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
965                            VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
966         android::base::AutoLock lock(mLock);
967         // commandBuffer modify
968         auto apiHandle = mReconstruction.createApiInfo();
969         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
970         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindPipeline, snapshotTraceBegin,
971                                     snapshotTraceBytes);
972         for (uint32_t i = 0; i < 1; ++i) {
973             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
974             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
975         }
976     }
vkCmdSetViewport(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)977     void vkCmdSetViewport(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
978                           android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
979                           uint32_t firstViewport, uint32_t viewportCount,
980                           const VkViewport* pViewports) {
981         android::base::AutoLock lock(mLock);
982         // commandBuffer modify
983         auto apiHandle = mReconstruction.createApiInfo();
984         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
985         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetViewport, snapshotTraceBegin,
986                                     snapshotTraceBytes);
987         for (uint32_t i = 0; i < 1; ++i) {
988             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
989             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
990         }
991     }
vkCmdSetScissor(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)992     void vkCmdSetScissor(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
993                          android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
994                          uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) {
995         android::base::AutoLock lock(mLock);
996         // commandBuffer modify
997         auto apiHandle = mReconstruction.createApiInfo();
998         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
999         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetScissor, snapshotTraceBegin,
1000                                     snapshotTraceBytes);
1001         for (uint32_t i = 0; i < 1; ++i) {
1002             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1003             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1004         }
1005     }
vkCmdSetLineWidth(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,float lineWidth)1006     void vkCmdSetLineWidth(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1007                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1008                            float lineWidth) {
1009         android::base::AutoLock lock(mLock);
1010         // commandBuffer modify
1011         auto apiHandle = mReconstruction.createApiInfo();
1012         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1013         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetLineWidth, snapshotTraceBegin,
1014                                     snapshotTraceBytes);
1015         for (uint32_t i = 0; i < 1; ++i) {
1016             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1017             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1018         }
1019     }
vkCmdSetDepthBias(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)1020     void vkCmdSetDepthBias(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1021                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1022                            float depthBiasConstantFactor, float depthBiasClamp,
1023                            float depthBiasSlopeFactor) {
1024         android::base::AutoLock lock(mLock);
1025         // commandBuffer modify
1026         auto apiHandle = mReconstruction.createApiInfo();
1027         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1028         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBias, snapshotTraceBegin,
1029                                     snapshotTraceBytes);
1030         for (uint32_t i = 0; i < 1; ++i) {
1031             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1032             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1033         }
1034     }
vkCmdSetBlendConstants(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const float blendConstants[4])1035     void vkCmdSetBlendConstants(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1036                                 android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1037                                 const float blendConstants[4]) {
1038         android::base::AutoLock lock(mLock);
1039         // commandBuffer modify
1040         auto apiHandle = mReconstruction.createApiInfo();
1041         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1042         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetBlendConstants, snapshotTraceBegin,
1043                                     snapshotTraceBytes);
1044         for (uint32_t i = 0; i < 1; ++i) {
1045             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1046             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1047         }
1048     }
vkCmdSetDepthBounds(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)1049     void vkCmdSetDepthBounds(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1050                              android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1051                              float minDepthBounds, float maxDepthBounds) {
1052         android::base::AutoLock lock(mLock);
1053         // commandBuffer modify
1054         auto apiHandle = mReconstruction.createApiInfo();
1055         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1056         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBounds, snapshotTraceBegin,
1057                                     snapshotTraceBytes);
1058         for (uint32_t i = 0; i < 1; ++i) {
1059             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1060             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1061         }
1062     }
vkCmdSetStencilCompareMask(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)1063     void vkCmdSetStencilCompareMask(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1064                                     android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1065                                     VkStencilFaceFlags faceMask, uint32_t compareMask) {
1066         android::base::AutoLock lock(mLock);
1067         // commandBuffer modify
1068         auto apiHandle = mReconstruction.createApiInfo();
1069         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1070         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilCompareMask, snapshotTraceBegin,
1071                                     snapshotTraceBytes);
1072         for (uint32_t i = 0; i < 1; ++i) {
1073             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1074             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1075         }
1076     }
vkCmdSetStencilWriteMask(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)1077     void vkCmdSetStencilWriteMask(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1078                                   android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1079                                   VkStencilFaceFlags faceMask, uint32_t writeMask) {
1080         android::base::AutoLock lock(mLock);
1081         // commandBuffer modify
1082         auto apiHandle = mReconstruction.createApiInfo();
1083         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1084         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilWriteMask, snapshotTraceBegin,
1085                                     snapshotTraceBytes);
1086         for (uint32_t i = 0; i < 1; ++i) {
1087             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1088             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1089         }
1090     }
vkCmdSetStencilReference(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)1091     void vkCmdSetStencilReference(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1092                                   android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1093                                   VkStencilFaceFlags faceMask, uint32_t reference) {
1094         android::base::AutoLock lock(mLock);
1095         // commandBuffer modify
1096         auto apiHandle = mReconstruction.createApiInfo();
1097         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1098         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilReference, snapshotTraceBegin,
1099                                     snapshotTraceBytes);
1100         for (uint32_t i = 0; i < 1; ++i) {
1101             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1102             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1103         }
1104     }
vkCmdBindDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)1105     void vkCmdBindDescriptorSets(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1106                                  android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1107                                  VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout,
1108                                  uint32_t firstSet, uint32_t descriptorSetCount,
1109                                  const VkDescriptorSet* pDescriptorSets,
1110                                  uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) {
1111         android::base::AutoLock lock(mLock);
1112         // commandBuffer modify
1113         auto apiHandle = mReconstruction.createApiInfo();
1114         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1115         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindDescriptorSets, snapshotTraceBegin,
1116                                     snapshotTraceBytes);
1117         for (uint32_t i = 0; i < 1; ++i) {
1118             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1119             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1120         }
1121     }
vkCmdBindIndexBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)1122     void vkCmdBindIndexBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1123                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1124                               VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) {
1125         android::base::AutoLock lock(mLock);
1126         // commandBuffer modify
1127         auto apiHandle = mReconstruction.createApiInfo();
1128         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1129         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindIndexBuffer, snapshotTraceBegin,
1130                                     snapshotTraceBytes);
1131         for (uint32_t i = 0; i < 1; ++i) {
1132             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1133             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1134         }
1135     }
vkCmdBindVertexBuffers(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)1136     void vkCmdBindVertexBuffers(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1137                                 android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1138                                 uint32_t firstBinding, uint32_t bindingCount,
1139                                 const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) {
1140         android::base::AutoLock lock(mLock);
1141         // commandBuffer modify
1142         auto apiHandle = mReconstruction.createApiInfo();
1143         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1144         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindVertexBuffers, snapshotTraceBegin,
1145                                     snapshotTraceBytes);
1146         for (uint32_t i = 0; i < 1; ++i) {
1147             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1148             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1149         }
1150     }
vkCmdDraw(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)1151     void vkCmdDraw(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1152                    android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1153                    uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex,
1154                    uint32_t firstInstance) {
1155         android::base::AutoLock lock(mLock);
1156         // commandBuffer modify
1157         auto apiHandle = mReconstruction.createApiInfo();
1158         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1159         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDraw, snapshotTraceBegin, snapshotTraceBytes);
1160         for (uint32_t i = 0; i < 1; ++i) {
1161             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1162             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1163         }
1164     }
vkCmdDrawIndexed(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)1165     void vkCmdDrawIndexed(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1166                           android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1167                           uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex,
1168                           int32_t vertexOffset, uint32_t firstInstance) {
1169         android::base::AutoLock lock(mLock);
1170         // commandBuffer modify
1171         auto apiHandle = mReconstruction.createApiInfo();
1172         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1173         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndexed, snapshotTraceBegin,
1174                                     snapshotTraceBytes);
1175         for (uint32_t i = 0; i < 1; ++i) {
1176             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1177             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1178         }
1179     }
vkCmdDrawIndirect(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1180     void vkCmdDrawIndirect(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1181                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1182                            VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount,
1183                            uint32_t stride) {
1184         android::base::AutoLock lock(mLock);
1185         // commandBuffer modify
1186         auto apiHandle = mReconstruction.createApiInfo();
1187         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1188         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndirect, snapshotTraceBegin,
1189                                     snapshotTraceBytes);
1190         for (uint32_t i = 0; i < 1; ++i) {
1191             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1192             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1193         }
1194     }
vkCmdDrawIndexedIndirect(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1195     void vkCmdDrawIndexedIndirect(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1196                                   android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1197                                   VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount,
1198                                   uint32_t stride) {
1199         android::base::AutoLock lock(mLock);
1200         // commandBuffer modify
1201         auto apiHandle = mReconstruction.createApiInfo();
1202         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1203         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndexedIndirect, snapshotTraceBegin,
1204                                     snapshotTraceBytes);
1205         for (uint32_t i = 0; i < 1; ++i) {
1206             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1207             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1208         }
1209     }
vkCmdDispatch(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1210     void vkCmdDispatch(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1211                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1212                        uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) {
1213         android::base::AutoLock lock(mLock);
1214         // commandBuffer modify
1215         auto apiHandle = mReconstruction.createApiInfo();
1216         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1217         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDispatch, snapshotTraceBegin,
1218                                     snapshotTraceBytes);
1219         for (uint32_t i = 0; i < 1; ++i) {
1220             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1221             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1222         }
1223     }
vkCmdDispatchIndirect(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)1224     void vkCmdDispatchIndirect(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1225                                android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1226                                VkBuffer buffer, VkDeviceSize offset) {
1227         android::base::AutoLock lock(mLock);
1228         // commandBuffer modify
1229         auto apiHandle = mReconstruction.createApiInfo();
1230         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1231         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDispatchIndirect, snapshotTraceBegin,
1232                                     snapshotTraceBytes);
1233         for (uint32_t i = 0; i < 1; ++i) {
1234             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1235             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1236         }
1237     }
vkCmdCopyBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)1238     void vkCmdCopyBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1239                          android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1240                          VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount,
1241                          const VkBufferCopy* pRegions) {
1242         android::base::AutoLock lock(mLock);
1243         // commandBuffer modify
1244         auto apiHandle = mReconstruction.createApiInfo();
1245         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1246         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBuffer, snapshotTraceBegin,
1247                                     snapshotTraceBytes);
1248         for (uint32_t i = 0; i < 1; ++i) {
1249             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1250             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1251         }
1252     }
vkCmdCopyImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)1253     void vkCmdCopyImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1254                         android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1255                         VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage,
1256                         VkImageLayout dstImageLayout, uint32_t regionCount,
1257                         const VkImageCopy* pRegions) {
1258         android::base::AutoLock lock(mLock);
1259         // commandBuffer modify
1260         auto apiHandle = mReconstruction.createApiInfo();
1261         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1262         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImage, snapshotTraceBegin,
1263                                     snapshotTraceBytes);
1264         for (uint32_t i = 0; i < 1; ++i) {
1265             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1266             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1267         }
1268     }
vkCmdBlitImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)1269     void vkCmdBlitImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1270                         android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1271                         VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage,
1272                         VkImageLayout dstImageLayout, uint32_t regionCount,
1273                         const VkImageBlit* pRegions, VkFilter filter) {
1274         android::base::AutoLock lock(mLock);
1275         // commandBuffer modify
1276         auto apiHandle = mReconstruction.createApiInfo();
1277         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1278         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBlitImage, snapshotTraceBegin,
1279                                     snapshotTraceBytes);
1280         for (uint32_t i = 0; i < 1; ++i) {
1281             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1282             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1283         }
1284     }
vkCmdCopyBufferToImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)1285     void vkCmdCopyBufferToImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1286                                 android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1287                                 VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout,
1288                                 uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1289         android::base::AutoLock lock(mLock);
1290         // commandBuffer modify
1291         auto apiHandle = mReconstruction.createApiInfo();
1292         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1293         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBufferToImage, snapshotTraceBegin,
1294                                     snapshotTraceBytes);
1295         for (uint32_t i = 0; i < 1; ++i) {
1296             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1297             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1298         }
1299     }
vkCmdCopyImageToBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)1300     void vkCmdCopyImageToBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1301                                 android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1302                                 VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer,
1303                                 uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1304         android::base::AutoLock lock(mLock);
1305         // commandBuffer modify
1306         auto apiHandle = mReconstruction.createApiInfo();
1307         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1308         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImageToBuffer, snapshotTraceBegin,
1309                                     snapshotTraceBytes);
1310         for (uint32_t i = 0; i < 1; ++i) {
1311             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1312             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1313         }
1314     }
vkCmdUpdateBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)1315     void vkCmdUpdateBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1316                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1317                            VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize,
1318                            const void* pData) {
1319         android::base::AutoLock lock(mLock);
1320         // commandBuffer modify
1321         auto apiHandle = mReconstruction.createApiInfo();
1322         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1323         mReconstruction.setApiTrace(apiInfo, OP_vkCmdUpdateBuffer, snapshotTraceBegin,
1324                                     snapshotTraceBytes);
1325         for (uint32_t i = 0; i < 1; ++i) {
1326             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1327             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1328         }
1329     }
vkCmdFillBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)1330     void vkCmdFillBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1331                          android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1332                          VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size,
1333                          uint32_t data) {
1334         android::base::AutoLock lock(mLock);
1335         // commandBuffer modify
1336         auto apiHandle = mReconstruction.createApiInfo();
1337         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1338         mReconstruction.setApiTrace(apiInfo, OP_vkCmdFillBuffer, snapshotTraceBegin,
1339                                     snapshotTraceBytes);
1340         for (uint32_t i = 0; i < 1; ++i) {
1341             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1342             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1343         }
1344     }
vkCmdClearColorImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1345     void vkCmdClearColorImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1346                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1347                               VkImage image, VkImageLayout imageLayout,
1348                               const VkClearColorValue* pColor, uint32_t rangeCount,
1349                               const VkImageSubresourceRange* pRanges) {
1350         android::base::AutoLock lock(mLock);
1351         // commandBuffer modify
1352         auto apiHandle = mReconstruction.createApiInfo();
1353         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1354         mReconstruction.setApiTrace(apiInfo, OP_vkCmdClearColorImage, snapshotTraceBegin,
1355                                     snapshotTraceBytes);
1356         for (uint32_t i = 0; i < 1; ++i) {
1357             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1358             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1359         }
1360     }
vkCmdClearDepthStencilImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1361     void vkCmdClearDepthStencilImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1362                                      android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1363                                      VkImage image, VkImageLayout imageLayout,
1364                                      const VkClearDepthStencilValue* pDepthStencil,
1365                                      uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
1366         android::base::AutoLock lock(mLock);
1367         // commandBuffer modify
1368         auto apiHandle = mReconstruction.createApiInfo();
1369         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1370         mReconstruction.setApiTrace(apiInfo, OP_vkCmdClearDepthStencilImage, snapshotTraceBegin,
1371                                     snapshotTraceBytes);
1372         for (uint32_t i = 0; i < 1; ++i) {
1373             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1374             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1375         }
1376     }
vkCmdClearAttachments(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)1377     void vkCmdClearAttachments(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1378                                android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1379                                uint32_t attachmentCount, const VkClearAttachment* pAttachments,
1380                                uint32_t rectCount, const VkClearRect* pRects) {
1381         android::base::AutoLock lock(mLock);
1382         // commandBuffer modify
1383         auto apiHandle = mReconstruction.createApiInfo();
1384         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1385         mReconstruction.setApiTrace(apiInfo, OP_vkCmdClearAttachments, snapshotTraceBegin,
1386                                     snapshotTraceBytes);
1387         for (uint32_t i = 0; i < 1; ++i) {
1388             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1389             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1390         }
1391     }
vkCmdResolveImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)1392     void vkCmdResolveImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1393                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1394                            VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage,
1395                            VkImageLayout dstImageLayout, uint32_t regionCount,
1396                            const VkImageResolve* pRegions) {
1397         android::base::AutoLock lock(mLock);
1398         // commandBuffer modify
1399         auto apiHandle = mReconstruction.createApiInfo();
1400         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1401         mReconstruction.setApiTrace(apiInfo, OP_vkCmdResolveImage, snapshotTraceBegin,
1402                                     snapshotTraceBytes);
1403         for (uint32_t i = 0; i < 1; ++i) {
1404             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1405             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1406         }
1407     }
vkCmdSetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1408     void vkCmdSetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1409                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer, VkEvent event,
1410                        VkPipelineStageFlags stageMask) {
1411         android::base::AutoLock lock(mLock);
1412         // commandBuffer modify
1413         auto apiHandle = mReconstruction.createApiInfo();
1414         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1415         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetEvent, snapshotTraceBegin,
1416                                     snapshotTraceBytes);
1417         for (uint32_t i = 0; i < 1; ++i) {
1418             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1419             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1420         }
1421     }
vkCmdResetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1422     void vkCmdResetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1423                          android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1424                          VkEvent event, VkPipelineStageFlags stageMask) {
1425         android::base::AutoLock lock(mLock);
1426         // commandBuffer modify
1427         auto apiHandle = mReconstruction.createApiInfo();
1428         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1429         mReconstruction.setApiTrace(apiInfo, OP_vkCmdResetEvent, snapshotTraceBegin,
1430                                     snapshotTraceBytes);
1431         for (uint32_t i = 0; i < 1; ++i) {
1432             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1433             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1434         }
1435     }
vkCmdWaitEvents(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1436     void vkCmdWaitEvents(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1437                          android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1438                          uint32_t eventCount, const VkEvent* pEvents,
1439                          VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask,
1440                          uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
1441                          uint32_t bufferMemoryBarrierCount,
1442                          const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1443                          uint32_t imageMemoryBarrierCount,
1444                          const VkImageMemoryBarrier* pImageMemoryBarriers) {
1445         android::base::AutoLock lock(mLock);
1446         // commandBuffer modify
1447         auto apiHandle = mReconstruction.createApiInfo();
1448         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1449         mReconstruction.setApiTrace(apiInfo, OP_vkCmdWaitEvents, snapshotTraceBegin,
1450                                     snapshotTraceBytes);
1451         for (uint32_t i = 0; i < 1; ++i) {
1452             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1453             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1454         }
1455     }
vkCmdPipelineBarrier(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,VkDependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1456     void vkCmdPipelineBarrier(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1457                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1458                               VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask,
1459                               VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount,
1460                               const VkMemoryBarrier* pMemoryBarriers,
1461                               uint32_t bufferMemoryBarrierCount,
1462                               const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1463                               uint32_t imageMemoryBarrierCount,
1464                               const VkImageMemoryBarrier* pImageMemoryBarriers) {
1465         android::base::AutoLock lock(mLock);
1466         // commandBuffer modify
1467         auto apiHandle = mReconstruction.createApiInfo();
1468         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1469         mReconstruction.setApiTrace(apiInfo, OP_vkCmdPipelineBarrier, snapshotTraceBegin,
1470                                     snapshotTraceBytes);
1471         for (uint32_t i = 0; i < 1; ++i) {
1472             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1473             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1474         }
1475     }
vkCmdBeginQuery(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)1476     void vkCmdBeginQuery(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1477                          android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1478                          VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) {
1479         android::base::AutoLock lock(mLock);
1480         // commandBuffer modify
1481         auto apiHandle = mReconstruction.createApiInfo();
1482         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1483         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginQuery, snapshotTraceBegin,
1484                                     snapshotTraceBytes);
1485         for (uint32_t i = 0; i < 1; ++i) {
1486             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1487             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1488         }
1489     }
vkCmdEndQuery(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)1490     void vkCmdEndQuery(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1491                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1492                        VkQueryPool queryPool, uint32_t query) {
1493         android::base::AutoLock lock(mLock);
1494         // commandBuffer modify
1495         auto apiHandle = mReconstruction.createApiInfo();
1496         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1497         mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndQuery, snapshotTraceBegin,
1498                                     snapshotTraceBytes);
1499         for (uint32_t i = 0; i < 1; ++i) {
1500             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1501             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1502         }
1503     }
vkCmdResetQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1504     void vkCmdResetQueryPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1505                              android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1506                              VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) {
1507         android::base::AutoLock lock(mLock);
1508         // commandBuffer modify
1509         auto apiHandle = mReconstruction.createApiInfo();
1510         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1511         mReconstruction.setApiTrace(apiInfo, OP_vkCmdResetQueryPool, snapshotTraceBegin,
1512                                     snapshotTraceBytes);
1513         for (uint32_t i = 0; i < 1; ++i) {
1514             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1515             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1516         }
1517     }
vkCmdWriteTimestamp(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)1518     void vkCmdWriteTimestamp(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1519                              android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1520                              VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool,
1521                              uint32_t query) {
1522         android::base::AutoLock lock(mLock);
1523         // commandBuffer modify
1524         auto apiHandle = mReconstruction.createApiInfo();
1525         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1526         mReconstruction.setApiTrace(apiInfo, OP_vkCmdWriteTimestamp, snapshotTraceBegin,
1527                                     snapshotTraceBytes);
1528         for (uint32_t i = 0; i < 1; ++i) {
1529             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1530             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1531         }
1532     }
vkCmdCopyQueryPoolResults(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)1533     void vkCmdCopyQueryPoolResults(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1534                                    android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1535                                    VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount,
1536                                    VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride,
1537                                    VkQueryResultFlags flags) {
1538         android::base::AutoLock lock(mLock);
1539         // commandBuffer modify
1540         auto apiHandle = mReconstruction.createApiInfo();
1541         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1542         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyQueryPoolResults, snapshotTraceBegin,
1543                                     snapshotTraceBytes);
1544         for (uint32_t i = 0; i < 1; ++i) {
1545             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1546             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1547         }
1548     }
vkCmdPushConstants(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)1549     void vkCmdPushConstants(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1550                             android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1551                             VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset,
1552                             uint32_t size, const void* pValues) {
1553         android::base::AutoLock lock(mLock);
1554         // commandBuffer modify
1555         auto apiHandle = mReconstruction.createApiInfo();
1556         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1557         mReconstruction.setApiTrace(apiInfo, OP_vkCmdPushConstants, snapshotTraceBegin,
1558                                     snapshotTraceBytes);
1559         for (uint32_t i = 0; i < 1; ++i) {
1560             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1561             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1562         }
1563     }
vkCmdBeginRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)1564     void vkCmdBeginRenderPass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1565                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1566                               const VkRenderPassBeginInfo* pRenderPassBegin,
1567                               VkSubpassContents contents) {
1568         android::base::AutoLock lock(mLock);
1569         // commandBuffer modify
1570         auto apiHandle = mReconstruction.createApiInfo();
1571         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1572         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRenderPass, snapshotTraceBegin,
1573                                     snapshotTraceBytes);
1574         for (uint32_t i = 0; i < 1; ++i) {
1575             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1576             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1577         }
1578     }
vkCmdNextSubpass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkSubpassContents contents)1579     void vkCmdNextSubpass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1580                           android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1581                           VkSubpassContents contents) {
1582         android::base::AutoLock lock(mLock);
1583         // commandBuffer modify
1584         auto apiHandle = mReconstruction.createApiInfo();
1585         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1586         mReconstruction.setApiTrace(apiInfo, OP_vkCmdNextSubpass, snapshotTraceBegin,
1587                                     snapshotTraceBytes);
1588         for (uint32_t i = 0; i < 1; ++i) {
1589             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1590             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1591         }
1592     }
vkCmdEndRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)1593     void vkCmdEndRenderPass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1594                             android::base::BumpPool* pool, VkCommandBuffer commandBuffer) {
1595         android::base::AutoLock lock(mLock);
1596         // commandBuffer modify
1597         auto apiHandle = mReconstruction.createApiInfo();
1598         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1599         mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRenderPass, snapshotTraceBegin,
1600                                     snapshotTraceBytes);
1601         for (uint32_t i = 0; i < 1; ++i) {
1602             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1603             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1604         }
1605     }
vkCmdExecuteCommands(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)1606     void vkCmdExecuteCommands(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1607                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1608                               uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) {
1609         android::base::AutoLock lock(mLock);
1610         // commandBuffer modify
1611         auto apiHandle = mReconstruction.createApiInfo();
1612         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1613         mReconstruction.setApiTrace(apiInfo, OP_vkCmdExecuteCommands, snapshotTraceBegin,
1614                                     snapshotTraceBytes);
1615         for (uint32_t i = 0; i < 1; ++i) {
1616             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1617             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1618         }
1619     }
1620 #endif
1621 #ifdef VK_VERSION_1_1
vkEnumerateInstanceVersion(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,uint32_t * pApiVersion)1622     void vkEnumerateInstanceVersion(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1623                                     android::base::BumpPool* pool, VkResult input_result,
1624                                     uint32_t* pApiVersion) {}
vkBindBufferMemory2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1625     void vkBindBufferMemory2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1626                              android::base::BumpPool* pool, VkResult input_result, VkDevice device,
1627                              uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) {}
vkBindImageMemory2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)1628     void vkBindImageMemory2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1629                             android::base::BumpPool* pool, VkResult input_result, VkDevice device,
1630                             uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) {}
vkGetDeviceGroupPeerMemoryFeatures(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)1631     void vkGetDeviceGroupPeerMemoryFeatures(const uint8_t* snapshotTraceBegin,
1632                                             size_t snapshotTraceBytes,
1633                                             android::base::BumpPool* pool, VkDevice device,
1634                                             uint32_t heapIndex, uint32_t localDeviceIndex,
1635                                             uint32_t remoteDeviceIndex,
1636                                             VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {}
vkCmdSetDeviceMask(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t deviceMask)1637     void vkCmdSetDeviceMask(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1638                             android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1639                             uint32_t deviceMask) {
1640         android::base::AutoLock lock(mLock);
1641         // commandBuffer modify
1642         auto apiHandle = mReconstruction.createApiInfo();
1643         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1644         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDeviceMask, snapshotTraceBegin,
1645                                     snapshotTraceBytes);
1646         for (uint32_t i = 0; i < 1; ++i) {
1647             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1648             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1649         }
1650     }
vkCmdDispatchBase(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1651     void vkCmdDispatchBase(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1652                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1653                            uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
1654                            uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) {
1655         android::base::AutoLock lock(mLock);
1656         // commandBuffer modify
1657         auto apiHandle = mReconstruction.createApiInfo();
1658         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1659         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDispatchBase, snapshotTraceBegin,
1660                                     snapshotTraceBytes);
1661         for (uint32_t i = 0; i < 1; ++i) {
1662             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1663             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1664         }
1665     }
vkEnumeratePhysicalDeviceGroups(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)1666     void vkEnumeratePhysicalDeviceGroups(
1667         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1668         VkResult input_result, VkInstance instance, uint32_t* pPhysicalDeviceGroupCount,
1669         VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {}
vkGetImageMemoryRequirements2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1670     void vkGetImageMemoryRequirements2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1671                                        android::base::BumpPool* pool, VkDevice device,
1672                                        const VkImageMemoryRequirementsInfo2* pInfo,
1673                                        VkMemoryRequirements2* pMemoryRequirements) {}
vkGetBufferMemoryRequirements2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1674     void vkGetBufferMemoryRequirements2(const uint8_t* snapshotTraceBegin,
1675                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
1676                                         VkDevice device,
1677                                         const VkBufferMemoryRequirementsInfo2* pInfo,
1678                                         VkMemoryRequirements2* pMemoryRequirements) {}
vkGetImageSparseMemoryRequirements2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)1679     void vkGetImageSparseMemoryRequirements2(
1680         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1681         VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
1682         uint32_t* pSparseMemoryRequirementCount,
1683         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {}
vkGetPhysicalDeviceFeatures2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)1684     void vkGetPhysicalDeviceFeatures2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1685                                       android::base::BumpPool* pool,
1686                                       VkPhysicalDevice physicalDevice,
1687                                       VkPhysicalDeviceFeatures2* pFeatures) {}
vkGetPhysicalDeviceProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)1688     void vkGetPhysicalDeviceProperties2(const uint8_t* snapshotTraceBegin,
1689                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
1690                                         VkPhysicalDevice physicalDevice,
1691                                         VkPhysicalDeviceProperties2* pProperties) {}
vkGetPhysicalDeviceFormatProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)1692     void vkGetPhysicalDeviceFormatProperties2(const uint8_t* snapshotTraceBegin,
1693                                               size_t snapshotTraceBytes,
1694                                               android::base::BumpPool* pool,
1695                                               VkPhysicalDevice physicalDevice, VkFormat format,
1696                                               VkFormatProperties2* pFormatProperties) {}
vkGetPhysicalDeviceImageFormatProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)1697     void vkGetPhysicalDeviceImageFormatProperties2(
1698         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1699         VkResult input_result, VkPhysicalDevice physicalDevice,
1700         const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1701         VkImageFormatProperties2* pImageFormatProperties) {}
vkGetPhysicalDeviceQueueFamilyProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)1702     void vkGetPhysicalDeviceQueueFamilyProperties2(
1703         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1704         VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
1705         VkQueueFamilyProperties2* pQueueFamilyProperties) {}
vkGetPhysicalDeviceMemoryProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)1706     void vkGetPhysicalDeviceMemoryProperties2(
1707         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1708         VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {}
vkGetPhysicalDeviceSparseImageFormatProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)1709     void vkGetPhysicalDeviceSparseImageFormatProperties2(
1710         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1711         VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1712         uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {}
vkTrimCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)1713     void vkTrimCommandPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1714                            android::base::BumpPool* pool, VkDevice device,
1715                            VkCommandPool commandPool, VkCommandPoolTrimFlags flags) {}
vkGetDeviceQueue2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)1716     void vkGetDeviceQueue2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1717                            android::base::BumpPool* pool, VkDevice device,
1718                            const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) {}
vkCreateSamplerYcbcrConversion(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)1719     void vkCreateSamplerYcbcrConversion(const uint8_t* snapshotTraceBegin,
1720                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
1721                                         VkResult input_result, VkDevice device,
1722                                         const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1723                                         const VkAllocationCallbacks* pAllocator,
1724                                         VkSamplerYcbcrConversion* pYcbcrConversion) {
1725         if (!pYcbcrConversion) return;
1726         android::base::AutoLock lock(mLock);
1727         // pYcbcrConversion create
1728         mReconstruction.addHandles((const uint64_t*)pYcbcrConversion, 1);
1729         mReconstruction.addHandleDependency((const uint64_t*)pYcbcrConversion, 1,
1730                                             (uint64_t)(uintptr_t)device);
1731         auto apiHandle = mReconstruction.createApiInfo();
1732         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1733         mReconstruction.setApiTrace(apiInfo, OP_vkCreateSamplerYcbcrConversion, snapshotTraceBegin,
1734                                     snapshotTraceBytes);
1735         mReconstruction.forEachHandleAddApi((const uint64_t*)pYcbcrConversion, 1, apiHandle,
1736                                             VkReconstruction::CREATED);
1737         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pYcbcrConversion, 1);
1738     }
vkDestroySamplerYcbcrConversion(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)1739     void vkDestroySamplerYcbcrConversion(const uint8_t* snapshotTraceBegin,
1740                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
1741                                          VkDevice device, VkSamplerYcbcrConversion ycbcrConversion,
1742                                          const VkAllocationCallbacks* pAllocator) {
1743         android::base::AutoLock lock(mLock);
1744         // ycbcrConversion destroy
1745         mReconstruction.removeHandles((const uint64_t*)(&ycbcrConversion), 1, true);
1746     }
vkCreateDescriptorUpdateTemplate(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)1747     void vkCreateDescriptorUpdateTemplate(const uint8_t* snapshotTraceBegin,
1748                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
1749                                           VkResult input_result, VkDevice device,
1750                                           const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1751                                           const VkAllocationCallbacks* pAllocator,
1752                                           VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
1753         if (!pDescriptorUpdateTemplate) return;
1754         android::base::AutoLock lock(mLock);
1755         // pDescriptorUpdateTemplate create
1756         mReconstruction.addHandles((const uint64_t*)pDescriptorUpdateTemplate, 1);
1757         mReconstruction.addHandleDependency((const uint64_t*)pDescriptorUpdateTemplate, 1,
1758                                             (uint64_t)(uintptr_t)device);
1759         auto apiHandle = mReconstruction.createApiInfo();
1760         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1761         mReconstruction.setApiTrace(apiInfo, OP_vkCreateDescriptorUpdateTemplate,
1762                                     snapshotTraceBegin, snapshotTraceBytes);
1763         mReconstruction.forEachHandleAddApi((const uint64_t*)pDescriptorUpdateTemplate, 1,
1764                                             apiHandle, VkReconstruction::CREATED);
1765         mReconstruction.setCreatedHandlesForApi(apiHandle,
1766                                                 (const uint64_t*)pDescriptorUpdateTemplate, 1);
1767     }
vkDestroyDescriptorUpdateTemplate(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)1768     void vkDestroyDescriptorUpdateTemplate(const uint8_t* snapshotTraceBegin,
1769                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
1770                                            VkDevice device,
1771                                            VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1772                                            const VkAllocationCallbacks* pAllocator) {
1773         android::base::AutoLock lock(mLock);
1774         // descriptorUpdateTemplate destroy
1775         mReconstruction.removeHandles((const uint64_t*)(&descriptorUpdateTemplate), 1, true);
1776     }
vkUpdateDescriptorSetWithTemplate(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)1777     void vkUpdateDescriptorSetWithTemplate(const uint8_t* snapshotTraceBegin,
1778                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
1779                                            VkDevice device, VkDescriptorSet descriptorSet,
1780                                            VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1781                                            const void* pData) {}
vkGetPhysicalDeviceExternalBufferProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)1782     void vkGetPhysicalDeviceExternalBufferProperties(
1783         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1784         VkPhysicalDevice physicalDevice,
1785         const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1786         VkExternalBufferProperties* pExternalBufferProperties) {}
vkGetPhysicalDeviceExternalFenceProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)1787     void vkGetPhysicalDeviceExternalFenceProperties(
1788         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1789         VkPhysicalDevice physicalDevice,
1790         const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1791         VkExternalFenceProperties* pExternalFenceProperties) {}
vkGetPhysicalDeviceExternalSemaphoreProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)1792     void vkGetPhysicalDeviceExternalSemaphoreProperties(
1793         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1794         VkPhysicalDevice physicalDevice,
1795         const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1796         VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {}
vkGetDescriptorSetLayoutSupport(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)1797     void vkGetDescriptorSetLayoutSupport(const uint8_t* snapshotTraceBegin,
1798                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
1799                                          VkDevice device,
1800                                          const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1801                                          VkDescriptorSetLayoutSupport* pSupport) {}
1802 #endif
1803 #ifdef VK_VERSION_1_2
vkCmdDrawIndirectCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)1804     void vkCmdDrawIndirectCount(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1805                                 android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1806                                 VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer,
1807                                 VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1808                                 uint32_t stride) {
1809         android::base::AutoLock lock(mLock);
1810         // commandBuffer modify
1811         auto apiHandle = mReconstruction.createApiInfo();
1812         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1813         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndirectCount, snapshotTraceBegin,
1814                                     snapshotTraceBytes);
1815         for (uint32_t i = 0; i < 1; ++i) {
1816             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1817             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1818         }
1819     }
vkCmdDrawIndexedIndirectCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)1820     void vkCmdDrawIndexedIndirectCount(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1821                                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1822                                        VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer,
1823                                        VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1824                                        uint32_t stride) {
1825         android::base::AutoLock lock(mLock);
1826         // commandBuffer modify
1827         auto apiHandle = mReconstruction.createApiInfo();
1828         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1829         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndexedIndirectCount, snapshotTraceBegin,
1830                                     snapshotTraceBytes);
1831         for (uint32_t i = 0; i < 1; ++i) {
1832             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1833             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1834         }
1835     }
vkCreateRenderPass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)1836     void vkCreateRenderPass2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1837                              android::base::BumpPool* pool, VkResult input_result, VkDevice device,
1838                              const VkRenderPassCreateInfo2* pCreateInfo,
1839                              const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
1840         if (!pRenderPass) return;
1841         android::base::AutoLock lock(mLock);
1842         // pRenderPass create
1843         mReconstruction.addHandles((const uint64_t*)pRenderPass, 1);
1844         mReconstruction.addHandleDependency((const uint64_t*)pRenderPass, 1,
1845                                             (uint64_t)(uintptr_t)device);
1846         auto apiHandle = mReconstruction.createApiInfo();
1847         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1848         mReconstruction.setApiTrace(apiInfo, OP_vkCreateRenderPass2, snapshotTraceBegin,
1849                                     snapshotTraceBytes);
1850         mReconstruction.forEachHandleAddApi((const uint64_t*)pRenderPass, 1, apiHandle,
1851                                             VkReconstruction::CREATED);
1852         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pRenderPass, 1);
1853     }
vkCmdBeginRenderPass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)1854     void vkCmdBeginRenderPass2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1855                                android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1856                                const VkRenderPassBeginInfo* pRenderPassBegin,
1857                                const VkSubpassBeginInfo* pSubpassBeginInfo) {
1858         android::base::AutoLock lock(mLock);
1859         // commandBuffer modify
1860         auto apiHandle = mReconstruction.createApiInfo();
1861         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1862         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRenderPass2, snapshotTraceBegin,
1863                                     snapshotTraceBytes);
1864         for (uint32_t i = 0; i < 1; ++i) {
1865             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1866             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1867         }
1868     }
vkCmdNextSubpass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)1869     void vkCmdNextSubpass2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1870                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1871                            const VkSubpassBeginInfo* pSubpassBeginInfo,
1872                            const VkSubpassEndInfo* pSubpassEndInfo) {
1873         android::base::AutoLock lock(mLock);
1874         // commandBuffer modify
1875         auto apiHandle = mReconstruction.createApiInfo();
1876         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1877         mReconstruction.setApiTrace(apiInfo, OP_vkCmdNextSubpass2, snapshotTraceBegin,
1878                                     snapshotTraceBytes);
1879         for (uint32_t i = 0; i < 1; ++i) {
1880             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1881             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1882         }
1883     }
vkCmdEndRenderPass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)1884     void vkCmdEndRenderPass2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1885                              android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1886                              const VkSubpassEndInfo* pSubpassEndInfo) {
1887         android::base::AutoLock lock(mLock);
1888         // commandBuffer modify
1889         auto apiHandle = mReconstruction.createApiInfo();
1890         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1891         mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRenderPass2, snapshotTraceBegin,
1892                                     snapshotTraceBytes);
1893         for (uint32_t i = 0; i < 1; ++i) {
1894             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1895             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1896         }
1897     }
vkResetQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1898     void vkResetQueryPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1899                           android::base::BumpPool* pool, VkDevice device, VkQueryPool queryPool,
1900                           uint32_t firstQuery, uint32_t queryCount) {}
vkGetSemaphoreCounterValue(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSemaphore semaphore,uint64_t * pValue)1901     void vkGetSemaphoreCounterValue(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1902                                     android::base::BumpPool* pool, VkResult input_result,
1903                                     VkDevice device, VkSemaphore semaphore, uint64_t* pValue) {}
vkWaitSemaphores(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)1904     void vkWaitSemaphores(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1905                           android::base::BumpPool* pool, VkResult input_result, VkDevice device,
1906                           const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) {}
vkSignalSemaphore(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)1907     void vkSignalSemaphore(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1908                            android::base::BumpPool* pool, VkResult input_result, VkDevice device,
1909                            const VkSemaphoreSignalInfo* pSignalInfo) {}
vkGetBufferDeviceAddress(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDeviceAddress input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1910     void vkGetBufferDeviceAddress(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1911                                   android::base::BumpPool* pool, VkDeviceAddress input_result,
1912                                   VkDevice device, const VkBufferDeviceAddressInfo* pInfo) {}
vkGetBufferOpaqueCaptureAddress(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1913     void vkGetBufferOpaqueCaptureAddress(const uint8_t* snapshotTraceBegin,
1914                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
1915                                          uint64_t input_result, VkDevice device,
1916                                          const VkBufferDeviceAddressInfo* pInfo) {}
vkGetDeviceMemoryOpaqueCaptureAddress(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)1917     void vkGetDeviceMemoryOpaqueCaptureAddress(
1918         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
1919         uint64_t input_result, VkDevice device,
1920         const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {}
1921 #endif
1922 #ifdef VK_VERSION_1_3
vkGetPhysicalDeviceToolProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties)1923     void vkGetPhysicalDeviceToolProperties(const uint8_t* snapshotTraceBegin,
1924                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
1925                                            VkResult input_result, VkPhysicalDevice physicalDevice,
1926                                            uint32_t* pToolCount,
1927                                            VkPhysicalDeviceToolProperties* pToolProperties) {}
vkCreatePrivateDataSlot(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)1928     void vkCreatePrivateDataSlot(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1929                                  android::base::BumpPool* pool, VkResult input_result,
1930                                  VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo,
1931                                  const VkAllocationCallbacks* pAllocator,
1932                                  VkPrivateDataSlot* pPrivateDataSlot) {}
vkDestroyPrivateDataSlot(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)1933     void vkDestroyPrivateDataSlot(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1934                                   android::base::BumpPool* pool, VkDevice device,
1935                                   VkPrivateDataSlot privateDataSlot,
1936                                   const VkAllocationCallbacks* pAllocator) {}
vkSetPrivateData(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)1937     void vkSetPrivateData(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1938                           android::base::BumpPool* pool, VkResult input_result, VkDevice device,
1939                           VkObjectType objectType, uint64_t objectHandle,
1940                           VkPrivateDataSlot privateDataSlot, uint64_t data) {}
vkGetPrivateData(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)1941     void vkGetPrivateData(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1942                           android::base::BumpPool* pool, VkDevice device, VkObjectType objectType,
1943                           uint64_t objectHandle, VkPrivateDataSlot privateDataSlot,
1944                           uint64_t* pData) {}
vkCmdSetEvent2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)1945     void vkCmdSetEvent2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1946                         android::base::BumpPool* pool, VkCommandBuffer commandBuffer, VkEvent event,
1947                         const VkDependencyInfo* pDependencyInfo) {
1948         android::base::AutoLock lock(mLock);
1949         // commandBuffer modify
1950         auto apiHandle = mReconstruction.createApiInfo();
1951         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1952         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetEvent2, snapshotTraceBegin,
1953                                     snapshotTraceBytes);
1954         for (uint32_t i = 0; i < 1; ++i) {
1955             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1956             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1957         }
1958     }
vkCmdResetEvent2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)1959     void vkCmdResetEvent2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1960                           android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1961                           VkEvent event, VkPipelineStageFlags2 stageMask) {
1962         android::base::AutoLock lock(mLock);
1963         // commandBuffer modify
1964         auto apiHandle = mReconstruction.createApiInfo();
1965         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1966         mReconstruction.setApiTrace(apiInfo, OP_vkCmdResetEvent2, snapshotTraceBegin,
1967                                     snapshotTraceBytes);
1968         for (uint32_t i = 0; i < 1; ++i) {
1969             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1970             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1971         }
1972     }
vkCmdWaitEvents2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)1973     void vkCmdWaitEvents2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1974                           android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1975                           uint32_t eventCount, const VkEvent* pEvents,
1976                           const VkDependencyInfo* pDependencyInfos) {
1977         android::base::AutoLock lock(mLock);
1978         // commandBuffer modify
1979         auto apiHandle = mReconstruction.createApiInfo();
1980         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1981         mReconstruction.setApiTrace(apiInfo, OP_vkCmdWaitEvents2, snapshotTraceBegin,
1982                                     snapshotTraceBytes);
1983         for (uint32_t i = 0; i < 1; ++i) {
1984             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1985             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
1986         }
1987     }
vkCmdPipelineBarrier2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)1988     void vkCmdPipelineBarrier2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
1989                                android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
1990                                const VkDependencyInfo* pDependencyInfo) {
1991         android::base::AutoLock lock(mLock);
1992         // commandBuffer modify
1993         auto apiHandle = mReconstruction.createApiInfo();
1994         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
1995         mReconstruction.setApiTrace(apiInfo, OP_vkCmdPipelineBarrier2, snapshotTraceBegin,
1996                                     snapshotTraceBytes);
1997         for (uint32_t i = 0; i < 1; ++i) {
1998             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
1999             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2000         }
2001     }
vkCmdWriteTimestamp2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)2002     void vkCmdWriteTimestamp2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2003                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2004                               VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) {
2005         android::base::AutoLock lock(mLock);
2006         // commandBuffer modify
2007         auto apiHandle = mReconstruction.createApiInfo();
2008         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2009         mReconstruction.setApiTrace(apiInfo, OP_vkCmdWriteTimestamp2, snapshotTraceBegin,
2010                                     snapshotTraceBytes);
2011         for (uint32_t i = 0; i < 1; ++i) {
2012             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2013             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2014         }
2015     }
vkQueueSubmit2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)2016     void vkQueueSubmit2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2017                         android::base::BumpPool* pool, VkResult input_result, VkQueue queue,
2018                         uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) {}
vkCmdCopyBuffer2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)2019     void vkCmdCopyBuffer2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2020                           android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2021                           const VkCopyBufferInfo2* pCopyBufferInfo) {
2022         android::base::AutoLock lock(mLock);
2023         // commandBuffer modify
2024         auto apiHandle = mReconstruction.createApiInfo();
2025         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2026         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBuffer2, snapshotTraceBegin,
2027                                     snapshotTraceBytes);
2028         for (uint32_t i = 0; i < 1; ++i) {
2029             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2030             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2031         }
2032     }
vkCmdCopyImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)2033     void vkCmdCopyImage2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2034                          android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2035                          const VkCopyImageInfo2* pCopyImageInfo) {
2036         android::base::AutoLock lock(mLock);
2037         // commandBuffer modify
2038         auto apiHandle = mReconstruction.createApiInfo();
2039         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2040         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImage2, snapshotTraceBegin,
2041                                     snapshotTraceBytes);
2042         for (uint32_t i = 0; i < 1; ++i) {
2043             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2044             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2045         }
2046     }
vkCmdCopyBufferToImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)2047     void vkCmdCopyBufferToImage2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2048                                  android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2049                                  const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
2050         android::base::AutoLock lock(mLock);
2051         // commandBuffer modify
2052         auto apiHandle = mReconstruction.createApiInfo();
2053         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2054         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBufferToImage2, snapshotTraceBegin,
2055                                     snapshotTraceBytes);
2056         for (uint32_t i = 0; i < 1; ++i) {
2057             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2058             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2059         }
2060     }
vkCmdCopyImageToBuffer2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)2061     void vkCmdCopyImageToBuffer2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2062                                  android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2063                                  const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
2064         android::base::AutoLock lock(mLock);
2065         // commandBuffer modify
2066         auto apiHandle = mReconstruction.createApiInfo();
2067         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2068         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImageToBuffer2, snapshotTraceBegin,
2069                                     snapshotTraceBytes);
2070         for (uint32_t i = 0; i < 1; ++i) {
2071             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2072             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2073         }
2074     }
vkCmdBlitImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)2075     void vkCmdBlitImage2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2076                          android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2077                          const VkBlitImageInfo2* pBlitImageInfo) {
2078         android::base::AutoLock lock(mLock);
2079         // commandBuffer modify
2080         auto apiHandle = mReconstruction.createApiInfo();
2081         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2082         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBlitImage2, snapshotTraceBegin,
2083                                     snapshotTraceBytes);
2084         for (uint32_t i = 0; i < 1; ++i) {
2085             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2086             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2087         }
2088     }
vkCmdResolveImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)2089     void vkCmdResolveImage2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2090                             android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2091                             const VkResolveImageInfo2* pResolveImageInfo) {
2092         android::base::AutoLock lock(mLock);
2093         // commandBuffer modify
2094         auto apiHandle = mReconstruction.createApiInfo();
2095         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2096         mReconstruction.setApiTrace(apiInfo, OP_vkCmdResolveImage2, snapshotTraceBegin,
2097                                     snapshotTraceBytes);
2098         for (uint32_t i = 0; i < 1; ++i) {
2099             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2100             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2101         }
2102     }
vkCmdBeginRendering(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)2103     void vkCmdBeginRendering(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2104                              android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2105                              const VkRenderingInfo* pRenderingInfo) {
2106         android::base::AutoLock lock(mLock);
2107         // commandBuffer modify
2108         auto apiHandle = mReconstruction.createApiInfo();
2109         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2110         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRendering, snapshotTraceBegin,
2111                                     snapshotTraceBytes);
2112         for (uint32_t i = 0; i < 1; ++i) {
2113             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2114             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2115         }
2116     }
vkCmdEndRendering(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)2117     void vkCmdEndRendering(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2118                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer) {
2119         android::base::AutoLock lock(mLock);
2120         // commandBuffer modify
2121         auto apiHandle = mReconstruction.createApiInfo();
2122         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2123         mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRendering, snapshotTraceBegin,
2124                                     snapshotTraceBytes);
2125         for (uint32_t i = 0; i < 1; ++i) {
2126             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2127             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2128         }
2129     }
vkCmdSetCullMode(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)2130     void vkCmdSetCullMode(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2131                           android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2132                           VkCullModeFlags cullMode) {
2133         android::base::AutoLock lock(mLock);
2134         // commandBuffer modify
2135         auto apiHandle = mReconstruction.createApiInfo();
2136         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2137         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetCullMode, snapshotTraceBegin,
2138                                     snapshotTraceBytes);
2139         for (uint32_t i = 0; i < 1; ++i) {
2140             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2141             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2142         }
2143     }
vkCmdSetFrontFace(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkFrontFace frontFace)2144     void vkCmdSetFrontFace(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2145                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2146                            VkFrontFace frontFace) {
2147         android::base::AutoLock lock(mLock);
2148         // commandBuffer modify
2149         auto apiHandle = mReconstruction.createApiInfo();
2150         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2151         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetFrontFace, snapshotTraceBegin,
2152                                     snapshotTraceBytes);
2153         for (uint32_t i = 0; i < 1; ++i) {
2154             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2155             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2156         }
2157     }
vkCmdSetPrimitiveTopology(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)2158     void vkCmdSetPrimitiveTopology(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2159                                    android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2160                                    VkPrimitiveTopology primitiveTopology) {
2161         android::base::AutoLock lock(mLock);
2162         // commandBuffer modify
2163         auto apiHandle = mReconstruction.createApiInfo();
2164         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2165         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetPrimitiveTopology, snapshotTraceBegin,
2166                                     snapshotTraceBytes);
2167         for (uint32_t i = 0; i < 1; ++i) {
2168             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2169             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2170         }
2171     }
vkCmdSetViewportWithCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)2172     void vkCmdSetViewportWithCount(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2173                                    android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2174                                    uint32_t viewportCount, const VkViewport* pViewports) {
2175         android::base::AutoLock lock(mLock);
2176         // commandBuffer modify
2177         auto apiHandle = mReconstruction.createApiInfo();
2178         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2179         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetViewportWithCount, snapshotTraceBegin,
2180                                     snapshotTraceBytes);
2181         for (uint32_t i = 0; i < 1; ++i) {
2182             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2183             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2184         }
2185     }
vkCmdSetScissorWithCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)2186     void vkCmdSetScissorWithCount(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2187                                   android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2188                                   uint32_t scissorCount, const VkRect2D* pScissors) {
2189         android::base::AutoLock lock(mLock);
2190         // commandBuffer modify
2191         auto apiHandle = mReconstruction.createApiInfo();
2192         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2193         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetScissorWithCount, snapshotTraceBegin,
2194                                     snapshotTraceBytes);
2195         for (uint32_t i = 0; i < 1; ++i) {
2196             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2197             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2198         }
2199     }
vkCmdBindVertexBuffers2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)2200     void vkCmdBindVertexBuffers2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2201                                  android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2202                                  uint32_t firstBinding, uint32_t bindingCount,
2203                                  const VkBuffer* pBuffers, const VkDeviceSize* pOffsets,
2204                                  const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) {
2205         android::base::AutoLock lock(mLock);
2206         // commandBuffer modify
2207         auto apiHandle = mReconstruction.createApiInfo();
2208         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2209         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindVertexBuffers2, snapshotTraceBegin,
2210                                     snapshotTraceBytes);
2211         for (uint32_t i = 0; i < 1; ++i) {
2212             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2213             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2214         }
2215     }
vkCmdSetDepthTestEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)2216     void vkCmdSetDepthTestEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2217                                  android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2218                                  VkBool32 depthTestEnable) {
2219         android::base::AutoLock lock(mLock);
2220         // commandBuffer modify
2221         auto apiHandle = mReconstruction.createApiInfo();
2222         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2223         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthTestEnable, snapshotTraceBegin,
2224                                     snapshotTraceBytes);
2225         for (uint32_t i = 0; i < 1; ++i) {
2226             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2227             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2228         }
2229     }
vkCmdSetDepthWriteEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)2230     void vkCmdSetDepthWriteEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2231                                   android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2232                                   VkBool32 depthWriteEnable) {
2233         android::base::AutoLock lock(mLock);
2234         // commandBuffer modify
2235         auto apiHandle = mReconstruction.createApiInfo();
2236         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2237         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthWriteEnable, snapshotTraceBegin,
2238                                     snapshotTraceBytes);
2239         for (uint32_t i = 0; i < 1; ++i) {
2240             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2241             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2242         }
2243     }
vkCmdSetDepthCompareOp(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)2244     void vkCmdSetDepthCompareOp(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2245                                 android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2246                                 VkCompareOp depthCompareOp) {
2247         android::base::AutoLock lock(mLock);
2248         // commandBuffer modify
2249         auto apiHandle = mReconstruction.createApiInfo();
2250         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2251         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthCompareOp, snapshotTraceBegin,
2252                                     snapshotTraceBytes);
2253         for (uint32_t i = 0; i < 1; ++i) {
2254             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2255             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2256         }
2257     }
vkCmdSetDepthBoundsTestEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)2258     void vkCmdSetDepthBoundsTestEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2259                                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2260                                        VkBool32 depthBoundsTestEnable) {
2261         android::base::AutoLock lock(mLock);
2262         // commandBuffer modify
2263         auto apiHandle = mReconstruction.createApiInfo();
2264         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2265         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBoundsTestEnable, snapshotTraceBegin,
2266                                     snapshotTraceBytes);
2267         for (uint32_t i = 0; i < 1; ++i) {
2268             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2269             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2270         }
2271     }
vkCmdSetStencilTestEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)2272     void vkCmdSetStencilTestEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2273                                    android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2274                                    VkBool32 stencilTestEnable) {
2275         android::base::AutoLock lock(mLock);
2276         // commandBuffer modify
2277         auto apiHandle = mReconstruction.createApiInfo();
2278         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2279         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilTestEnable, snapshotTraceBegin,
2280                                     snapshotTraceBytes);
2281         for (uint32_t i = 0; i < 1; ++i) {
2282             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2283             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2284         }
2285     }
vkCmdSetStencilOp(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)2286     void vkCmdSetStencilOp(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2287                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2288                            VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp,
2289                            VkStencilOp depthFailOp, VkCompareOp compareOp) {
2290         android::base::AutoLock lock(mLock);
2291         // commandBuffer modify
2292         auto apiHandle = mReconstruction.createApiInfo();
2293         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2294         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilOp, snapshotTraceBegin,
2295                                     snapshotTraceBytes);
2296         for (uint32_t i = 0; i < 1; ++i) {
2297             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2298             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2299         }
2300     }
vkCmdSetRasterizerDiscardEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)2301     void vkCmdSetRasterizerDiscardEnable(const uint8_t* snapshotTraceBegin,
2302                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
2303                                          VkCommandBuffer commandBuffer,
2304                                          VkBool32 rasterizerDiscardEnable) {
2305         android::base::AutoLock lock(mLock);
2306         // commandBuffer modify
2307         auto apiHandle = mReconstruction.createApiInfo();
2308         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2309         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetRasterizerDiscardEnable, snapshotTraceBegin,
2310                                     snapshotTraceBytes);
2311         for (uint32_t i = 0; i < 1; ++i) {
2312             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2313             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2314         }
2315     }
vkCmdSetDepthBiasEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)2316     void vkCmdSetDepthBiasEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2317                                  android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2318                                  VkBool32 depthBiasEnable) {
2319         android::base::AutoLock lock(mLock);
2320         // commandBuffer modify
2321         auto apiHandle = mReconstruction.createApiInfo();
2322         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2323         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBiasEnable, snapshotTraceBegin,
2324                                     snapshotTraceBytes);
2325         for (uint32_t i = 0; i < 1; ++i) {
2326             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2327             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2328         }
2329     }
vkCmdSetPrimitiveRestartEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)2330     void vkCmdSetPrimitiveRestartEnable(const uint8_t* snapshotTraceBegin,
2331                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
2332                                         VkCommandBuffer commandBuffer,
2333                                         VkBool32 primitiveRestartEnable) {
2334         android::base::AutoLock lock(mLock);
2335         // commandBuffer modify
2336         auto apiHandle = mReconstruction.createApiInfo();
2337         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2338         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetPrimitiveRestartEnable, snapshotTraceBegin,
2339                                     snapshotTraceBytes);
2340         for (uint32_t i = 0; i < 1; ++i) {
2341             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2342             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2343         }
2344     }
vkGetDeviceBufferMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2345     void vkGetDeviceBufferMemoryRequirements(const uint8_t* snapshotTraceBegin,
2346                                              size_t snapshotTraceBytes,
2347                                              android::base::BumpPool* pool, VkDevice device,
2348                                              const VkDeviceBufferMemoryRequirements* pInfo,
2349                                              VkMemoryRequirements2* pMemoryRequirements) {}
vkGetDeviceImageMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2350     void vkGetDeviceImageMemoryRequirements(const uint8_t* snapshotTraceBegin,
2351                                             size_t snapshotTraceBytes,
2352                                             android::base::BumpPool* pool, VkDevice device,
2353                                             const VkDeviceImageMemoryRequirements* pInfo,
2354                                             VkMemoryRequirements2* pMemoryRequirements) {}
vkGetDeviceImageSparseMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2355     void vkGetDeviceImageSparseMemoryRequirements(
2356         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2357         VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
2358         uint32_t* pSparseMemoryRequirementCount,
2359         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {}
2360 #endif
2361 #ifdef VK_KHR_surface
2362 #endif
2363 #ifdef VK_KHR_swapchain
vkCreateSwapchainKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)2364     void vkCreateSwapchainKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2365                               android::base::BumpPool* pool, VkResult input_result, VkDevice device,
2366                               const VkSwapchainCreateInfoKHR* pCreateInfo,
2367                               const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) {
2368         if (!pSwapchain) return;
2369         android::base::AutoLock lock(mLock);
2370         // pSwapchain create
2371         mReconstruction.addHandles((const uint64_t*)pSwapchain, 1);
2372         mReconstruction.addHandleDependency((const uint64_t*)pSwapchain, 1,
2373                                             (uint64_t)(uintptr_t)device);
2374         auto apiHandle = mReconstruction.createApiInfo();
2375         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2376         mReconstruction.setApiTrace(apiInfo, OP_vkCreateSwapchainKHR, snapshotTraceBegin,
2377                                     snapshotTraceBytes);
2378         mReconstruction.forEachHandleAddApi((const uint64_t*)pSwapchain, 1, apiHandle,
2379                                             VkReconstruction::CREATED);
2380         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pSwapchain, 1);
2381     }
vkDestroySwapchainKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)2382     void vkDestroySwapchainKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2383                                android::base::BumpPool* pool, VkDevice device,
2384                                VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) {
2385         android::base::AutoLock lock(mLock);
2386         // swapchain destroy
2387         mReconstruction.removeHandles((const uint64_t*)(&swapchain), 1, true);
2388     }
vkGetSwapchainImagesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages)2389     void vkGetSwapchainImagesKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2390                                  android::base::BumpPool* pool, VkResult input_result,
2391                                  VkDevice device, VkSwapchainKHR swapchain,
2392                                  uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {}
vkAcquireNextImageKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex)2393     void vkAcquireNextImageKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2394                                android::base::BumpPool* pool, VkResult input_result,
2395                                VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout,
2396                                VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) {}
vkQueuePresentKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,const VkPresentInfoKHR * pPresentInfo)2397     void vkQueuePresentKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2398                            android::base::BumpPool* pool, VkResult input_result, VkQueue queue,
2399                            const VkPresentInfoKHR* pPresentInfo) {}
vkGetDeviceGroupPresentCapabilitiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities)2400     void vkGetDeviceGroupPresentCapabilitiesKHR(
2401         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2402         VkResult input_result, VkDevice device,
2403         VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {}
vkGetDeviceGroupSurfacePresentModesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes)2404     void vkGetDeviceGroupSurfacePresentModesKHR(const uint8_t* snapshotTraceBegin,
2405                                                 size_t snapshotTraceBytes,
2406                                                 android::base::BumpPool* pool,
2407                                                 VkResult input_result, VkDevice device,
2408                                                 VkSurfaceKHR surface,
2409                                                 VkDeviceGroupPresentModeFlagsKHR* pModes) {}
vkGetPhysicalDevicePresentRectanglesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects)2410     void vkGetPhysicalDevicePresentRectanglesKHR(
2411         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2412         VkResult input_result, VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
2413         uint32_t* pRectCount, VkRect2D* pRects) {}
vkAcquireNextImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex)2414     void vkAcquireNextImage2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2415                                 android::base::BumpPool* pool, VkResult input_result,
2416                                 VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo,
2417                                 uint32_t* pImageIndex) {}
2418 #endif
2419 #ifdef VK_KHR_xcb_surface
2420 #endif
2421 #ifdef VK_KHR_android_surface
2422 #endif
2423 #ifdef VK_KHR_win32_surface
2424 #endif
2425 #ifdef VK_KHR_dynamic_rendering
vkCmdBeginRenderingKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)2426     void vkCmdBeginRenderingKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2427                                 android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2428                                 const VkRenderingInfo* pRenderingInfo) {
2429         android::base::AutoLock lock(mLock);
2430         // commandBuffer modify
2431         auto apiHandle = mReconstruction.createApiInfo();
2432         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2433         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRenderingKHR, snapshotTraceBegin,
2434                                     snapshotTraceBytes);
2435         for (uint32_t i = 0; i < 1; ++i) {
2436             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2437             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2438         }
2439     }
vkCmdEndRenderingKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)2440     void vkCmdEndRenderingKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2441                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer) {
2442         android::base::AutoLock lock(mLock);
2443         // commandBuffer modify
2444         auto apiHandle = mReconstruction.createApiInfo();
2445         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2446         mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRenderingKHR, snapshotTraceBegin,
2447                                     snapshotTraceBytes);
2448         for (uint32_t i = 0; i < 1; ++i) {
2449             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2450             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2451         }
2452     }
2453 #endif
2454 #ifdef VK_KHR_get_physical_device_properties2
vkGetPhysicalDeviceFeatures2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)2455     void vkGetPhysicalDeviceFeatures2KHR(const uint8_t* snapshotTraceBegin,
2456                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
2457                                          VkPhysicalDevice physicalDevice,
2458                                          VkPhysicalDeviceFeatures2* pFeatures) {}
vkGetPhysicalDeviceProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)2459     void vkGetPhysicalDeviceProperties2KHR(const uint8_t* snapshotTraceBegin,
2460                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
2461                                            VkPhysicalDevice physicalDevice,
2462                                            VkPhysicalDeviceProperties2* pProperties) {}
vkGetPhysicalDeviceFormatProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)2463     void vkGetPhysicalDeviceFormatProperties2KHR(const uint8_t* snapshotTraceBegin,
2464                                                  size_t snapshotTraceBytes,
2465                                                  android::base::BumpPool* pool,
2466                                                  VkPhysicalDevice physicalDevice, VkFormat format,
2467                                                  VkFormatProperties2* pFormatProperties) {}
vkGetPhysicalDeviceImageFormatProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)2468     void vkGetPhysicalDeviceImageFormatProperties2KHR(
2469         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2470         VkResult input_result, VkPhysicalDevice physicalDevice,
2471         const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2472         VkImageFormatProperties2* pImageFormatProperties) {}
vkGetPhysicalDeviceQueueFamilyProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)2473     void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2474         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2475         VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
2476         VkQueueFamilyProperties2* pQueueFamilyProperties) {}
vkGetPhysicalDeviceMemoryProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)2477     void vkGetPhysicalDeviceMemoryProperties2KHR(
2478         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2479         VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {}
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)2480     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2481         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2482         VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2483         uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {}
2484 #endif
2485 #ifdef VK_KHR_maintenance1
vkTrimCommandPoolKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2486     void vkTrimCommandPoolKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2487                               android::base::BumpPool* pool, VkDevice device,
2488                               VkCommandPool commandPool, VkCommandPoolTrimFlags flags) {}
2489 #endif
2490 #ifdef VK_KHR_external_memory_capabilities
vkGetPhysicalDeviceExternalBufferPropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)2491     void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2492         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2493         VkPhysicalDevice physicalDevice,
2494         const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2495         VkExternalBufferProperties* pExternalBufferProperties) {}
2496 #endif
2497 #ifdef VK_KHR_external_memory
2498 #endif
2499 #ifdef VK_KHR_external_memory_win32
2500 #endif
2501 #ifdef VK_KHR_external_memory_fd
2502 #endif
2503 #ifdef VK_KHR_external_semaphore_capabilities
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)2504     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2505         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2506         VkPhysicalDevice physicalDevice,
2507         const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2508         VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {}
2509 #endif
2510 #ifdef VK_KHR_external_semaphore
2511 #endif
2512 #ifdef VK_KHR_external_semaphore_win32
2513 #endif
2514 #ifdef VK_KHR_external_semaphore_fd
vkImportSemaphoreFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)2515     void vkImportSemaphoreFdKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2516                                 android::base::BumpPool* pool, VkResult input_result,
2517                                 VkDevice device,
2518                                 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {}
vkGetSemaphoreFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)2519     void vkGetSemaphoreFdKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2520                              android::base::BumpPool* pool, VkResult input_result, VkDevice device,
2521                              const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) {}
2522 #endif
2523 #ifdef VK_KHR_shader_float16_int8
2524 #endif
2525 #ifdef VK_KHR_incremental_present
2526 #endif
2527 #ifdef VK_KHR_descriptor_update_template
vkCreateDescriptorUpdateTemplateKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)2528     void vkCreateDescriptorUpdateTemplateKHR(
2529         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2530         VkResult input_result, VkDevice device,
2531         const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2532         const VkAllocationCallbacks* pAllocator,
2533         VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
2534         if (!pDescriptorUpdateTemplate) return;
2535         android::base::AutoLock lock(mLock);
2536         // pDescriptorUpdateTemplate create
2537         mReconstruction.addHandles((const uint64_t*)pDescriptorUpdateTemplate, 1);
2538         mReconstruction.addHandleDependency((const uint64_t*)pDescriptorUpdateTemplate, 1,
2539                                             (uint64_t)(uintptr_t)device);
2540         auto apiHandle = mReconstruction.createApiInfo();
2541         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2542         mReconstruction.setApiTrace(apiInfo, OP_vkCreateDescriptorUpdateTemplateKHR,
2543                                     snapshotTraceBegin, snapshotTraceBytes);
2544         mReconstruction.forEachHandleAddApi((const uint64_t*)pDescriptorUpdateTemplate, 1,
2545                                             apiHandle, VkReconstruction::CREATED);
2546         mReconstruction.setCreatedHandlesForApi(apiHandle,
2547                                                 (const uint64_t*)pDescriptorUpdateTemplate, 1);
2548     }
vkDestroyDescriptorUpdateTemplateKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)2549     void vkDestroyDescriptorUpdateTemplateKHR(const uint8_t* snapshotTraceBegin,
2550                                               size_t snapshotTraceBytes,
2551                                               android::base::BumpPool* pool, VkDevice device,
2552                                               VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2553                                               const VkAllocationCallbacks* pAllocator) {
2554         android::base::AutoLock lock(mLock);
2555         // descriptorUpdateTemplate destroy
2556         mReconstruction.removeHandles((const uint64_t*)(&descriptorUpdateTemplate), 1, true);
2557     }
vkUpdateDescriptorSetWithTemplateKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)2558     void vkUpdateDescriptorSetWithTemplateKHR(const uint8_t* snapshotTraceBegin,
2559                                               size_t snapshotTraceBytes,
2560                                               android::base::BumpPool* pool, VkDevice device,
2561                                               VkDescriptorSet descriptorSet,
2562                                               VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2563                                               const void* pData) {}
2564 #endif
2565 #ifdef VK_KHR_imageless_framebuffer
2566 #endif
2567 #ifdef VK_KHR_create_renderpass2
vkCreateRenderPass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)2568     void vkCreateRenderPass2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2569                                 android::base::BumpPool* pool, VkResult input_result,
2570                                 VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo,
2571                                 const VkAllocationCallbacks* pAllocator,
2572                                 VkRenderPass* pRenderPass) {
2573         if (!pRenderPass) return;
2574         android::base::AutoLock lock(mLock);
2575         // pRenderPass create
2576         mReconstruction.addHandles((const uint64_t*)pRenderPass, 1);
2577         mReconstruction.addHandleDependency((const uint64_t*)pRenderPass, 1,
2578                                             (uint64_t)(uintptr_t)device);
2579         auto apiHandle = mReconstruction.createApiInfo();
2580         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2581         mReconstruction.setApiTrace(apiInfo, OP_vkCreateRenderPass2KHR, snapshotTraceBegin,
2582                                     snapshotTraceBytes);
2583         mReconstruction.forEachHandleAddApi((const uint64_t*)pRenderPass, 1, apiHandle,
2584                                             VkReconstruction::CREATED);
2585         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pRenderPass, 1);
2586     }
vkCmdBeginRenderPass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)2587     void vkCmdBeginRenderPass2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2588                                   android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2589                                   const VkRenderPassBeginInfo* pRenderPassBegin,
2590                                   const VkSubpassBeginInfo* pSubpassBeginInfo) {
2591         android::base::AutoLock lock(mLock);
2592         // commandBuffer modify
2593         auto apiHandle = mReconstruction.createApiInfo();
2594         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2595         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRenderPass2KHR, snapshotTraceBegin,
2596                                     snapshotTraceBytes);
2597         for (uint32_t i = 0; i < 1; ++i) {
2598             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2599             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2600         }
2601     }
vkCmdNextSubpass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)2602     void vkCmdNextSubpass2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2603                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2604                               const VkSubpassBeginInfo* pSubpassBeginInfo,
2605                               const VkSubpassEndInfo* pSubpassEndInfo) {
2606         android::base::AutoLock lock(mLock);
2607         // commandBuffer modify
2608         auto apiHandle = mReconstruction.createApiInfo();
2609         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2610         mReconstruction.setApiTrace(apiInfo, OP_vkCmdNextSubpass2KHR, snapshotTraceBegin,
2611                                     snapshotTraceBytes);
2612         for (uint32_t i = 0; i < 1; ++i) {
2613             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2614             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2615         }
2616     }
vkCmdEndRenderPass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)2617     void vkCmdEndRenderPass2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2618                                 android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2619                                 const VkSubpassEndInfo* pSubpassEndInfo) {
2620         android::base::AutoLock lock(mLock);
2621         // commandBuffer modify
2622         auto apiHandle = mReconstruction.createApiInfo();
2623         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2624         mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRenderPass2KHR, snapshotTraceBegin,
2625                                     snapshotTraceBytes);
2626         for (uint32_t i = 0; i < 1; ++i) {
2627             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2628             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2629         }
2630     }
2631 #endif
2632 #ifdef VK_KHR_external_fence_capabilities
vkGetPhysicalDeviceExternalFencePropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)2633     void vkGetPhysicalDeviceExternalFencePropertiesKHR(
2634         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2635         VkPhysicalDevice physicalDevice,
2636         const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2637         VkExternalFenceProperties* pExternalFenceProperties) {}
2638 #endif
2639 #ifdef VK_KHR_external_fence
2640 #endif
2641 #ifdef VK_KHR_external_fence_fd
vkImportFenceFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)2642     void vkImportFenceFdKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2643                             android::base::BumpPool* pool, VkResult input_result, VkDevice device,
2644                             const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {}
vkGetFenceFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)2645     void vkGetFenceFdKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2646                          android::base::BumpPool* pool, VkResult input_result, VkDevice device,
2647                          const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) {}
2648 #endif
2649 #ifdef VK_KHR_maintenance2
2650 #endif
2651 #ifdef VK_KHR_dedicated_allocation
2652 #endif
2653 #ifdef VK_KHR_storage_buffer_storage_class
2654 #endif
2655 #ifdef VK_KHR_get_memory_requirements2
vkGetImageMemoryRequirements2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2656     void vkGetImageMemoryRequirements2KHR(const uint8_t* snapshotTraceBegin,
2657                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
2658                                           VkDevice device,
2659                                           const VkImageMemoryRequirementsInfo2* pInfo,
2660                                           VkMemoryRequirements2* pMemoryRequirements) {}
vkGetBufferMemoryRequirements2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2661     void vkGetBufferMemoryRequirements2KHR(const uint8_t* snapshotTraceBegin,
2662                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
2663                                            VkDevice device,
2664                                            const VkBufferMemoryRequirementsInfo2* pInfo,
2665                                            VkMemoryRequirements2* pMemoryRequirements) {}
vkGetImageSparseMemoryRequirements2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2666     void vkGetImageSparseMemoryRequirements2KHR(
2667         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2668         VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
2669         uint32_t* pSparseMemoryRequirementCount,
2670         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {}
2671 #endif
2672 #ifdef VK_KHR_image_format_list
2673 #endif
2674 #ifdef VK_KHR_sampler_ycbcr_conversion
vkCreateSamplerYcbcrConversionKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)2675     void vkCreateSamplerYcbcrConversionKHR(const uint8_t* snapshotTraceBegin,
2676                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
2677                                            VkResult input_result, VkDevice device,
2678                                            const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2679                                            const VkAllocationCallbacks* pAllocator,
2680                                            VkSamplerYcbcrConversion* pYcbcrConversion) {
2681         if (!pYcbcrConversion) return;
2682         android::base::AutoLock lock(mLock);
2683         // pYcbcrConversion create
2684         mReconstruction.addHandles((const uint64_t*)pYcbcrConversion, 1);
2685         mReconstruction.addHandleDependency((const uint64_t*)pYcbcrConversion, 1,
2686                                             (uint64_t)(uintptr_t)device);
2687         auto apiHandle = mReconstruction.createApiInfo();
2688         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2689         mReconstruction.setApiTrace(apiInfo, OP_vkCreateSamplerYcbcrConversionKHR,
2690                                     snapshotTraceBegin, snapshotTraceBytes);
2691         mReconstruction.forEachHandleAddApi((const uint64_t*)pYcbcrConversion, 1, apiHandle,
2692                                             VkReconstruction::CREATED);
2693         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pYcbcrConversion, 1);
2694     }
vkDestroySamplerYcbcrConversionKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)2695     void vkDestroySamplerYcbcrConversionKHR(const uint8_t* snapshotTraceBegin,
2696                                             size_t snapshotTraceBytes,
2697                                             android::base::BumpPool* pool, VkDevice device,
2698                                             VkSamplerYcbcrConversion ycbcrConversion,
2699                                             const VkAllocationCallbacks* pAllocator) {
2700         android::base::AutoLock lock(mLock);
2701         // ycbcrConversion destroy
2702         mReconstruction.removeHandles((const uint64_t*)(&ycbcrConversion), 1, true);
2703     }
2704 #endif
2705 #ifdef VK_KHR_bind_memory2
vkBindBufferMemory2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)2706     void vkBindBufferMemory2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2707                                 android::base::BumpPool* pool, VkResult input_result,
2708                                 VkDevice device, uint32_t bindInfoCount,
2709                                 const VkBindBufferMemoryInfo* pBindInfos) {}
vkBindImageMemory2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)2710     void vkBindImageMemory2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2711                                android::base::BumpPool* pool, VkResult input_result,
2712                                VkDevice device, uint32_t bindInfoCount,
2713                                const VkBindImageMemoryInfo* pBindInfos) {}
2714 #endif
2715 #ifdef VK_KHR_maintenance3
vkGetDescriptorSetLayoutSupportKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)2716     void vkGetDescriptorSetLayoutSupportKHR(const uint8_t* snapshotTraceBegin,
2717                                             size_t snapshotTraceBytes,
2718                                             android::base::BumpPool* pool, VkDevice device,
2719                                             const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2720                                             VkDescriptorSetLayoutSupport* pSupport) {}
2721 #endif
2722 #ifdef VK_KHR_shader_subgroup_extended_types
2723 #endif
2724 #ifdef VK_KHR_vulkan_memory_model
2725 #endif
2726 #ifdef VK_KHR_shader_terminate_invocation
2727 #endif
2728 #ifdef VK_KHR_buffer_device_address
vkGetBufferDeviceAddressKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDeviceAddress input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2729     void vkGetBufferDeviceAddressKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2730                                      android::base::BumpPool* pool, VkDeviceAddress input_result,
2731                                      VkDevice device, const VkBufferDeviceAddressInfo* pInfo) {}
vkGetBufferOpaqueCaptureAddressKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2732     void vkGetBufferOpaqueCaptureAddressKHR(const uint8_t* snapshotTraceBegin,
2733                                             size_t snapshotTraceBytes,
2734                                             android::base::BumpPool* pool, uint64_t input_result,
2735                                             VkDevice device,
2736                                             const VkBufferDeviceAddressInfo* pInfo) {}
vkGetDeviceMemoryOpaqueCaptureAddressKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)2737     void vkGetDeviceMemoryOpaqueCaptureAddressKHR(
2738         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2739         uint64_t input_result, VkDevice device,
2740         const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {}
2741 #endif
2742 #ifdef VK_KHR_pipeline_executable_properties
vkGetPipelineExecutablePropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties)2743     void vkGetPipelineExecutablePropertiesKHR(
2744         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2745         VkResult input_result, VkDevice device, const VkPipelineInfoKHR* pPipelineInfo,
2746         uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) {}
vkGetPipelineExecutableStatisticsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics)2747     void vkGetPipelineExecutableStatisticsKHR(
2748         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2749         VkResult input_result, VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo,
2750         uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) {}
vkGetPipelineExecutableInternalRepresentationsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations)2751     void vkGetPipelineExecutableInternalRepresentationsKHR(
2752         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2753         VkResult input_result, VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo,
2754         uint32_t* pInternalRepresentationCount,
2755         VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {}
2756 #endif
2757 #ifdef VK_KHR_shader_integer_dot_product
2758 #endif
2759 #ifdef VK_KHR_shader_non_semantic_info
2760 #endif
2761 #ifdef VK_KHR_synchronization2
vkCmdSetEvent2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)2762     void vkCmdSetEvent2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2763                            android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2764                            VkEvent event, const VkDependencyInfo* pDependencyInfo) {
2765         android::base::AutoLock lock(mLock);
2766         // commandBuffer modify
2767         auto apiHandle = mReconstruction.createApiInfo();
2768         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2769         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetEvent2KHR, snapshotTraceBegin,
2770                                     snapshotTraceBytes);
2771         for (uint32_t i = 0; i < 1; ++i) {
2772             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2773             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2774         }
2775     }
vkCmdResetEvent2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)2776     void vkCmdResetEvent2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2777                              android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2778                              VkEvent event, VkPipelineStageFlags2 stageMask) {
2779         android::base::AutoLock lock(mLock);
2780         // commandBuffer modify
2781         auto apiHandle = mReconstruction.createApiInfo();
2782         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2783         mReconstruction.setApiTrace(apiInfo, OP_vkCmdResetEvent2KHR, snapshotTraceBegin,
2784                                     snapshotTraceBytes);
2785         for (uint32_t i = 0; i < 1; ++i) {
2786             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2787             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2788         }
2789     }
vkCmdWaitEvents2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)2790     void vkCmdWaitEvents2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2791                              android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2792                              uint32_t eventCount, const VkEvent* pEvents,
2793                              const VkDependencyInfo* pDependencyInfos) {
2794         android::base::AutoLock lock(mLock);
2795         // commandBuffer modify
2796         auto apiHandle = mReconstruction.createApiInfo();
2797         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2798         mReconstruction.setApiTrace(apiInfo, OP_vkCmdWaitEvents2KHR, snapshotTraceBegin,
2799                                     snapshotTraceBytes);
2800         for (uint32_t i = 0; i < 1; ++i) {
2801             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2802             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2803         }
2804     }
vkCmdPipelineBarrier2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)2805     void vkCmdPipelineBarrier2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2806                                   android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2807                                   const VkDependencyInfo* pDependencyInfo) {
2808         android::base::AutoLock lock(mLock);
2809         // commandBuffer modify
2810         auto apiHandle = mReconstruction.createApiInfo();
2811         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2812         mReconstruction.setApiTrace(apiInfo, OP_vkCmdPipelineBarrier2KHR, snapshotTraceBegin,
2813                                     snapshotTraceBytes);
2814         for (uint32_t i = 0; i < 1; ++i) {
2815             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2816             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2817         }
2818     }
vkCmdWriteTimestamp2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)2819     void vkCmdWriteTimestamp2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2820                                  android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2821                                  VkPipelineStageFlags2 stage, VkQueryPool queryPool,
2822                                  uint32_t query) {
2823         android::base::AutoLock lock(mLock);
2824         // commandBuffer modify
2825         auto apiHandle = mReconstruction.createApiInfo();
2826         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2827         mReconstruction.setApiTrace(apiInfo, OP_vkCmdWriteTimestamp2KHR, snapshotTraceBegin,
2828                                     snapshotTraceBytes);
2829         for (uint32_t i = 0; i < 1; ++i) {
2830             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2831             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2832         }
2833     }
vkQueueSubmit2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)2834     void vkQueueSubmit2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2835                            android::base::BumpPool* pool, VkResult input_result, VkQueue queue,
2836                            uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) {}
vkCmdWriteBufferMarker2AMD(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)2837     void vkCmdWriteBufferMarker2AMD(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2838                                     android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2839                                     VkPipelineStageFlags2 stage, VkBuffer dstBuffer,
2840                                     VkDeviceSize dstOffset, uint32_t marker) {
2841         android::base::AutoLock lock(mLock);
2842         // commandBuffer modify
2843         auto apiHandle = mReconstruction.createApiInfo();
2844         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2845         mReconstruction.setApiTrace(apiInfo, OP_vkCmdWriteBufferMarker2AMD, snapshotTraceBegin,
2846                                     snapshotTraceBytes);
2847         for (uint32_t i = 0; i < 1; ++i) {
2848             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2849             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2850         }
2851     }
vkGetQueueCheckpointData2NV(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData)2852     void vkGetQueueCheckpointData2NV(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2853                                      android::base::BumpPool* pool, VkQueue queue,
2854                                      uint32_t* pCheckpointDataCount,
2855                                      VkCheckpointData2NV* pCheckpointData) {}
2856 #endif
2857 #ifdef VK_KHR_zero_initialize_workgroup_memory
2858 #endif
2859 #ifdef VK_KHR_copy_commands2
vkCmdCopyBuffer2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)2860     void vkCmdCopyBuffer2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2861                              android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2862                              const VkCopyBufferInfo2* pCopyBufferInfo) {
2863         android::base::AutoLock lock(mLock);
2864         // commandBuffer modify
2865         auto apiHandle = mReconstruction.createApiInfo();
2866         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2867         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBuffer2KHR, snapshotTraceBegin,
2868                                     snapshotTraceBytes);
2869         for (uint32_t i = 0; i < 1; ++i) {
2870             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2871             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2872         }
2873     }
vkCmdCopyImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)2874     void vkCmdCopyImage2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2875                             android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2876                             const VkCopyImageInfo2* pCopyImageInfo) {
2877         android::base::AutoLock lock(mLock);
2878         // commandBuffer modify
2879         auto apiHandle = mReconstruction.createApiInfo();
2880         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2881         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImage2KHR, snapshotTraceBegin,
2882                                     snapshotTraceBytes);
2883         for (uint32_t i = 0; i < 1; ++i) {
2884             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2885             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2886         }
2887     }
vkCmdCopyBufferToImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)2888     void vkCmdCopyBufferToImage2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2889                                     android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2890                                     const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
2891         android::base::AutoLock lock(mLock);
2892         // commandBuffer modify
2893         auto apiHandle = mReconstruction.createApiInfo();
2894         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2895         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBufferToImage2KHR, snapshotTraceBegin,
2896                                     snapshotTraceBytes);
2897         for (uint32_t i = 0; i < 1; ++i) {
2898             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2899             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2900         }
2901     }
vkCmdCopyImageToBuffer2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)2902     void vkCmdCopyImageToBuffer2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2903                                     android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2904                                     const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
2905         android::base::AutoLock lock(mLock);
2906         // commandBuffer modify
2907         auto apiHandle = mReconstruction.createApiInfo();
2908         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2909         mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImageToBuffer2KHR, snapshotTraceBegin,
2910                                     snapshotTraceBytes);
2911         for (uint32_t i = 0; i < 1; ++i) {
2912             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2913             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2914         }
2915     }
vkCmdBlitImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)2916     void vkCmdBlitImage2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2917                             android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2918                             const VkBlitImageInfo2* pBlitImageInfo) {
2919         android::base::AutoLock lock(mLock);
2920         // commandBuffer modify
2921         auto apiHandle = mReconstruction.createApiInfo();
2922         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2923         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBlitImage2KHR, snapshotTraceBegin,
2924                                     snapshotTraceBytes);
2925         for (uint32_t i = 0; i < 1; ++i) {
2926             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2927             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2928         }
2929     }
vkCmdResolveImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)2930     void vkCmdResolveImage2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2931                                android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2932                                const VkResolveImageInfo2* pResolveImageInfo) {
2933         android::base::AutoLock lock(mLock);
2934         // commandBuffer modify
2935         auto apiHandle = mReconstruction.createApiInfo();
2936         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2937         mReconstruction.setApiTrace(apiInfo, OP_vkCmdResolveImage2KHR, snapshotTraceBegin,
2938                                     snapshotTraceBytes);
2939         for (uint32_t i = 0; i < 1; ++i) {
2940             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2941             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2942         }
2943     }
2944 #endif
2945 #ifdef VK_KHR_format_feature_flags2
2946 #endif
2947 #ifdef VK_KHR_maintenance4
vkGetDeviceBufferMemoryRequirementsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2948     void vkGetDeviceBufferMemoryRequirementsKHR(const uint8_t* snapshotTraceBegin,
2949                                                 size_t snapshotTraceBytes,
2950                                                 android::base::BumpPool* pool, VkDevice device,
2951                                                 const VkDeviceBufferMemoryRequirements* pInfo,
2952                                                 VkMemoryRequirements2* pMemoryRequirements) {}
vkGetDeviceImageMemoryRequirementsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2953     void vkGetDeviceImageMemoryRequirementsKHR(const uint8_t* snapshotTraceBegin,
2954                                                size_t snapshotTraceBytes,
2955                                                android::base::BumpPool* pool, VkDevice device,
2956                                                const VkDeviceImageMemoryRequirements* pInfo,
2957                                                VkMemoryRequirements2* pMemoryRequirements) {}
vkGetDeviceImageSparseMemoryRequirementsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2958     void vkGetDeviceImageSparseMemoryRequirementsKHR(
2959         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
2960         VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
2961         uint32_t* pSparseMemoryRequirementCount,
2962         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {}
2963 #endif
2964 #ifdef VK_KHR_maintenance5
vkCmdBindIndexBuffer2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkDeviceSize size,VkIndexType indexType)2965     void vkCmdBindIndexBuffer2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
2966                                   android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
2967                                   VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size,
2968                                   VkIndexType indexType) {
2969         android::base::AutoLock lock(mLock);
2970         // commandBuffer modify
2971         auto apiHandle = mReconstruction.createApiInfo();
2972         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
2973         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindIndexBuffer2KHR, snapshotTraceBegin,
2974                                     snapshotTraceBytes);
2975         for (uint32_t i = 0; i < 1; ++i) {
2976             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
2977             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
2978         }
2979     }
vkGetRenderingAreaGranularityKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkRenderingAreaInfoKHR * pRenderingAreaInfo,VkExtent2D * pGranularity)2980     void vkGetRenderingAreaGranularityKHR(const uint8_t* snapshotTraceBegin,
2981                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
2982                                           VkDevice device,
2983                                           const VkRenderingAreaInfoKHR* pRenderingAreaInfo,
2984                                           VkExtent2D* pGranularity) {}
vkGetDeviceImageSubresourceLayoutKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageSubresourceInfoKHR * pInfo,VkSubresourceLayout2KHR * pLayout)2985     void vkGetDeviceImageSubresourceLayoutKHR(const uint8_t* snapshotTraceBegin,
2986                                               size_t snapshotTraceBytes,
2987                                               android::base::BumpPool* pool, VkDevice device,
2988                                               const VkDeviceImageSubresourceInfoKHR* pInfo,
2989                                               VkSubresourceLayout2KHR* pLayout) {}
vkGetImageSubresourceLayout2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkImageSubresource2KHR * pSubresource,VkSubresourceLayout2KHR * pLayout)2990     void vkGetImageSubresourceLayout2KHR(const uint8_t* snapshotTraceBegin,
2991                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
2992                                          VkDevice device, VkImage image,
2993                                          const VkImageSubresource2KHR* pSubresource,
2994                                          VkSubresourceLayout2KHR* pLayout) {}
2995 #endif
2996 #ifdef VK_ANDROID_native_buffer
vkGetSwapchainGrallocUsageANDROID(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,int * grallocUsage)2997     void vkGetSwapchainGrallocUsageANDROID(const uint8_t* snapshotTraceBegin,
2998                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
2999                                            VkResult input_result, VkDevice device, VkFormat format,
3000                                            VkImageUsageFlags imageUsage, int* grallocUsage) {}
vkAcquireImageANDROID(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkImage image,int nativeFenceFd,VkSemaphore semaphore,VkFence fence)3001     void vkAcquireImageANDROID(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3002                                android::base::BumpPool* pool, VkResult input_result,
3003                                VkDevice device, VkImage image, int nativeFenceFd,
3004                                VkSemaphore semaphore, VkFence fence) {}
vkQueueSignalReleaseImageANDROID(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image,int * pNativeFenceFd)3005     void vkQueueSignalReleaseImageANDROID(const uint8_t* snapshotTraceBegin,
3006                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
3007                                           VkResult input_result, VkQueue queue,
3008                                           uint32_t waitSemaphoreCount,
3009                                           const VkSemaphore* pWaitSemaphores, VkImage image,
3010                                           int* pNativeFenceFd) {}
vkGetSwapchainGrallocUsage2ANDROID(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,uint64_t * grallocConsumerUsage,uint64_t * grallocProducerUsage)3011     void vkGetSwapchainGrallocUsage2ANDROID(
3012         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3013         VkResult input_result, VkDevice device, VkFormat format, VkImageUsageFlags imageUsage,
3014         VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, uint64_t* grallocConsumerUsage,
3015         uint64_t* grallocProducerUsage) {}
3016 #endif
3017 #ifdef VK_EXT_transform_feedback
vkCmdBindTransformFeedbackBuffersEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes)3018     void vkCmdBindTransformFeedbackBuffersEXT(
3019         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3020         VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount,
3021         const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) {
3022         android::base::AutoLock lock(mLock);
3023         // commandBuffer modify
3024         auto apiHandle = mReconstruction.createApiInfo();
3025         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3026         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindTransformFeedbackBuffersEXT,
3027                                     snapshotTraceBegin, snapshotTraceBytes);
3028         for (uint32_t i = 0; i < 1; ++i) {
3029             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3030             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3031         }
3032     }
vkCmdBeginTransformFeedbackEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)3033     void vkCmdBeginTransformFeedbackEXT(const uint8_t* snapshotTraceBegin,
3034                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
3035                                         VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer,
3036                                         uint32_t counterBufferCount,
3037                                         const VkBuffer* pCounterBuffers,
3038                                         const VkDeviceSize* pCounterBufferOffsets) {
3039         android::base::AutoLock lock(mLock);
3040         // commandBuffer modify
3041         auto apiHandle = mReconstruction.createApiInfo();
3042         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3043         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginTransformFeedbackEXT, snapshotTraceBegin,
3044                                     snapshotTraceBytes);
3045         for (uint32_t i = 0; i < 1; ++i) {
3046             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3047             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3048         }
3049     }
vkCmdEndTransformFeedbackEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)3050     void vkCmdEndTransformFeedbackEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3051                                       android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3052                                       uint32_t firstCounterBuffer, uint32_t counterBufferCount,
3053                                       const VkBuffer* pCounterBuffers,
3054                                       const VkDeviceSize* pCounterBufferOffsets) {
3055         android::base::AutoLock lock(mLock);
3056         // commandBuffer modify
3057         auto apiHandle = mReconstruction.createApiInfo();
3058         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3059         mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndTransformFeedbackEXT, snapshotTraceBegin,
3060                                     snapshotTraceBytes);
3061         for (uint32_t i = 0; i < 1; ++i) {
3062             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3063             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3064         }
3065     }
vkCmdBeginQueryIndexedEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index)3066     void vkCmdBeginQueryIndexedEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3067                                    android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3068                                    VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags,
3069                                    uint32_t index) {
3070         android::base::AutoLock lock(mLock);
3071         // commandBuffer modify
3072         auto apiHandle = mReconstruction.createApiInfo();
3073         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3074         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginQueryIndexedEXT, snapshotTraceBegin,
3075                                     snapshotTraceBytes);
3076         for (uint32_t i = 0; i < 1; ++i) {
3077             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3078             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3079         }
3080     }
vkCmdEndQueryIndexedEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index)3081     void vkCmdEndQueryIndexedEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3082                                  android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3083                                  VkQueryPool queryPool, uint32_t query, uint32_t index) {
3084         android::base::AutoLock lock(mLock);
3085         // commandBuffer modify
3086         auto apiHandle = mReconstruction.createApiInfo();
3087         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3088         mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndQueryIndexedEXT, snapshotTraceBegin,
3089                                     snapshotTraceBytes);
3090         for (uint32_t i = 0; i < 1; ++i) {
3091             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3092             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3093         }
3094     }
vkCmdDrawIndirectByteCountEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride)3095     void vkCmdDrawIndirectByteCountEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3096                                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3097                                        uint32_t instanceCount, uint32_t firstInstance,
3098                                        VkBuffer counterBuffer, VkDeviceSize counterBufferOffset,
3099                                        uint32_t counterOffset, uint32_t vertexStride) {
3100         android::base::AutoLock lock(mLock);
3101         // commandBuffer modify
3102         auto apiHandle = mReconstruction.createApiInfo();
3103         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3104         mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndirectByteCountEXT, snapshotTraceBegin,
3105                                     snapshotTraceBytes);
3106         for (uint32_t i = 0; i < 1; ++i) {
3107             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3108             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3109         }
3110     }
3111 #endif
3112 #ifdef VK_AMD_gpu_shader_half_float
3113 #endif
3114 #ifdef VK_EXT_texture_compression_astc_hdr
3115 #endif
3116 #ifdef VK_EXT_depth_clip_enable
3117 #endif
3118 #ifdef VK_EXT_swapchain_colorspace
3119 #endif
3120 #ifdef VK_MVK_moltenvk
3121 #endif
3122 #ifdef VK_EXT_queue_family_foreign
3123 #endif
3124 #ifdef VK_EXT_debug_utils
vkSetDebugUtilsObjectNameEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)3125     void vkSetDebugUtilsObjectNameEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3126                                       android::base::BumpPool* pool, VkResult input_result,
3127                                       VkDevice device,
3128                                       const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {}
vkSetDebugUtilsObjectTagEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)3129     void vkSetDebugUtilsObjectTagEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3130                                      android::base::BumpPool* pool, VkResult input_result,
3131                                      VkDevice device,
3132                                      const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {}
vkQueueBeginDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)3133     void vkQueueBeginDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin,
3134                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
3135                                         VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) {}
vkQueueEndDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue)3136     void vkQueueEndDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3137                                       android::base::BumpPool* pool, VkQueue queue) {}
vkQueueInsertDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)3138     void vkQueueInsertDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin,
3139                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
3140                                          VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo) {}
vkCmdBeginDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)3141     void vkCmdBeginDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3142                                       android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3143                                       const VkDebugUtilsLabelEXT* pLabelInfo) {
3144         android::base::AutoLock lock(mLock);
3145         // commandBuffer modify
3146         auto apiHandle = mReconstruction.createApiInfo();
3147         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3148         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginDebugUtilsLabelEXT, snapshotTraceBegin,
3149                                     snapshotTraceBytes);
3150         for (uint32_t i = 0; i < 1; ++i) {
3151             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3152             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3153         }
3154     }
vkCmdEndDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)3155     void vkCmdEndDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3156                                     android::base::BumpPool* pool, VkCommandBuffer commandBuffer) {
3157         android::base::AutoLock lock(mLock);
3158         // commandBuffer modify
3159         auto apiHandle = mReconstruction.createApiInfo();
3160         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3161         mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndDebugUtilsLabelEXT, snapshotTraceBegin,
3162                                     snapshotTraceBytes);
3163         for (uint32_t i = 0; i < 1; ++i) {
3164             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3165             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3166         }
3167     }
vkCmdInsertDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)3168     void vkCmdInsertDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3169                                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3170                                        const VkDebugUtilsLabelEXT* pLabelInfo) {
3171         android::base::AutoLock lock(mLock);
3172         // commandBuffer modify
3173         auto apiHandle = mReconstruction.createApiInfo();
3174         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3175         mReconstruction.setApiTrace(apiInfo, OP_vkCmdInsertDebugUtilsLabelEXT, snapshotTraceBegin,
3176                                     snapshotTraceBytes);
3177         for (uint32_t i = 0; i < 1; ++i) {
3178             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3179             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3180         }
3181     }
vkCreateDebugUtilsMessengerEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger)3182     void vkCreateDebugUtilsMessengerEXT(const uint8_t* snapshotTraceBegin,
3183                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
3184                                         VkResult input_result, VkInstance instance,
3185                                         const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3186                                         const VkAllocationCallbacks* pAllocator,
3187                                         VkDebugUtilsMessengerEXT* pMessenger) {
3188         if (!pMessenger) return;
3189         android::base::AutoLock lock(mLock);
3190         // pMessenger create
3191         mReconstruction.addHandles((const uint64_t*)pMessenger, 1);
3192         auto apiHandle = mReconstruction.createApiInfo();
3193         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3194         mReconstruction.setApiTrace(apiInfo, OP_vkCreateDebugUtilsMessengerEXT, snapshotTraceBegin,
3195                                     snapshotTraceBytes);
3196         mReconstruction.forEachHandleAddApi((const uint64_t*)pMessenger, 1, apiHandle,
3197                                             VkReconstruction::CREATED);
3198         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pMessenger, 1);
3199     }
vkDestroyDebugUtilsMessengerEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator)3200     void vkDestroyDebugUtilsMessengerEXT(const uint8_t* snapshotTraceBegin,
3201                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
3202                                          VkInstance instance, VkDebugUtilsMessengerEXT messenger,
3203                                          const VkAllocationCallbacks* pAllocator) {
3204         android::base::AutoLock lock(mLock);
3205         // messenger destroy
3206         mReconstruction.removeHandles((const uint64_t*)(&messenger), 1, true);
3207     }
vkSubmitDebugUtilsMessageEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData)3208     void vkSubmitDebugUtilsMessageEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3209                                       android::base::BumpPool* pool, VkInstance instance,
3210                                       VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3211                                       VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3212                                       const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {}
3213 #endif
3214 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
3215 #endif
3216 #ifdef VK_EXT_inline_uniform_block
3217 #endif
3218 #ifdef VK_EXT_shader_stencil_export
3219 #endif
3220 #ifdef VK_EXT_vertex_attribute_divisor
3221 #endif
3222 #ifdef VK_EXT_pipeline_creation_feedback
3223 #endif
3224 #ifdef VK_NV_shader_subgroup_partitioned
3225 #endif
3226 #ifdef VK_EXT_metal_surface
3227 #endif
3228 #ifdef VK_EXT_fragment_density_map
3229 #endif
3230 #ifdef VK_EXT_scalar_block_layout
3231 #endif
3232 #ifdef VK_EXT_subgroup_size_control
3233 #endif
3234 #ifdef VK_EXT_tooling_info
vkGetPhysicalDeviceToolPropertiesEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties)3235     void vkGetPhysicalDeviceToolPropertiesEXT(const uint8_t* snapshotTraceBegin,
3236                                               size_t snapshotTraceBytes,
3237                                               android::base::BumpPool* pool, VkResult input_result,
3238                                               VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
3239                                               VkPhysicalDeviceToolProperties* pToolProperties) {}
3240 #endif
3241 #ifdef VK_EXT_validation_features
3242 #endif
3243 #ifdef VK_EXT_provoking_vertex
3244 #endif
3245 #ifdef VK_EXT_line_rasterization
vkCmdSetLineStippleEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)3246     void vkCmdSetLineStippleEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3247                                 android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3248                                 uint32_t lineStippleFactor, uint16_t lineStipplePattern) {
3249         android::base::AutoLock lock(mLock);
3250         // commandBuffer modify
3251         auto apiHandle = mReconstruction.createApiInfo();
3252         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3253         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetLineStippleEXT, snapshotTraceBegin,
3254                                     snapshotTraceBytes);
3255         for (uint32_t i = 0; i < 1; ++i) {
3256             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3257             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3258         }
3259     }
3260 #endif
3261 #ifdef VK_EXT_index_type_uint8
3262 #endif
3263 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetCullModeEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)3264     void vkCmdSetCullModeEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3265                              android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3266                              VkCullModeFlags cullMode) {
3267         android::base::AutoLock lock(mLock);
3268         // commandBuffer modify
3269         auto apiHandle = mReconstruction.createApiInfo();
3270         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3271         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetCullModeEXT, snapshotTraceBegin,
3272                                     snapshotTraceBytes);
3273         for (uint32_t i = 0; i < 1; ++i) {
3274             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3275             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3276         }
3277     }
vkCmdSetFrontFaceEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkFrontFace frontFace)3278     void vkCmdSetFrontFaceEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3279                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3280                               VkFrontFace frontFace) {
3281         android::base::AutoLock lock(mLock);
3282         // commandBuffer modify
3283         auto apiHandle = mReconstruction.createApiInfo();
3284         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3285         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetFrontFaceEXT, snapshotTraceBegin,
3286                                     snapshotTraceBytes);
3287         for (uint32_t i = 0; i < 1; ++i) {
3288             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3289             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3290         }
3291     }
vkCmdSetPrimitiveTopologyEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)3292     void vkCmdSetPrimitiveTopologyEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3293                                       android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3294                                       VkPrimitiveTopology primitiveTopology) {
3295         android::base::AutoLock lock(mLock);
3296         // commandBuffer modify
3297         auto apiHandle = mReconstruction.createApiInfo();
3298         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3299         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetPrimitiveTopologyEXT, snapshotTraceBegin,
3300                                     snapshotTraceBytes);
3301         for (uint32_t i = 0; i < 1; ++i) {
3302             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3303             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3304         }
3305     }
vkCmdSetViewportWithCountEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)3306     void vkCmdSetViewportWithCountEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3307                                       android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3308                                       uint32_t viewportCount, const VkViewport* pViewports) {
3309         android::base::AutoLock lock(mLock);
3310         // commandBuffer modify
3311         auto apiHandle = mReconstruction.createApiInfo();
3312         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3313         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetViewportWithCountEXT, snapshotTraceBegin,
3314                                     snapshotTraceBytes);
3315         for (uint32_t i = 0; i < 1; ++i) {
3316             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3317             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3318         }
3319     }
vkCmdSetScissorWithCountEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)3320     void vkCmdSetScissorWithCountEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3321                                      android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3322                                      uint32_t scissorCount, const VkRect2D* pScissors) {
3323         android::base::AutoLock lock(mLock);
3324         // commandBuffer modify
3325         auto apiHandle = mReconstruction.createApiInfo();
3326         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3327         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetScissorWithCountEXT, snapshotTraceBegin,
3328                                     snapshotTraceBytes);
3329         for (uint32_t i = 0; i < 1; ++i) {
3330             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3331             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3332         }
3333     }
vkCmdBindVertexBuffers2EXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)3334     void vkCmdBindVertexBuffers2EXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3335                                     android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3336                                     uint32_t firstBinding, uint32_t bindingCount,
3337                                     const VkBuffer* pBuffers, const VkDeviceSize* pOffsets,
3338                                     const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) {
3339         android::base::AutoLock lock(mLock);
3340         // commandBuffer modify
3341         auto apiHandle = mReconstruction.createApiInfo();
3342         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3343         mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindVertexBuffers2EXT, snapshotTraceBegin,
3344                                     snapshotTraceBytes);
3345         for (uint32_t i = 0; i < 1; ++i) {
3346             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3347             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3348         }
3349     }
vkCmdSetDepthTestEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)3350     void vkCmdSetDepthTestEnableEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3351                                     android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3352                                     VkBool32 depthTestEnable) {
3353         android::base::AutoLock lock(mLock);
3354         // commandBuffer modify
3355         auto apiHandle = mReconstruction.createApiInfo();
3356         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3357         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthTestEnableEXT, snapshotTraceBegin,
3358                                     snapshotTraceBytes);
3359         for (uint32_t i = 0; i < 1; ++i) {
3360             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3361             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3362         }
3363     }
vkCmdSetDepthWriteEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)3364     void vkCmdSetDepthWriteEnableEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3365                                      android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3366                                      VkBool32 depthWriteEnable) {
3367         android::base::AutoLock lock(mLock);
3368         // commandBuffer modify
3369         auto apiHandle = mReconstruction.createApiInfo();
3370         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3371         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthWriteEnableEXT, snapshotTraceBegin,
3372                                     snapshotTraceBytes);
3373         for (uint32_t i = 0; i < 1; ++i) {
3374             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3375             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3376         }
3377     }
vkCmdSetDepthCompareOpEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)3378     void vkCmdSetDepthCompareOpEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3379                                    android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3380                                    VkCompareOp depthCompareOp) {
3381         android::base::AutoLock lock(mLock);
3382         // commandBuffer modify
3383         auto apiHandle = mReconstruction.createApiInfo();
3384         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3385         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthCompareOpEXT, snapshotTraceBegin,
3386                                     snapshotTraceBytes);
3387         for (uint32_t i = 0; i < 1; ++i) {
3388             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3389             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3390         }
3391     }
vkCmdSetDepthBoundsTestEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)3392     void vkCmdSetDepthBoundsTestEnableEXT(const uint8_t* snapshotTraceBegin,
3393                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
3394                                           VkCommandBuffer commandBuffer,
3395                                           VkBool32 depthBoundsTestEnable) {
3396         android::base::AutoLock lock(mLock);
3397         // commandBuffer modify
3398         auto apiHandle = mReconstruction.createApiInfo();
3399         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3400         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBoundsTestEnableEXT,
3401                                     snapshotTraceBegin, snapshotTraceBytes);
3402         for (uint32_t i = 0; i < 1; ++i) {
3403             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3404             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3405         }
3406     }
vkCmdSetStencilTestEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)3407     void vkCmdSetStencilTestEnableEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3408                                       android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3409                                       VkBool32 stencilTestEnable) {
3410         android::base::AutoLock lock(mLock);
3411         // commandBuffer modify
3412         auto apiHandle = mReconstruction.createApiInfo();
3413         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3414         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilTestEnableEXT, snapshotTraceBegin,
3415                                     snapshotTraceBytes);
3416         for (uint32_t i = 0; i < 1; ++i) {
3417             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3418             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3419         }
3420     }
vkCmdSetStencilOpEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)3421     void vkCmdSetStencilOpEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3422                               android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3423                               VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp,
3424                               VkStencilOp depthFailOp, VkCompareOp compareOp) {
3425         android::base::AutoLock lock(mLock);
3426         // commandBuffer modify
3427         auto apiHandle = mReconstruction.createApiInfo();
3428         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3429         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilOpEXT, snapshotTraceBegin,
3430                                     snapshotTraceBytes);
3431         for (uint32_t i = 0; i < 1; ++i) {
3432             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3433             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3434         }
3435     }
3436 #endif
3437 #ifdef VK_EXT_host_image_copy
vkCopyMemoryToImageEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCopyMemoryToImageInfoEXT * pCopyMemoryToImageInfo)3438     void vkCopyMemoryToImageEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3439                                 android::base::BumpPool* pool, VkResult input_result,
3440                                 VkDevice device,
3441                                 const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) {}
vkCopyImageToMemoryEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCopyImageToMemoryInfoEXT * pCopyImageToMemoryInfo)3442     void vkCopyImageToMemoryEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3443                                 android::base::BumpPool* pool, VkResult input_result,
3444                                 VkDevice device,
3445                                 const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) {}
vkCopyImageToImageEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCopyImageToImageInfoEXT * pCopyImageToImageInfo)3446     void vkCopyImageToImageEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3447                                android::base::BumpPool* pool, VkResult input_result,
3448                                VkDevice device,
3449                                const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) {}
vkTransitionImageLayoutEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t transitionCount,const VkHostImageLayoutTransitionInfoEXT * pTransitions)3450     void vkTransitionImageLayoutEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3451                                     android::base::BumpPool* pool, VkResult input_result,
3452                                     VkDevice device, uint32_t transitionCount,
3453                                     const VkHostImageLayoutTransitionInfoEXT* pTransitions) {}
vkGetImageSubresourceLayout2EXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkImageSubresource2KHR * pSubresource,VkSubresourceLayout2KHR * pLayout)3454     void vkGetImageSubresourceLayout2EXT(const uint8_t* snapshotTraceBegin,
3455                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
3456                                          VkDevice device, VkImage image,
3457                                          const VkImageSubresource2KHR* pSubresource,
3458                                          VkSubresourceLayout2KHR* pLayout) {}
3459 #endif
3460 #ifdef VK_EXT_swapchain_maintenance1
vkReleaseSwapchainImagesEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo)3461     void vkReleaseSwapchainImagesEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3462                                      android::base::BumpPool* pool, VkResult input_result,
3463                                      VkDevice device,
3464                                      const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {}
3465 #endif
3466 #ifdef VK_EXT_shader_demote_to_helper_invocation
3467 #endif
3468 #ifdef VK_EXT_texel_buffer_alignment
3469 #endif
3470 #ifdef VK_EXT_device_memory_report
3471 #endif
3472 #ifdef VK_EXT_robustness2
3473 #endif
3474 #ifdef VK_EXT_custom_border_color
3475 #endif
3476 #ifdef VK_EXT_private_data
vkCreatePrivateDataSlotEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)3477     void vkCreatePrivateDataSlotEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3478                                     android::base::BumpPool* pool, VkResult input_result,
3479                                     VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo,
3480                                     const VkAllocationCallbacks* pAllocator,
3481                                     VkPrivateDataSlot* pPrivateDataSlot) {}
vkDestroyPrivateDataSlotEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)3482     void vkDestroyPrivateDataSlotEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3483                                      android::base::BumpPool* pool, VkDevice device,
3484                                      VkPrivateDataSlot privateDataSlot,
3485                                      const VkAllocationCallbacks* pAllocator) {}
vkSetPrivateDataEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)3486     void vkSetPrivateDataEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3487                              android::base::BumpPool* pool, VkResult input_result, VkDevice device,
3488                              VkObjectType objectType, uint64_t objectHandle,
3489                              VkPrivateDataSlot privateDataSlot, uint64_t data) {}
vkGetPrivateDataEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)3490     void vkGetPrivateDataEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3491                              android::base::BumpPool* pool, VkDevice device,
3492                              VkObjectType objectType, uint64_t objectHandle,
3493                              VkPrivateDataSlot privateDataSlot, uint64_t* pData) {}
3494 #endif
3495 #ifdef VK_EXT_pipeline_creation_cache_control
3496 #endif
3497 #ifdef VK_EXT_metal_objects
3498 #endif
3499 #ifdef VK_EXT_graphics_pipeline_library
3500 #endif
3501 #ifdef VK_EXT_ycbcr_2plane_444_formats
3502 #endif
3503 #ifdef VK_EXT_image_robustness
3504 #endif
3505 #ifdef VK_EXT_image_compression_control
3506 #endif
3507 #ifdef VK_EXT_4444_formats
3508 #endif
3509 #ifdef VK_EXT_primitive_topology_list_restart
3510 #endif
3511 #ifdef VK_EXT_extended_dynamic_state2
vkCmdSetPatchControlPointsEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t patchControlPoints)3512     void vkCmdSetPatchControlPointsEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3513                                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3514                                        uint32_t patchControlPoints) {
3515         android::base::AutoLock lock(mLock);
3516         // commandBuffer modify
3517         auto apiHandle = mReconstruction.createApiInfo();
3518         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3519         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetPatchControlPointsEXT, snapshotTraceBegin,
3520                                     snapshotTraceBytes);
3521         for (uint32_t i = 0; i < 1; ++i) {
3522             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3523             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3524         }
3525     }
vkCmdSetRasterizerDiscardEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)3526     void vkCmdSetRasterizerDiscardEnableEXT(const uint8_t* snapshotTraceBegin,
3527                                             size_t snapshotTraceBytes,
3528                                             android::base::BumpPool* pool,
3529                                             VkCommandBuffer commandBuffer,
3530                                             VkBool32 rasterizerDiscardEnable) {
3531         android::base::AutoLock lock(mLock);
3532         // commandBuffer modify
3533         auto apiHandle = mReconstruction.createApiInfo();
3534         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3535         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetRasterizerDiscardEnableEXT,
3536                                     snapshotTraceBegin, snapshotTraceBytes);
3537         for (uint32_t i = 0; i < 1; ++i) {
3538             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3539             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3540         }
3541     }
vkCmdSetDepthBiasEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)3542     void vkCmdSetDepthBiasEnableEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3543                                     android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3544                                     VkBool32 depthBiasEnable) {
3545         android::base::AutoLock lock(mLock);
3546         // commandBuffer modify
3547         auto apiHandle = mReconstruction.createApiInfo();
3548         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3549         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBiasEnableEXT, snapshotTraceBegin,
3550                                     snapshotTraceBytes);
3551         for (uint32_t i = 0; i < 1; ++i) {
3552             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3553             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3554         }
3555     }
vkCmdSetLogicOpEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkLogicOp logicOp)3556     void vkCmdSetLogicOpEXT(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3557                             android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3558                             VkLogicOp logicOp) {
3559         android::base::AutoLock lock(mLock);
3560         // commandBuffer modify
3561         auto apiHandle = mReconstruction.createApiInfo();
3562         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3563         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetLogicOpEXT, snapshotTraceBegin,
3564                                     snapshotTraceBytes);
3565         for (uint32_t i = 0; i < 1; ++i) {
3566             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3567             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3568         }
3569     }
vkCmdSetPrimitiveRestartEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)3570     void vkCmdSetPrimitiveRestartEnableEXT(const uint8_t* snapshotTraceBegin,
3571                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
3572                                            VkCommandBuffer commandBuffer,
3573                                            VkBool32 primitiveRestartEnable) {
3574         android::base::AutoLock lock(mLock);
3575         // commandBuffer modify
3576         auto apiHandle = mReconstruction.createApiInfo();
3577         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3578         mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetPrimitiveRestartEnableEXT,
3579                                     snapshotTraceBegin, snapshotTraceBytes);
3580         for (uint32_t i = 0; i < 1; ++i) {
3581             VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]);
3582             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3583         }
3584     }
3585 #endif
3586 #ifdef VK_GOOGLE_gfxstream
vkMapMemoryIntoAddressSpaceGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory,uint64_t * pAddress)3587     void vkMapMemoryIntoAddressSpaceGOOGLE(const uint8_t* snapshotTraceBegin,
3588                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
3589                                            VkResult input_result, VkDevice device,
3590                                            VkDeviceMemory memory, uint64_t* pAddress) {
3591         android::base::AutoLock lock(mLock);
3592         // memory modify
3593         auto apiHandle = mReconstruction.createApiInfo();
3594         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3595         mReconstruction.setApiTrace(apiInfo, OP_vkMapMemoryIntoAddressSpaceGOOGLE,
3596                                     snapshotTraceBegin, snapshotTraceBytes);
3597         for (uint32_t i = 0; i < 1; ++i) {
3598             VkDeviceMemory boxed = unboxed_to_boxed_non_dispatchable_VkDeviceMemory((&memory)[i]);
3599             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3600         }
3601     }
vkUpdateDescriptorSetWithTemplateSizedGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,uint32_t imageInfoCount,uint32_t bufferInfoCount,uint32_t bufferViewCount,const uint32_t * pImageInfoEntryIndices,const uint32_t * pBufferInfoEntryIndices,const uint32_t * pBufferViewEntryIndices,const VkDescriptorImageInfo * pImageInfos,const VkDescriptorBufferInfo * pBufferInfos,const VkBufferView * pBufferViews)3602     void vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
3603         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3604         VkDevice device, VkDescriptorSet descriptorSet,
3605         VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
3606         uint32_t bufferInfoCount, uint32_t bufferViewCount, const uint32_t* pImageInfoEntryIndices,
3607         const uint32_t* pBufferInfoEntryIndices, const uint32_t* pBufferViewEntryIndices,
3608         const VkDescriptorImageInfo* pImageInfos, const VkDescriptorBufferInfo* pBufferInfos,
3609         const VkBufferView* pBufferViews) {}
vkBeginCommandBufferAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)3610     void vkBeginCommandBufferAsyncGOOGLE(const uint8_t* snapshotTraceBegin,
3611                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
3612                                          VkCommandBuffer commandBuffer,
3613                                          const VkCommandBufferBeginInfo* pBeginInfo) {}
vkEndCommandBufferAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)3614     void vkEndCommandBufferAsyncGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3615                                        android::base::BumpPool* pool,
3616                                        VkCommandBuffer commandBuffer) {}
vkResetCommandBufferAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)3617     void vkResetCommandBufferAsyncGOOGLE(const uint8_t* snapshotTraceBegin,
3618                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
3619                                          VkCommandBuffer commandBuffer,
3620                                          VkCommandBufferResetFlags flags) {}
vkCommandBufferHostSyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t needHostSync,uint32_t sequenceNumber)3621     void vkCommandBufferHostSyncGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3622                                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
3623                                        uint32_t needHostSync, uint32_t sequenceNumber) {}
vkCreateImageWithRequirementsGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage,VkMemoryRequirements * pMemoryRequirements)3624     void vkCreateImageWithRequirementsGOOGLE(const uint8_t* snapshotTraceBegin,
3625                                              size_t snapshotTraceBytes,
3626                                              android::base::BumpPool* pool, VkResult input_result,
3627                                              VkDevice device, const VkImageCreateInfo* pCreateInfo,
3628                                              const VkAllocationCallbacks* pAllocator,
3629                                              VkImage* pImage,
3630                                              VkMemoryRequirements* pMemoryRequirements) {
3631         if (!pImage) return;
3632         android::base::AutoLock lock(mLock);
3633         // pImage create
3634         mReconstruction.addHandles((const uint64_t*)pImage, 1);
3635         mReconstruction.addHandleDependency((const uint64_t*)pImage, 1,
3636                                             (uint64_t)(uintptr_t)device);
3637         auto apiHandle = mReconstruction.createApiInfo();
3638         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3639         mReconstruction.setApiTrace(apiInfo, OP_vkCreateImageWithRequirementsGOOGLE,
3640                                     snapshotTraceBegin, snapshotTraceBytes);
3641         mReconstruction.forEachHandleAddApi((const uint64_t*)pImage, 1, apiHandle,
3642                                             VkReconstruction::CREATED);
3643         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pImage, 1);
3644     }
vkCreateBufferWithRequirementsGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer,VkMemoryRequirements * pMemoryRequirements)3645     void vkCreateBufferWithRequirementsGOOGLE(
3646         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3647         VkResult input_result, VkDevice device, const VkBufferCreateInfo* pCreateInfo,
3648         const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer,
3649         VkMemoryRequirements* pMemoryRequirements) {
3650         if (!pBuffer) return;
3651         android::base::AutoLock lock(mLock);
3652         // pBuffer create
3653         mReconstruction.addHandles((const uint64_t*)pBuffer, 1);
3654         mReconstruction.addHandleDependency((const uint64_t*)pBuffer, 1,
3655                                             (uint64_t)(uintptr_t)device);
3656         auto apiHandle = mReconstruction.createApiInfo();
3657         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3658         mReconstruction.setApiTrace(apiInfo, OP_vkCreateBufferWithRequirementsGOOGLE,
3659                                     snapshotTraceBegin, snapshotTraceBytes);
3660         mReconstruction.forEachHandleAddApi((const uint64_t*)pBuffer, 1, apiHandle,
3661                                             VkReconstruction::CREATED);
3662         mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pBuffer, 1);
3663     }
vkGetMemoryHostAddressInfoGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory,uint64_t * pAddress,uint64_t * pSize,uint64_t * pHostmemId)3664     void vkGetMemoryHostAddressInfoGOOGLE(const uint8_t* snapshotTraceBegin,
3665                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
3666                                           VkResult input_result, VkDevice device,
3667                                           VkDeviceMemory memory, uint64_t* pAddress,
3668                                           uint64_t* pSize, uint64_t* pHostmemId) {}
vkFreeMemorySyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)3669     void vkFreeMemorySyncGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3670                                 android::base::BumpPool* pool, VkResult input_result,
3671                                 VkDevice device, VkDeviceMemory memory,
3672                                 const VkAllocationCallbacks* pAllocator) {
3673         android::base::AutoLock lock(mLock);
3674         // memory destroy
3675         mReconstruction.removeHandles((const uint64_t*)(&memory), 1, true);
3676     }
vkQueueHostSyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t needHostSync,uint32_t sequenceNumber)3677     void vkQueueHostSyncGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3678                                android::base::BumpPool* pool, VkQueue queue, uint32_t needHostSync,
3679                                uint32_t sequenceNumber) {}
vkQueueSubmitAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)3680     void vkQueueSubmitAsyncGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3681                                   android::base::BumpPool* pool, VkQueue queue,
3682                                   uint32_t submitCount, const VkSubmitInfo* pSubmits,
3683                                   VkFence fence) {}
vkQueueWaitIdleAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue)3684     void vkQueueWaitIdleAsyncGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3685                                     android::base::BumpPool* pool, VkQueue queue) {}
vkQueueBindSparseAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)3686     void vkQueueBindSparseAsyncGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3687                                       android::base::BumpPool* pool, VkQueue queue,
3688                                       uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo,
3689                                       VkFence fence) {}
vkGetLinearImageLayoutGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkFormat format,VkDeviceSize * pOffset,VkDeviceSize * pRowPitchAlignment)3690     void vkGetLinearImageLayoutGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3691                                       android::base::BumpPool* pool, VkDevice device,
3692                                       VkFormat format, VkDeviceSize* pOffset,
3693                                       VkDeviceSize* pRowPitchAlignment) {}
vkGetLinearImageLayout2GOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageCreateInfo * pCreateInfo,VkDeviceSize * pOffset,VkDeviceSize * pRowPitchAlignment)3694     void vkGetLinearImageLayout2GOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3695                                        android::base::BumpPool* pool, VkDevice device,
3696                                        const VkImageCreateInfo* pCreateInfo, VkDeviceSize* pOffset,
3697                                        VkDeviceSize* pRowPitchAlignment) {}
vkQueueFlushCommandsGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,VkCommandBuffer commandBuffer,VkDeviceSize dataSize,const void * pData)3698     void vkQueueFlushCommandsGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3699                                     android::base::BumpPool* pool, VkQueue queue,
3700                                     VkCommandBuffer commandBuffer, VkDeviceSize dataSize,
3701                                     const void* pData) {}
vkQueueCommitDescriptorSetUpdatesGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t descriptorPoolCount,const VkDescriptorPool * pDescriptorPools,uint32_t descriptorSetCount,const VkDescriptorSetLayout * pSetLayouts,const uint64_t * pDescriptorSetPoolIds,const uint32_t * pDescriptorSetWhichPool,const uint32_t * pDescriptorSetPendingAllocation,const uint32_t * pDescriptorWriteStartingIndices,uint32_t pendingDescriptorWriteCount,const VkWriteDescriptorSet * pPendingDescriptorWrites)3702     void vkQueueCommitDescriptorSetUpdatesGOOGLE(
3703         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3704         VkQueue queue, uint32_t descriptorPoolCount, const VkDescriptorPool* pDescriptorPools,
3705         uint32_t descriptorSetCount, const VkDescriptorSetLayout* pSetLayouts,
3706         const uint64_t* pDescriptorSetPoolIds, const uint32_t* pDescriptorSetWhichPool,
3707         const uint32_t* pDescriptorSetPendingAllocation,
3708         const uint32_t* pDescriptorWriteStartingIndices, uint32_t pendingDescriptorWriteCount,
3709         const VkWriteDescriptorSet* pPendingDescriptorWrites) {}
vkCollectDescriptorPoolIdsGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorPool descriptorPool,uint32_t * pPoolIdCount,uint64_t * pPoolIds)3710     void vkCollectDescriptorPoolIdsGOOGLE(const uint8_t* snapshotTraceBegin,
3711                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
3712                                           VkDevice device, VkDescriptorPool descriptorPool,
3713                                           uint32_t* pPoolIdCount, uint64_t* pPoolIds) {}
vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image)3714     void vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(const uint8_t* snapshotTraceBegin,
3715                                                      size_t snapshotTraceBytes,
3716                                                      android::base::BumpPool* pool, VkQueue queue,
3717                                                      uint32_t waitSemaphoreCount,
3718                                                      const VkSemaphore* pWaitSemaphores,
3719                                                      VkImage image) {}
vkQueueFlushCommandsFromAuxMemoryGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,VkCommandBuffer commandBuffer,VkDeviceMemory deviceMemory,VkDeviceSize dataOffset,VkDeviceSize dataSize)3720     void vkQueueFlushCommandsFromAuxMemoryGOOGLE(const uint8_t* snapshotTraceBegin,
3721                                                  size_t snapshotTraceBytes,
3722                                                  android::base::BumpPool* pool, VkQueue queue,
3723                                                  VkCommandBuffer commandBuffer,
3724                                                  VkDeviceMemory deviceMemory,
3725                                                  VkDeviceSize dataOffset, VkDeviceSize dataSize) {}
vkGetBlobGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory)3726     void vkGetBlobGOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3727                          android::base::BumpPool* pool, VkResult input_result, VkDevice device,
3728                          VkDeviceMemory memory) {
3729         android::base::AutoLock lock(mLock);
3730         // memory modify
3731         auto apiHandle = mReconstruction.createApiInfo();
3732         auto apiInfo = mReconstruction.getApiInfo(apiHandle);
3733         mReconstruction.setApiTrace(apiInfo, OP_vkGetBlobGOOGLE, snapshotTraceBegin,
3734                                     snapshotTraceBytes);
3735         for (uint32_t i = 0; i < 1; ++i) {
3736             VkDeviceMemory boxed = unboxed_to_boxed_non_dispatchable_VkDeviceMemory((&memory)[i]);
3737             mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle);
3738         }
3739     }
vkUpdateDescriptorSetWithTemplateSized2GOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,uint32_t imageInfoCount,uint32_t bufferInfoCount,uint32_t bufferViewCount,uint32_t inlineUniformBlockCount,const uint32_t * pImageInfoEntryIndices,const uint32_t * pBufferInfoEntryIndices,const uint32_t * pBufferViewEntryIndices,const VkDescriptorImageInfo * pImageInfos,const VkDescriptorBufferInfo * pBufferInfos,const VkBufferView * pBufferViews,const uint8_t * pInlineUniformBlockData)3740     void vkUpdateDescriptorSetWithTemplateSized2GOOGLE(
3741         const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3742         VkDevice device, VkDescriptorSet descriptorSet,
3743         VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
3744         uint32_t bufferInfoCount, uint32_t bufferViewCount, uint32_t inlineUniformBlockCount,
3745         const uint32_t* pImageInfoEntryIndices, const uint32_t* pBufferInfoEntryIndices,
3746         const uint32_t* pBufferViewEntryIndices, const VkDescriptorImageInfo* pImageInfos,
3747         const VkDescriptorBufferInfo* pBufferInfos, const VkBufferView* pBufferViews,
3748         const uint8_t* pInlineUniformBlockData) {}
vkQueueSubmitAsync2GOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)3749     void vkQueueSubmitAsync2GOOGLE(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3750                                    android::base::BumpPool* pool, VkQueue queue,
3751                                    uint32_t submitCount, const VkSubmitInfo2* pSubmits,
3752                                    VkFence fence) {}
3753 #endif
3754 #ifdef VK_EXT_load_store_op_none
3755 #endif
3756 #ifdef VK_EXT_image_compression_control_swapchain
3757 #endif
3758 #ifdef VK_QNX_external_memory_screen_buffer
3759 #endif
3760 
3761    private:
3762     android::base::Lock mLock;
3763     VkReconstruction mReconstruction;
3764 };
3765 
VkDecoderSnapshot()3766 VkDecoderSnapshot::VkDecoderSnapshot() : mImpl(new VkDecoderSnapshot::Impl()) {}
3767 
save(android::base::Stream * stream)3768 void VkDecoderSnapshot::save(android::base::Stream* stream) { mImpl->save(stream); }
3769 
load(android::base::Stream * stream,GfxApiLogger & gfx_logger,HealthMonitor<> * healthMonitor)3770 void VkDecoderSnapshot::load(android::base::Stream* stream, GfxApiLogger& gfx_logger,
3771                              HealthMonitor<>* healthMonitor) {
3772     mImpl->load(stream, gfx_logger, healthMonitor);
3773 }
3774 
createExtraHandlesForNextApi(const uint64_t * created,uint32_t count)3775 void VkDecoderSnapshot::createExtraHandlesForNextApi(const uint64_t* created, uint32_t count) {
3776     mImpl->createExtraHandlesForNextApi(created, count);
3777 }
3778 
3779 VkDecoderSnapshot::~VkDecoderSnapshot() = default;
3780 #ifdef VK_VERSION_1_0
vkCreateInstance(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance)3781 void VkDecoderSnapshot::vkCreateInstance(const uint8_t* snapshotTraceBegin,
3782                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
3783                                          VkResult input_result,
3784                                          const VkInstanceCreateInfo* pCreateInfo,
3785                                          const VkAllocationCallbacks* pAllocator,
3786                                          VkInstance* pInstance) {
3787     mImpl->vkCreateInstance(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, pCreateInfo,
3788                             pAllocator, pInstance);
3789 }
3790 #endif
3791 #ifdef VK_VERSION_1_0
vkDestroyInstance(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkInstance instance,const VkAllocationCallbacks * pAllocator)3792 void VkDecoderSnapshot::vkDestroyInstance(const uint8_t* snapshotTraceBegin,
3793                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
3794                                           VkInstance instance,
3795                                           const VkAllocationCallbacks* pAllocator) {
3796     mImpl->vkDestroyInstance(snapshotTraceBegin, snapshotTraceBytes, pool, instance, pAllocator);
3797 }
3798 #endif
3799 #ifdef VK_VERSION_1_0
vkEnumeratePhysicalDevices(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices)3800 void VkDecoderSnapshot::vkEnumeratePhysicalDevices(const uint8_t* snapshotTraceBegin,
3801                                                    size_t snapshotTraceBytes,
3802                                                    android::base::BumpPool* pool,
3803                                                    VkResult input_result, VkInstance instance,
3804                                                    uint32_t* pPhysicalDeviceCount,
3805                                                    VkPhysicalDevice* pPhysicalDevices) {
3806     mImpl->vkEnumeratePhysicalDevices(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
3807                                       instance, pPhysicalDeviceCount, pPhysicalDevices);
3808 }
3809 #endif
3810 #ifdef VK_VERSION_1_0
vkGetPhysicalDeviceFeatures(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures)3811 void VkDecoderSnapshot::vkGetPhysicalDeviceFeatures(const uint8_t* snapshotTraceBegin,
3812                                                     size_t snapshotTraceBytes,
3813                                                     android::base::BumpPool* pool,
3814                                                     VkPhysicalDevice physicalDevice,
3815                                                     VkPhysicalDeviceFeatures* pFeatures) {
3816     mImpl->vkGetPhysicalDeviceFeatures(snapshotTraceBegin, snapshotTraceBytes, pool, physicalDevice,
3817                                        pFeatures);
3818 }
3819 #endif
3820 #ifdef VK_VERSION_1_0
vkGetPhysicalDeviceFormatProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties)3821 void VkDecoderSnapshot::vkGetPhysicalDeviceFormatProperties(
3822     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3823     VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties) {
3824     mImpl->vkGetPhysicalDeviceFormatProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
3825                                                physicalDevice, format, pFormatProperties);
3826 }
3827 #endif
3828 #ifdef VK_VERSION_1_0
vkGetPhysicalDeviceImageFormatProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties)3829 void VkDecoderSnapshot::vkGetPhysicalDeviceImageFormatProperties(
3830     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3831     VkResult input_result, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
3832     VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags,
3833     VkImageFormatProperties* pImageFormatProperties) {
3834     mImpl->vkGetPhysicalDeviceImageFormatProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
3835                                                     input_result, physicalDevice, format, type,
3836                                                     tiling, usage, flags, pImageFormatProperties);
3837 }
3838 #endif
3839 #ifdef VK_VERSION_1_0
vkGetPhysicalDeviceProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties)3840 void VkDecoderSnapshot::vkGetPhysicalDeviceProperties(const uint8_t* snapshotTraceBegin,
3841                                                       size_t snapshotTraceBytes,
3842                                                       android::base::BumpPool* pool,
3843                                                       VkPhysicalDevice physicalDevice,
3844                                                       VkPhysicalDeviceProperties* pProperties) {
3845     mImpl->vkGetPhysicalDeviceProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
3846                                          physicalDevice, pProperties);
3847 }
3848 #endif
3849 #ifdef VK_VERSION_1_0
vkGetPhysicalDeviceQueueFamilyProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties)3850 void VkDecoderSnapshot::vkGetPhysicalDeviceQueueFamilyProperties(
3851     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3852     VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
3853     VkQueueFamilyProperties* pQueueFamilyProperties) {
3854     mImpl->vkGetPhysicalDeviceQueueFamilyProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
3855                                                     physicalDevice, pQueueFamilyPropertyCount,
3856                                                     pQueueFamilyProperties);
3857 }
3858 #endif
3859 #ifdef VK_VERSION_1_0
vkGetPhysicalDeviceMemoryProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties)3860 void VkDecoderSnapshot::vkGetPhysicalDeviceMemoryProperties(
3861     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3862     VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
3863     mImpl->vkGetPhysicalDeviceMemoryProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
3864                                                physicalDevice, pMemoryProperties);
3865 }
3866 #endif
3867 #ifdef VK_VERSION_1_0
vkGetInstanceProcAddr(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,PFN_vkVoidFunction input_result,VkInstance instance,const char * pName)3868 void VkDecoderSnapshot::vkGetInstanceProcAddr(const uint8_t* snapshotTraceBegin,
3869                                               size_t snapshotTraceBytes,
3870                                               android::base::BumpPool* pool,
3871                                               PFN_vkVoidFunction input_result, VkInstance instance,
3872                                               const char* pName) {
3873     mImpl->vkGetInstanceProcAddr(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
3874                                  instance, pName);
3875 }
3876 #endif
3877 #ifdef VK_VERSION_1_0
vkGetDeviceProcAddr(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,PFN_vkVoidFunction input_result,VkDevice device,const char * pName)3878 void VkDecoderSnapshot::vkGetDeviceProcAddr(const uint8_t* snapshotTraceBegin,
3879                                             size_t snapshotTraceBytes,
3880                                             android::base::BumpPool* pool,
3881                                             PFN_vkVoidFunction input_result, VkDevice device,
3882                                             const char* pName) {
3883     mImpl->vkGetDeviceProcAddr(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
3884                                pName);
3885 }
3886 #endif
3887 #ifdef VK_VERSION_1_0
vkCreateDevice(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice)3888 void VkDecoderSnapshot::vkCreateDevice(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3889                                        android::base::BumpPool* pool, VkResult input_result,
3890                                        VkPhysicalDevice physicalDevice,
3891                                        const VkDeviceCreateInfo* pCreateInfo,
3892                                        const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) {
3893     mImpl->vkCreateDevice(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
3894                           physicalDevice, pCreateInfo, pAllocator, pDevice);
3895 }
3896 #endif
3897 #ifdef VK_VERSION_1_0
vkDestroyDevice(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkAllocationCallbacks * pAllocator)3898 void VkDecoderSnapshot::vkDestroyDevice(const uint8_t* snapshotTraceBegin,
3899                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
3900                                         VkDevice device, const VkAllocationCallbacks* pAllocator) {
3901     mImpl->vkDestroyDevice(snapshotTraceBegin, snapshotTraceBytes, pool, device, pAllocator);
3902 }
3903 #endif
3904 #ifdef VK_VERSION_1_0
vkEnumerateInstanceExtensionProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)3905 void VkDecoderSnapshot::vkEnumerateInstanceExtensionProperties(
3906     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3907     VkResult input_result, const char* pLayerName, uint32_t* pPropertyCount,
3908     VkExtensionProperties* pProperties) {
3909     mImpl->vkEnumerateInstanceExtensionProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
3910                                                   input_result, pLayerName, pPropertyCount,
3911                                                   pProperties);
3912 }
3913 #endif
3914 #ifdef VK_VERSION_1_0
vkEnumerateDeviceExtensionProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)3915 void VkDecoderSnapshot::vkEnumerateDeviceExtensionProperties(
3916     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3917     VkResult input_result, VkPhysicalDevice physicalDevice, const char* pLayerName,
3918     uint32_t* pPropertyCount, VkExtensionProperties* pProperties) {
3919     mImpl->vkEnumerateDeviceExtensionProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
3920                                                 input_result, physicalDevice, pLayerName,
3921                                                 pPropertyCount, pProperties);
3922 }
3923 #endif
3924 #ifdef VK_VERSION_1_0
vkEnumerateInstanceLayerProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,uint32_t * pPropertyCount,VkLayerProperties * pProperties)3925 void VkDecoderSnapshot::vkEnumerateInstanceLayerProperties(
3926     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3927     VkResult input_result, uint32_t* pPropertyCount, VkLayerProperties* pProperties) {
3928     mImpl->vkEnumerateInstanceLayerProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
3929                                               input_result, pPropertyCount, pProperties);
3930 }
3931 #endif
3932 #ifdef VK_VERSION_1_0
vkEnumerateDeviceLayerProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties)3933 void VkDecoderSnapshot::vkEnumerateDeviceLayerProperties(
3934     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
3935     VkResult input_result, VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount,
3936     VkLayerProperties* pProperties) {
3937     mImpl->vkEnumerateDeviceLayerProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
3938                                             input_result, physicalDevice, pPropertyCount,
3939                                             pProperties);
3940 }
3941 #endif
3942 #ifdef VK_VERSION_1_0
vkGetDeviceQueue(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue)3943 void VkDecoderSnapshot::vkGetDeviceQueue(const uint8_t* snapshotTraceBegin,
3944                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
3945                                          VkDevice device, uint32_t queueFamilyIndex,
3946                                          uint32_t queueIndex, VkQueue* pQueue) {
3947     mImpl->vkGetDeviceQueue(snapshotTraceBegin, snapshotTraceBytes, pool, device, queueFamilyIndex,
3948                             queueIndex, pQueue);
3949 }
3950 #endif
3951 #ifdef VK_VERSION_1_0
vkQueueSubmit(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)3952 void VkDecoderSnapshot::vkQueueSubmit(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3953                                       android::base::BumpPool* pool, VkResult input_result,
3954                                       VkQueue queue, uint32_t submitCount,
3955                                       const VkSubmitInfo* pSubmits, VkFence fence) {
3956     mImpl->vkQueueSubmit(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, queue,
3957                          submitCount, pSubmits, fence);
3958 }
3959 #endif
3960 #ifdef VK_VERSION_1_0
vkQueueWaitIdle(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue)3961 void VkDecoderSnapshot::vkQueueWaitIdle(const uint8_t* snapshotTraceBegin,
3962                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
3963                                         VkResult input_result, VkQueue queue) {
3964     mImpl->vkQueueWaitIdle(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, queue);
3965 }
3966 #endif
3967 #ifdef VK_VERSION_1_0
vkDeviceWaitIdle(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device)3968 void VkDecoderSnapshot::vkDeviceWaitIdle(const uint8_t* snapshotTraceBegin,
3969                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
3970                                          VkResult input_result, VkDevice device) {
3971     mImpl->vkDeviceWaitIdle(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device);
3972 }
3973 #endif
3974 #ifdef VK_VERSION_1_0
vkAllocateMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory)3975 void VkDecoderSnapshot::vkAllocateMemory(const uint8_t* snapshotTraceBegin,
3976                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
3977                                          VkResult input_result, VkDevice device,
3978                                          const VkMemoryAllocateInfo* pAllocateInfo,
3979                                          const VkAllocationCallbacks* pAllocator,
3980                                          VkDeviceMemory* pMemory) {
3981     mImpl->vkAllocateMemory(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
3982                             pAllocateInfo, pAllocator, pMemory);
3983 }
3984 #endif
3985 #ifdef VK_VERSION_1_0
vkFreeMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)3986 void VkDecoderSnapshot::vkFreeMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3987                                      android::base::BumpPool* pool, VkDevice device,
3988                                      VkDeviceMemory memory,
3989                                      const VkAllocationCallbacks* pAllocator) {
3990     mImpl->vkFreeMemory(snapshotTraceBegin, snapshotTraceBytes, pool, device, memory, pAllocator);
3991 }
3992 #endif
3993 #ifdef VK_VERSION_1_0
vkMapMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData)3994 void VkDecoderSnapshot::vkMapMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
3995                                     android::base::BumpPool* pool, VkResult input_result,
3996                                     VkDevice device, VkDeviceMemory memory, VkDeviceSize offset,
3997                                     VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
3998     mImpl->vkMapMemory(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device, memory,
3999                        offset, size, flags, ppData);
4000 }
4001 #endif
4002 #ifdef VK_VERSION_1_0
vkUnmapMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDeviceMemory memory)4003 void VkDecoderSnapshot::vkUnmapMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4004                                       android::base::BumpPool* pool, VkDevice device,
4005                                       VkDeviceMemory memory) {
4006     mImpl->vkUnmapMemory(snapshotTraceBegin, snapshotTraceBytes, pool, device, memory);
4007 }
4008 #endif
4009 #ifdef VK_VERSION_1_0
vkFlushMappedMemoryRanges(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)4010 void VkDecoderSnapshot::vkFlushMappedMemoryRanges(const uint8_t* snapshotTraceBegin,
4011                                                   size_t snapshotTraceBytes,
4012                                                   android::base::BumpPool* pool,
4013                                                   VkResult input_result, VkDevice device,
4014                                                   uint32_t memoryRangeCount,
4015                                                   const VkMappedMemoryRange* pMemoryRanges) {
4016     mImpl->vkFlushMappedMemoryRanges(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4017                                      device, memoryRangeCount, pMemoryRanges);
4018 }
4019 #endif
4020 #ifdef VK_VERSION_1_0
vkInvalidateMappedMemoryRanges(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)4021 void VkDecoderSnapshot::vkInvalidateMappedMemoryRanges(const uint8_t* snapshotTraceBegin,
4022                                                        size_t snapshotTraceBytes,
4023                                                        android::base::BumpPool* pool,
4024                                                        VkResult input_result, VkDevice device,
4025                                                        uint32_t memoryRangeCount,
4026                                                        const VkMappedMemoryRange* pMemoryRanges) {
4027     mImpl->vkInvalidateMappedMemoryRanges(snapshotTraceBegin, snapshotTraceBytes, pool,
4028                                           input_result, device, memoryRangeCount, pMemoryRanges);
4029 }
4030 #endif
4031 #ifdef VK_VERSION_1_0
vkGetDeviceMemoryCommitment(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)4032 void VkDecoderSnapshot::vkGetDeviceMemoryCommitment(const uint8_t* snapshotTraceBegin,
4033                                                     size_t snapshotTraceBytes,
4034                                                     android::base::BumpPool* pool, VkDevice device,
4035                                                     VkDeviceMemory memory,
4036                                                     VkDeviceSize* pCommittedMemoryInBytes) {
4037     mImpl->vkGetDeviceMemoryCommitment(snapshotTraceBegin, snapshotTraceBytes, pool, device, memory,
4038                                        pCommittedMemoryInBytes);
4039 }
4040 #endif
4041 #ifdef VK_VERSION_1_0
vkBindBufferMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)4042 void VkDecoderSnapshot::vkBindBufferMemory(const uint8_t* snapshotTraceBegin,
4043                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
4044                                            VkResult input_result, VkDevice device, VkBuffer buffer,
4045                                            VkDeviceMemory memory, VkDeviceSize memoryOffset) {
4046     mImpl->vkBindBufferMemory(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4047                               buffer, memory, memoryOffset);
4048 }
4049 #endif
4050 #ifdef VK_VERSION_1_0
vkBindImageMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset)4051 void VkDecoderSnapshot::vkBindImageMemory(const uint8_t* snapshotTraceBegin,
4052                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4053                                           VkResult input_result, VkDevice device, VkImage image,
4054                                           VkDeviceMemory memory, VkDeviceSize memoryOffset) {
4055     mImpl->vkBindImageMemory(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4056                              image, memory, memoryOffset);
4057 }
4058 #endif
4059 #ifdef VK_VERSION_1_0
vkGetBufferMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)4060 void VkDecoderSnapshot::vkGetBufferMemoryRequirements(const uint8_t* snapshotTraceBegin,
4061                                                       size_t snapshotTraceBytes,
4062                                                       android::base::BumpPool* pool,
4063                                                       VkDevice device, VkBuffer buffer,
4064                                                       VkMemoryRequirements* pMemoryRequirements) {
4065     mImpl->vkGetBufferMemoryRequirements(snapshotTraceBegin, snapshotTraceBytes, pool, device,
4066                                          buffer, pMemoryRequirements);
4067 }
4068 #endif
4069 #ifdef VK_VERSION_1_0
vkGetImageMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)4070 void VkDecoderSnapshot::vkGetImageMemoryRequirements(const uint8_t* snapshotTraceBegin,
4071                                                      size_t snapshotTraceBytes,
4072                                                      android::base::BumpPool* pool, VkDevice device,
4073                                                      VkImage image,
4074                                                      VkMemoryRequirements* pMemoryRequirements) {
4075     mImpl->vkGetImageMemoryRequirements(snapshotTraceBegin, snapshotTraceBytes, pool, device, image,
4076                                         pMemoryRequirements);
4077 }
4078 #endif
4079 #ifdef VK_VERSION_1_0
vkGetImageSparseMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)4080 void VkDecoderSnapshot::vkGetImageSparseMemoryRequirements(
4081     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4082     VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount,
4083     VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
4084     mImpl->vkGetImageSparseMemoryRequirements(snapshotTraceBegin, snapshotTraceBytes, pool, device,
4085                                               image, pSparseMemoryRequirementCount,
4086                                               pSparseMemoryRequirements);
4087 }
4088 #endif
4089 #ifdef VK_VERSION_1_0
vkGetPhysicalDeviceSparseImageFormatProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties)4090 void VkDecoderSnapshot::vkGetPhysicalDeviceSparseImageFormatProperties(
4091     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4092     VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
4093     VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling,
4094     uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
4095     mImpl->vkGetPhysicalDeviceSparseImageFormatProperties(
4096         snapshotTraceBegin, snapshotTraceBytes, pool, physicalDevice, format, type, samples, usage,
4097         tiling, pPropertyCount, pProperties);
4098 }
4099 #endif
4100 #ifdef VK_VERSION_1_0
vkQueueBindSparse(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)4101 void VkDecoderSnapshot::vkQueueBindSparse(const uint8_t* snapshotTraceBegin,
4102                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4103                                           VkResult input_result, VkQueue queue,
4104                                           uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo,
4105                                           VkFence fence) {
4106     mImpl->vkQueueBindSparse(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, queue,
4107                              bindInfoCount, pBindInfo, fence);
4108 }
4109 #endif
4110 #ifdef VK_VERSION_1_0
vkCreateFence(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)4111 void VkDecoderSnapshot::vkCreateFence(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4112                                       android::base::BumpPool* pool, VkResult input_result,
4113                                       VkDevice device, const VkFenceCreateInfo* pCreateInfo,
4114                                       const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
4115     mImpl->vkCreateFence(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4116                          pCreateInfo, pAllocator, pFence);
4117 }
4118 #endif
4119 #ifdef VK_VERSION_1_0
vkDestroyFence(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)4120 void VkDecoderSnapshot::vkDestroyFence(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4121                                        android::base::BumpPool* pool, VkDevice device,
4122                                        VkFence fence, const VkAllocationCallbacks* pAllocator) {
4123     mImpl->vkDestroyFence(snapshotTraceBegin, snapshotTraceBytes, pool, device, fence, pAllocator);
4124 }
4125 #endif
4126 #ifdef VK_VERSION_1_0
vkResetFences(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t fenceCount,const VkFence * pFences)4127 void VkDecoderSnapshot::vkResetFences(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4128                                       android::base::BumpPool* pool, VkResult input_result,
4129                                       VkDevice device, uint32_t fenceCount,
4130                                       const VkFence* pFences) {
4131     mImpl->vkResetFences(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4132                          fenceCount, pFences);
4133 }
4134 #endif
4135 #ifdef VK_VERSION_1_0
vkGetFenceStatus(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkFence fence)4136 void VkDecoderSnapshot::vkGetFenceStatus(const uint8_t* snapshotTraceBegin,
4137                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
4138                                          VkResult input_result, VkDevice device, VkFence fence) {
4139     mImpl->vkGetFenceStatus(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4140                             fence);
4141 }
4142 #endif
4143 #ifdef VK_VERSION_1_0
vkWaitForFences(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)4144 void VkDecoderSnapshot::vkWaitForFences(const uint8_t* snapshotTraceBegin,
4145                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
4146                                         VkResult input_result, VkDevice device, uint32_t fenceCount,
4147                                         const VkFence* pFences, VkBool32 waitAll,
4148                                         uint64_t timeout) {
4149     mImpl->vkWaitForFences(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4150                            fenceCount, pFences, waitAll, timeout);
4151 }
4152 #endif
4153 #ifdef VK_VERSION_1_0
vkCreateSemaphore(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)4154 void VkDecoderSnapshot::vkCreateSemaphore(const uint8_t* snapshotTraceBegin,
4155                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4156                                           VkResult input_result, VkDevice device,
4157                                           const VkSemaphoreCreateInfo* pCreateInfo,
4158                                           const VkAllocationCallbacks* pAllocator,
4159                                           VkSemaphore* pSemaphore) {
4160     mImpl->vkCreateSemaphore(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4161                              pCreateInfo, pAllocator, pSemaphore);
4162 }
4163 #endif
4164 #ifdef VK_VERSION_1_0
vkDestroySemaphore(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)4165 void VkDecoderSnapshot::vkDestroySemaphore(const uint8_t* snapshotTraceBegin,
4166                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
4167                                            VkDevice device, VkSemaphore semaphore,
4168                                            const VkAllocationCallbacks* pAllocator) {
4169     mImpl->vkDestroySemaphore(snapshotTraceBegin, snapshotTraceBytes, pool, device, semaphore,
4170                               pAllocator);
4171 }
4172 #endif
4173 #ifdef VK_VERSION_1_0
vkCreateEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent)4174 void VkDecoderSnapshot::vkCreateEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4175                                       android::base::BumpPool* pool, VkResult input_result,
4176                                       VkDevice device, const VkEventCreateInfo* pCreateInfo,
4177                                       const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
4178     mImpl->vkCreateEvent(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4179                          pCreateInfo, pAllocator, pEvent);
4180 }
4181 #endif
4182 #ifdef VK_VERSION_1_0
vkDestroyEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)4183 void VkDecoderSnapshot::vkDestroyEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4184                                        android::base::BumpPool* pool, VkDevice device,
4185                                        VkEvent event, const VkAllocationCallbacks* pAllocator) {
4186     mImpl->vkDestroyEvent(snapshotTraceBegin, snapshotTraceBytes, pool, device, event, pAllocator);
4187 }
4188 #endif
4189 #ifdef VK_VERSION_1_0
vkGetEventStatus(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkEvent event)4190 void VkDecoderSnapshot::vkGetEventStatus(const uint8_t* snapshotTraceBegin,
4191                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
4192                                          VkResult input_result, VkDevice device, VkEvent event) {
4193     mImpl->vkGetEventStatus(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4194                             event);
4195 }
4196 #endif
4197 #ifdef VK_VERSION_1_0
vkSetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkEvent event)4198 void VkDecoderSnapshot::vkSetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4199                                    android::base::BumpPool* pool, VkResult input_result,
4200                                    VkDevice device, VkEvent event) {
4201     mImpl->vkSetEvent(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device, event);
4202 }
4203 #endif
4204 #ifdef VK_VERSION_1_0
vkResetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkEvent event)4205 void VkDecoderSnapshot::vkResetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4206                                      android::base::BumpPool* pool, VkResult input_result,
4207                                      VkDevice device, VkEvent event) {
4208     mImpl->vkResetEvent(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device, event);
4209 }
4210 #endif
4211 #ifdef VK_VERSION_1_0
vkCreateQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool)4212 void VkDecoderSnapshot::vkCreateQueryPool(const uint8_t* snapshotTraceBegin,
4213                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4214                                           VkResult input_result, VkDevice device,
4215                                           const VkQueryPoolCreateInfo* pCreateInfo,
4216                                           const VkAllocationCallbacks* pAllocator,
4217                                           VkQueryPool* pQueryPool) {
4218     mImpl->vkCreateQueryPool(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4219                              pCreateInfo, pAllocator, pQueryPool);
4220 }
4221 #endif
4222 #ifdef VK_VERSION_1_0
vkDestroyQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)4223 void VkDecoderSnapshot::vkDestroyQueryPool(const uint8_t* snapshotTraceBegin,
4224                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
4225                                            VkDevice device, VkQueryPool queryPool,
4226                                            const VkAllocationCallbacks* pAllocator) {
4227     mImpl->vkDestroyQueryPool(snapshotTraceBegin, snapshotTraceBytes, pool, device, queryPool,
4228                               pAllocator);
4229 }
4230 #endif
4231 #ifdef VK_VERSION_1_0
vkGetQueryPoolResults(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)4232 void VkDecoderSnapshot::vkGetQueryPoolResults(const uint8_t* snapshotTraceBegin,
4233                                               size_t snapshotTraceBytes,
4234                                               android::base::BumpPool* pool, VkResult input_result,
4235                                               VkDevice device, VkQueryPool queryPool,
4236                                               uint32_t firstQuery, uint32_t queryCount,
4237                                               size_t dataSize, void* pData, VkDeviceSize stride,
4238                                               VkQueryResultFlags flags) {
4239     mImpl->vkGetQueryPoolResults(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4240                                  queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
4241 }
4242 #endif
4243 #ifdef VK_VERSION_1_0
vkCreateBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)4244 void VkDecoderSnapshot::vkCreateBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4245                                        android::base::BumpPool* pool, VkResult input_result,
4246                                        VkDevice device, const VkBufferCreateInfo* pCreateInfo,
4247                                        const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
4248     mImpl->vkCreateBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4249                           pCreateInfo, pAllocator, pBuffer);
4250 }
4251 #endif
4252 #ifdef VK_VERSION_1_0
vkDestroyBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)4253 void VkDecoderSnapshot::vkDestroyBuffer(const uint8_t* snapshotTraceBegin,
4254                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
4255                                         VkDevice device, VkBuffer buffer,
4256                                         const VkAllocationCallbacks* pAllocator) {
4257     mImpl->vkDestroyBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, device, buffer,
4258                            pAllocator);
4259 }
4260 #endif
4261 #ifdef VK_VERSION_1_0
vkCreateBufferView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)4262 void VkDecoderSnapshot::vkCreateBufferView(const uint8_t* snapshotTraceBegin,
4263                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
4264                                            VkResult input_result, VkDevice device,
4265                                            const VkBufferViewCreateInfo* pCreateInfo,
4266                                            const VkAllocationCallbacks* pAllocator,
4267                                            VkBufferView* pView) {
4268     mImpl->vkCreateBufferView(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4269                               pCreateInfo, pAllocator, pView);
4270 }
4271 #endif
4272 #ifdef VK_VERSION_1_0
vkDestroyBufferView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)4273 void VkDecoderSnapshot::vkDestroyBufferView(const uint8_t* snapshotTraceBegin,
4274                                             size_t snapshotTraceBytes,
4275                                             android::base::BumpPool* pool, VkDevice device,
4276                                             VkBufferView bufferView,
4277                                             const VkAllocationCallbacks* pAllocator) {
4278     mImpl->vkDestroyBufferView(snapshotTraceBegin, snapshotTraceBytes, pool, device, bufferView,
4279                                pAllocator);
4280 }
4281 #endif
4282 #ifdef VK_VERSION_1_0
vkCreateImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage)4283 void VkDecoderSnapshot::vkCreateImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4284                                       android::base::BumpPool* pool, VkResult input_result,
4285                                       VkDevice device, const VkImageCreateInfo* pCreateInfo,
4286                                       const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
4287     mImpl->vkCreateImage(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4288                          pCreateInfo, pAllocator, pImage);
4289 }
4290 #endif
4291 #ifdef VK_VERSION_1_0
vkDestroyImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)4292 void VkDecoderSnapshot::vkDestroyImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4293                                        android::base::BumpPool* pool, VkDevice device,
4294                                        VkImage image, const VkAllocationCallbacks* pAllocator) {
4295     mImpl->vkDestroyImage(snapshotTraceBegin, snapshotTraceBytes, pool, device, image, pAllocator);
4296 }
4297 #endif
4298 #ifdef VK_VERSION_1_0
vkGetImageSubresourceLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)4299 void VkDecoderSnapshot::vkGetImageSubresourceLayout(const uint8_t* snapshotTraceBegin,
4300                                                     size_t snapshotTraceBytes,
4301                                                     android::base::BumpPool* pool, VkDevice device,
4302                                                     VkImage image,
4303                                                     const VkImageSubresource* pSubresource,
4304                                                     VkSubresourceLayout* pLayout) {
4305     mImpl->vkGetImageSubresourceLayout(snapshotTraceBegin, snapshotTraceBytes, pool, device, image,
4306                                        pSubresource, pLayout);
4307 }
4308 #endif
4309 #ifdef VK_VERSION_1_0
vkCreateImageView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView)4310 void VkDecoderSnapshot::vkCreateImageView(const uint8_t* snapshotTraceBegin,
4311                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4312                                           VkResult input_result, VkDevice device,
4313                                           const VkImageViewCreateInfo* pCreateInfo,
4314                                           const VkAllocationCallbacks* pAllocator,
4315                                           VkImageView* pView) {
4316     mImpl->vkCreateImageView(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4317                              pCreateInfo, pAllocator, pView);
4318 }
4319 #endif
4320 #ifdef VK_VERSION_1_0
vkDestroyImageView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)4321 void VkDecoderSnapshot::vkDestroyImageView(const uint8_t* snapshotTraceBegin,
4322                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
4323                                            VkDevice device, VkImageView imageView,
4324                                            const VkAllocationCallbacks* pAllocator) {
4325     mImpl->vkDestroyImageView(snapshotTraceBegin, snapshotTraceBytes, pool, device, imageView,
4326                               pAllocator);
4327 }
4328 #endif
4329 #ifdef VK_VERSION_1_0
vkCreateShaderModule(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)4330 void VkDecoderSnapshot::vkCreateShaderModule(
4331     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4332     VkResult input_result, VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo,
4333     const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) {
4334     mImpl->vkCreateShaderModule(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4335                                 pCreateInfo, pAllocator, pShaderModule);
4336 }
4337 #endif
4338 #ifdef VK_VERSION_1_0
vkDestroyShaderModule(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)4339 void VkDecoderSnapshot::vkDestroyShaderModule(const uint8_t* snapshotTraceBegin,
4340                                               size_t snapshotTraceBytes,
4341                                               android::base::BumpPool* pool, VkDevice device,
4342                                               VkShaderModule shaderModule,
4343                                               const VkAllocationCallbacks* pAllocator) {
4344     mImpl->vkDestroyShaderModule(snapshotTraceBegin, snapshotTraceBytes, pool, device, shaderModule,
4345                                  pAllocator);
4346 }
4347 #endif
4348 #ifdef VK_VERSION_1_0
vkCreatePipelineCache(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache)4349 void VkDecoderSnapshot::vkCreatePipelineCache(
4350     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4351     VkResult input_result, VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo,
4352     const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) {
4353     mImpl->vkCreatePipelineCache(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4354                                  pCreateInfo, pAllocator, pPipelineCache);
4355 }
4356 #endif
4357 #ifdef VK_VERSION_1_0
vkDestroyPipelineCache(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)4358 void VkDecoderSnapshot::vkDestroyPipelineCache(const uint8_t* snapshotTraceBegin,
4359                                                size_t snapshotTraceBytes,
4360                                                android::base::BumpPool* pool, VkDevice device,
4361                                                VkPipelineCache pipelineCache,
4362                                                const VkAllocationCallbacks* pAllocator) {
4363     mImpl->vkDestroyPipelineCache(snapshotTraceBegin, snapshotTraceBytes, pool, device,
4364                                   pipelineCache, pAllocator);
4365 }
4366 #endif
4367 #ifdef VK_VERSION_1_0
vkGetPipelineCacheData(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)4368 void VkDecoderSnapshot::vkGetPipelineCacheData(const uint8_t* snapshotTraceBegin,
4369                                                size_t snapshotTraceBytes,
4370                                                android::base::BumpPool* pool, VkResult input_result,
4371                                                VkDevice device, VkPipelineCache pipelineCache,
4372                                                size_t* pDataSize, void* pData) {
4373     mImpl->vkGetPipelineCacheData(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4374                                   device, pipelineCache, pDataSize, pData);
4375 }
4376 #endif
4377 #ifdef VK_VERSION_1_0
vkMergePipelineCaches(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)4378 void VkDecoderSnapshot::vkMergePipelineCaches(const uint8_t* snapshotTraceBegin,
4379                                               size_t snapshotTraceBytes,
4380                                               android::base::BumpPool* pool, VkResult input_result,
4381                                               VkDevice device, VkPipelineCache dstCache,
4382                                               uint32_t srcCacheCount,
4383                                               const VkPipelineCache* pSrcCaches) {
4384     mImpl->vkMergePipelineCaches(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4385                                  dstCache, srcCacheCount, pSrcCaches);
4386 }
4387 #endif
4388 #ifdef VK_VERSION_1_0
vkCreateGraphicsPipelines(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)4389 void VkDecoderSnapshot::vkCreateGraphicsPipelines(
4390     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4391     VkResult input_result, VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount,
4392     const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator,
4393     VkPipeline* pPipelines) {
4394     mImpl->vkCreateGraphicsPipelines(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4395                                      device, pipelineCache, createInfoCount, pCreateInfos,
4396                                      pAllocator, pPipelines);
4397 }
4398 #endif
4399 #ifdef VK_VERSION_1_0
vkCreateComputePipelines(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)4400 void VkDecoderSnapshot::vkCreateComputePipelines(
4401     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4402     VkResult input_result, VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount,
4403     const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator,
4404     VkPipeline* pPipelines) {
4405     mImpl->vkCreateComputePipelines(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4406                                     device, pipelineCache, createInfoCount, pCreateInfos,
4407                                     pAllocator, pPipelines);
4408 }
4409 #endif
4410 #ifdef VK_VERSION_1_0
vkDestroyPipeline(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)4411 void VkDecoderSnapshot::vkDestroyPipeline(const uint8_t* snapshotTraceBegin,
4412                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4413                                           VkDevice device, VkPipeline pipeline,
4414                                           const VkAllocationCallbacks* pAllocator) {
4415     mImpl->vkDestroyPipeline(snapshotTraceBegin, snapshotTraceBytes, pool, device, pipeline,
4416                              pAllocator);
4417 }
4418 #endif
4419 #ifdef VK_VERSION_1_0
vkCreatePipelineLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout)4420 void VkDecoderSnapshot::vkCreatePipelineLayout(
4421     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4422     VkResult input_result, VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo,
4423     const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) {
4424     mImpl->vkCreatePipelineLayout(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4425                                   device, pCreateInfo, pAllocator, pPipelineLayout);
4426 }
4427 #endif
4428 #ifdef VK_VERSION_1_0
vkDestroyPipelineLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)4429 void VkDecoderSnapshot::vkDestroyPipelineLayout(const uint8_t* snapshotTraceBegin,
4430                                                 size_t snapshotTraceBytes,
4431                                                 android::base::BumpPool* pool, VkDevice device,
4432                                                 VkPipelineLayout pipelineLayout,
4433                                                 const VkAllocationCallbacks* pAllocator) {
4434     mImpl->vkDestroyPipelineLayout(snapshotTraceBegin, snapshotTraceBytes, pool, device,
4435                                    pipelineLayout, pAllocator);
4436 }
4437 #endif
4438 #ifdef VK_VERSION_1_0
vkCreateSampler(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler)4439 void VkDecoderSnapshot::vkCreateSampler(const uint8_t* snapshotTraceBegin,
4440                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
4441                                         VkResult input_result, VkDevice device,
4442                                         const VkSamplerCreateInfo* pCreateInfo,
4443                                         const VkAllocationCallbacks* pAllocator,
4444                                         VkSampler* pSampler) {
4445     mImpl->vkCreateSampler(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4446                            pCreateInfo, pAllocator, pSampler);
4447 }
4448 #endif
4449 #ifdef VK_VERSION_1_0
vkDestroySampler(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)4450 void VkDecoderSnapshot::vkDestroySampler(const uint8_t* snapshotTraceBegin,
4451                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
4452                                          VkDevice device, VkSampler sampler,
4453                                          const VkAllocationCallbacks* pAllocator) {
4454     mImpl->vkDestroySampler(snapshotTraceBegin, snapshotTraceBytes, pool, device, sampler,
4455                             pAllocator);
4456 }
4457 #endif
4458 #ifdef VK_VERSION_1_0
vkCreateDescriptorSetLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)4459 void VkDecoderSnapshot::vkCreateDescriptorSetLayout(
4460     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4461     VkResult input_result, VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
4462     const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) {
4463     mImpl->vkCreateDescriptorSetLayout(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4464                                        device, pCreateInfo, pAllocator, pSetLayout);
4465 }
4466 #endif
4467 #ifdef VK_VERSION_1_0
vkDestroyDescriptorSetLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)4468 void VkDecoderSnapshot::vkDestroyDescriptorSetLayout(const uint8_t* snapshotTraceBegin,
4469                                                      size_t snapshotTraceBytes,
4470                                                      android::base::BumpPool* pool, VkDevice device,
4471                                                      VkDescriptorSetLayout descriptorSetLayout,
4472                                                      const VkAllocationCallbacks* pAllocator) {
4473     mImpl->vkDestroyDescriptorSetLayout(snapshotTraceBegin, snapshotTraceBytes, pool, device,
4474                                         descriptorSetLayout, pAllocator);
4475 }
4476 #endif
4477 #ifdef VK_VERSION_1_0
vkCreateDescriptorPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)4478 void VkDecoderSnapshot::vkCreateDescriptorPool(
4479     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4480     VkResult input_result, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo,
4481     const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) {
4482     mImpl->vkCreateDescriptorPool(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4483                                   device, pCreateInfo, pAllocator, pDescriptorPool);
4484 }
4485 #endif
4486 #ifdef VK_VERSION_1_0
vkDestroyDescriptorPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)4487 void VkDecoderSnapshot::vkDestroyDescriptorPool(const uint8_t* snapshotTraceBegin,
4488                                                 size_t snapshotTraceBytes,
4489                                                 android::base::BumpPool* pool, VkDevice device,
4490                                                 VkDescriptorPool descriptorPool,
4491                                                 const VkAllocationCallbacks* pAllocator) {
4492     mImpl->vkDestroyDescriptorPool(snapshotTraceBegin, snapshotTraceBytes, pool, device,
4493                                    descriptorPool, pAllocator);
4494 }
4495 #endif
4496 #ifdef VK_VERSION_1_0
vkResetDescriptorPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)4497 void VkDecoderSnapshot::vkResetDescriptorPool(const uint8_t* snapshotTraceBegin,
4498                                               size_t snapshotTraceBytes,
4499                                               android::base::BumpPool* pool, VkResult input_result,
4500                                               VkDevice device, VkDescriptorPool descriptorPool,
4501                                               VkDescriptorPoolResetFlags flags) {
4502     mImpl->vkResetDescriptorPool(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4503                                  descriptorPool, flags);
4504 }
4505 #endif
4506 #ifdef VK_VERSION_1_0
vkAllocateDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets)4507 void VkDecoderSnapshot::vkAllocateDescriptorSets(const uint8_t* snapshotTraceBegin,
4508                                                  size_t snapshotTraceBytes,
4509                                                  android::base::BumpPool* pool,
4510                                                  VkResult input_result, VkDevice device,
4511                                                  const VkDescriptorSetAllocateInfo* pAllocateInfo,
4512                                                  VkDescriptorSet* pDescriptorSets) {
4513     mImpl->vkAllocateDescriptorSets(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4514                                     device, pAllocateInfo, pDescriptorSets);
4515 }
4516 #endif
4517 #ifdef VK_VERSION_1_0
vkFreeDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets)4518 void VkDecoderSnapshot::vkFreeDescriptorSets(const uint8_t* snapshotTraceBegin,
4519                                              size_t snapshotTraceBytes,
4520                                              android::base::BumpPool* pool, VkResult input_result,
4521                                              VkDevice device, VkDescriptorPool descriptorPool,
4522                                              uint32_t descriptorSetCount,
4523                                              const VkDescriptorSet* pDescriptorSets) {
4524     mImpl->vkFreeDescriptorSets(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4525                                 descriptorPool, descriptorSetCount, pDescriptorSets);
4526 }
4527 #endif
4528 #ifdef VK_VERSION_1_0
vkUpdateDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies)4529 void VkDecoderSnapshot::vkUpdateDescriptorSets(
4530     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4531     VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites,
4532     uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) {
4533     mImpl->vkUpdateDescriptorSets(snapshotTraceBegin, snapshotTraceBytes, pool, device,
4534                                   descriptorWriteCount, pDescriptorWrites, descriptorCopyCount,
4535                                   pDescriptorCopies);
4536 }
4537 #endif
4538 #ifdef VK_VERSION_1_0
vkCreateFramebuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer)4539 void VkDecoderSnapshot::vkCreateFramebuffer(
4540     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4541     VkResult input_result, VkDevice device, const VkFramebufferCreateInfo* pCreateInfo,
4542     const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) {
4543     mImpl->vkCreateFramebuffer(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4544                                pCreateInfo, pAllocator, pFramebuffer);
4545 }
4546 #endif
4547 #ifdef VK_VERSION_1_0
vkDestroyFramebuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)4548 void VkDecoderSnapshot::vkDestroyFramebuffer(const uint8_t* snapshotTraceBegin,
4549                                              size_t snapshotTraceBytes,
4550                                              android::base::BumpPool* pool, VkDevice device,
4551                                              VkFramebuffer framebuffer,
4552                                              const VkAllocationCallbacks* pAllocator) {
4553     mImpl->vkDestroyFramebuffer(snapshotTraceBegin, snapshotTraceBytes, pool, device, framebuffer,
4554                                 pAllocator);
4555 }
4556 #endif
4557 #ifdef VK_VERSION_1_0
vkCreateRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)4558 void VkDecoderSnapshot::vkCreateRenderPass(const uint8_t* snapshotTraceBegin,
4559                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
4560                                            VkResult input_result, VkDevice device,
4561                                            const VkRenderPassCreateInfo* pCreateInfo,
4562                                            const VkAllocationCallbacks* pAllocator,
4563                                            VkRenderPass* pRenderPass) {
4564     mImpl->vkCreateRenderPass(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4565                               pCreateInfo, pAllocator, pRenderPass);
4566 }
4567 #endif
4568 #ifdef VK_VERSION_1_0
vkDestroyRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)4569 void VkDecoderSnapshot::vkDestroyRenderPass(const uint8_t* snapshotTraceBegin,
4570                                             size_t snapshotTraceBytes,
4571                                             android::base::BumpPool* pool, VkDevice device,
4572                                             VkRenderPass renderPass,
4573                                             const VkAllocationCallbacks* pAllocator) {
4574     mImpl->vkDestroyRenderPass(snapshotTraceBegin, snapshotTraceBytes, pool, device, renderPass,
4575                                pAllocator);
4576 }
4577 #endif
4578 #ifdef VK_VERSION_1_0
vkGetRenderAreaGranularity(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)4579 void VkDecoderSnapshot::vkGetRenderAreaGranularity(const uint8_t* snapshotTraceBegin,
4580                                                    size_t snapshotTraceBytes,
4581                                                    android::base::BumpPool* pool, VkDevice device,
4582                                                    VkRenderPass renderPass,
4583                                                    VkExtent2D* pGranularity) {
4584     mImpl->vkGetRenderAreaGranularity(snapshotTraceBegin, snapshotTraceBytes, pool, device,
4585                                       renderPass, pGranularity);
4586 }
4587 #endif
4588 #ifdef VK_VERSION_1_0
vkCreateCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)4589 void VkDecoderSnapshot::vkCreateCommandPool(
4590     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4591     VkResult input_result, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo,
4592     const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) {
4593     mImpl->vkCreateCommandPool(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4594                                pCreateInfo, pAllocator, pCommandPool);
4595 }
4596 #endif
4597 #ifdef VK_VERSION_1_0
vkDestroyCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)4598 void VkDecoderSnapshot::vkDestroyCommandPool(const uint8_t* snapshotTraceBegin,
4599                                              size_t snapshotTraceBytes,
4600                                              android::base::BumpPool* pool, VkDevice device,
4601                                              VkCommandPool commandPool,
4602                                              const VkAllocationCallbacks* pAllocator) {
4603     mImpl->vkDestroyCommandPool(snapshotTraceBegin, snapshotTraceBytes, pool, device, commandPool,
4604                                 pAllocator);
4605 }
4606 #endif
4607 #ifdef VK_VERSION_1_0
vkResetCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)4608 void VkDecoderSnapshot::vkResetCommandPool(const uint8_t* snapshotTraceBegin,
4609                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
4610                                            VkResult input_result, VkDevice device,
4611                                            VkCommandPool commandPool,
4612                                            VkCommandPoolResetFlags flags) {
4613     mImpl->vkResetCommandPool(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
4614                               commandPool, flags);
4615 }
4616 #endif
4617 #ifdef VK_VERSION_1_0
vkAllocateCommandBuffers(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers)4618 void VkDecoderSnapshot::vkAllocateCommandBuffers(const uint8_t* snapshotTraceBegin,
4619                                                  size_t snapshotTraceBytes,
4620                                                  android::base::BumpPool* pool,
4621                                                  VkResult input_result, VkDevice device,
4622                                                  const VkCommandBufferAllocateInfo* pAllocateInfo,
4623                                                  VkCommandBuffer* pCommandBuffers) {
4624     mImpl->vkAllocateCommandBuffers(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4625                                     device, pAllocateInfo, pCommandBuffers);
4626 }
4627 #endif
4628 #ifdef VK_VERSION_1_0
vkFreeCommandBuffers(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)4629 void VkDecoderSnapshot::vkFreeCommandBuffers(const uint8_t* snapshotTraceBegin,
4630                                              size_t snapshotTraceBytes,
4631                                              android::base::BumpPool* pool, VkDevice device,
4632                                              VkCommandPool commandPool, uint32_t commandBufferCount,
4633                                              const VkCommandBuffer* pCommandBuffers) {
4634     mImpl->vkFreeCommandBuffers(snapshotTraceBegin, snapshotTraceBytes, pool, device, commandPool,
4635                                 commandBufferCount, pCommandBuffers);
4636 }
4637 #endif
4638 #ifdef VK_VERSION_1_0
vkBeginCommandBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)4639 void VkDecoderSnapshot::vkBeginCommandBuffer(const uint8_t* snapshotTraceBegin,
4640                                              size_t snapshotTraceBytes,
4641                                              android::base::BumpPool* pool, VkResult input_result,
4642                                              VkCommandBuffer commandBuffer,
4643                                              const VkCommandBufferBeginInfo* pBeginInfo) {
4644     mImpl->vkBeginCommandBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4645                                 commandBuffer, pBeginInfo);
4646 }
4647 #endif
4648 #ifdef VK_VERSION_1_0
vkEndCommandBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkCommandBuffer commandBuffer)4649 void VkDecoderSnapshot::vkEndCommandBuffer(const uint8_t* snapshotTraceBegin,
4650                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
4651                                            VkResult input_result, VkCommandBuffer commandBuffer) {
4652     mImpl->vkEndCommandBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4653                               commandBuffer);
4654 }
4655 #endif
4656 #ifdef VK_VERSION_1_0
vkResetCommandBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)4657 void VkDecoderSnapshot::vkResetCommandBuffer(const uint8_t* snapshotTraceBegin,
4658                                              size_t snapshotTraceBytes,
4659                                              android::base::BumpPool* pool, VkResult input_result,
4660                                              VkCommandBuffer commandBuffer,
4661                                              VkCommandBufferResetFlags flags) {
4662     mImpl->vkResetCommandBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
4663                                 commandBuffer, flags);
4664 }
4665 #endif
4666 #ifdef VK_VERSION_1_0
vkCmdBindPipeline(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)4667 void VkDecoderSnapshot::vkCmdBindPipeline(const uint8_t* snapshotTraceBegin,
4668                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4669                                           VkCommandBuffer commandBuffer,
4670                                           VkPipelineBindPoint pipelineBindPoint,
4671                                           VkPipeline pipeline) {
4672     mImpl->vkCmdBindPipeline(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4673                              pipelineBindPoint, pipeline);
4674 }
4675 #endif
4676 #ifdef VK_VERSION_1_0
vkCmdSetViewport(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)4677 void VkDecoderSnapshot::vkCmdSetViewport(const uint8_t* snapshotTraceBegin,
4678                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
4679                                          VkCommandBuffer commandBuffer, uint32_t firstViewport,
4680                                          uint32_t viewportCount, const VkViewport* pViewports) {
4681     mImpl->vkCmdSetViewport(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4682                             firstViewport, viewportCount, pViewports);
4683 }
4684 #endif
4685 #ifdef VK_VERSION_1_0
vkCmdSetScissor(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)4686 void VkDecoderSnapshot::vkCmdSetScissor(const uint8_t* snapshotTraceBegin,
4687                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
4688                                         VkCommandBuffer commandBuffer, uint32_t firstScissor,
4689                                         uint32_t scissorCount, const VkRect2D* pScissors) {
4690     mImpl->vkCmdSetScissor(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4691                            firstScissor, scissorCount, pScissors);
4692 }
4693 #endif
4694 #ifdef VK_VERSION_1_0
vkCmdSetLineWidth(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,float lineWidth)4695 void VkDecoderSnapshot::vkCmdSetLineWidth(const uint8_t* snapshotTraceBegin,
4696                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4697                                           VkCommandBuffer commandBuffer, float lineWidth) {
4698     mImpl->vkCmdSetLineWidth(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4699                              lineWidth);
4700 }
4701 #endif
4702 #ifdef VK_VERSION_1_0
vkCmdSetDepthBias(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)4703 void VkDecoderSnapshot::vkCmdSetDepthBias(const uint8_t* snapshotTraceBegin,
4704                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4705                                           VkCommandBuffer commandBuffer,
4706                                           float depthBiasConstantFactor, float depthBiasClamp,
4707                                           float depthBiasSlopeFactor) {
4708     mImpl->vkCmdSetDepthBias(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4709                              depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
4710 }
4711 #endif
4712 #ifdef VK_VERSION_1_0
vkCmdSetBlendConstants(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const float blendConstants[4])4713 void VkDecoderSnapshot::vkCmdSetBlendConstants(const uint8_t* snapshotTraceBegin,
4714                                                size_t snapshotTraceBytes,
4715                                                android::base::BumpPool* pool,
4716                                                VkCommandBuffer commandBuffer,
4717                                                const float blendConstants[4]) {
4718     mImpl->vkCmdSetBlendConstants(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4719                                   blendConstants);
4720 }
4721 #endif
4722 #ifdef VK_VERSION_1_0
vkCmdSetDepthBounds(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)4723 void VkDecoderSnapshot::vkCmdSetDepthBounds(const uint8_t* snapshotTraceBegin,
4724                                             size_t snapshotTraceBytes,
4725                                             android::base::BumpPool* pool,
4726                                             VkCommandBuffer commandBuffer, float minDepthBounds,
4727                                             float maxDepthBounds) {
4728     mImpl->vkCmdSetDepthBounds(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4729                                minDepthBounds, maxDepthBounds);
4730 }
4731 #endif
4732 #ifdef VK_VERSION_1_0
vkCmdSetStencilCompareMask(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)4733 void VkDecoderSnapshot::vkCmdSetStencilCompareMask(
4734     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4735     VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask) {
4736     mImpl->vkCmdSetStencilCompareMask(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4737                                       faceMask, compareMask);
4738 }
4739 #endif
4740 #ifdef VK_VERSION_1_0
vkCmdSetStencilWriteMask(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)4741 void VkDecoderSnapshot::vkCmdSetStencilWriteMask(const uint8_t* snapshotTraceBegin,
4742                                                  size_t snapshotTraceBytes,
4743                                                  android::base::BumpPool* pool,
4744                                                  VkCommandBuffer commandBuffer,
4745                                                  VkStencilFaceFlags faceMask, uint32_t writeMask) {
4746     mImpl->vkCmdSetStencilWriteMask(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4747                                     faceMask, writeMask);
4748 }
4749 #endif
4750 #ifdef VK_VERSION_1_0
vkCmdSetStencilReference(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)4751 void VkDecoderSnapshot::vkCmdSetStencilReference(const uint8_t* snapshotTraceBegin,
4752                                                  size_t snapshotTraceBytes,
4753                                                  android::base::BumpPool* pool,
4754                                                  VkCommandBuffer commandBuffer,
4755                                                  VkStencilFaceFlags faceMask, uint32_t reference) {
4756     mImpl->vkCmdSetStencilReference(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4757                                     faceMask, reference);
4758 }
4759 #endif
4760 #ifdef VK_VERSION_1_0
vkCmdBindDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)4761 void VkDecoderSnapshot::vkCmdBindDescriptorSets(
4762     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4763     VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout,
4764     uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets,
4765     uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) {
4766     mImpl->vkCmdBindDescriptorSets(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4767                                    pipelineBindPoint, layout, firstSet, descriptorSetCount,
4768                                    pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
4769 }
4770 #endif
4771 #ifdef VK_VERSION_1_0
vkCmdBindIndexBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)4772 void VkDecoderSnapshot::vkCmdBindIndexBuffer(const uint8_t* snapshotTraceBegin,
4773                                              size_t snapshotTraceBytes,
4774                                              android::base::BumpPool* pool,
4775                                              VkCommandBuffer commandBuffer, VkBuffer buffer,
4776                                              VkDeviceSize offset, VkIndexType indexType) {
4777     mImpl->vkCmdBindIndexBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, buffer,
4778                                 offset, indexType);
4779 }
4780 #endif
4781 #ifdef VK_VERSION_1_0
vkCmdBindVertexBuffers(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)4782 void VkDecoderSnapshot::vkCmdBindVertexBuffers(const uint8_t* snapshotTraceBegin,
4783                                                size_t snapshotTraceBytes,
4784                                                android::base::BumpPool* pool,
4785                                                VkCommandBuffer commandBuffer, uint32_t firstBinding,
4786                                                uint32_t bindingCount, const VkBuffer* pBuffers,
4787                                                const VkDeviceSize* pOffsets) {
4788     mImpl->vkCmdBindVertexBuffers(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4789                                   firstBinding, bindingCount, pBuffers, pOffsets);
4790 }
4791 #endif
4792 #ifdef VK_VERSION_1_0
vkCmdDraw(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)4793 void VkDecoderSnapshot::vkCmdDraw(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4794                                   android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
4795                                   uint32_t vertexCount, uint32_t instanceCount,
4796                                   uint32_t firstVertex, uint32_t firstInstance) {
4797     mImpl->vkCmdDraw(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, vertexCount,
4798                      instanceCount, firstVertex, firstInstance);
4799 }
4800 #endif
4801 #ifdef VK_VERSION_1_0
vkCmdDrawIndexed(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)4802 void VkDecoderSnapshot::vkCmdDrawIndexed(const uint8_t* snapshotTraceBegin,
4803                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
4804                                          VkCommandBuffer commandBuffer, uint32_t indexCount,
4805                                          uint32_t instanceCount, uint32_t firstIndex,
4806                                          int32_t vertexOffset, uint32_t firstInstance) {
4807     mImpl->vkCmdDrawIndexed(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, indexCount,
4808                             instanceCount, firstIndex, vertexOffset, firstInstance);
4809 }
4810 #endif
4811 #ifdef VK_VERSION_1_0
vkCmdDrawIndirect(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)4812 void VkDecoderSnapshot::vkCmdDrawIndirect(const uint8_t* snapshotTraceBegin,
4813                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4814                                           VkCommandBuffer commandBuffer, VkBuffer buffer,
4815                                           VkDeviceSize offset, uint32_t drawCount,
4816                                           uint32_t stride) {
4817     mImpl->vkCmdDrawIndirect(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, buffer,
4818                              offset, drawCount, stride);
4819 }
4820 #endif
4821 #ifdef VK_VERSION_1_0
vkCmdDrawIndexedIndirect(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)4822 void VkDecoderSnapshot::vkCmdDrawIndexedIndirect(const uint8_t* snapshotTraceBegin,
4823                                                  size_t snapshotTraceBytes,
4824                                                  android::base::BumpPool* pool,
4825                                                  VkCommandBuffer commandBuffer, VkBuffer buffer,
4826                                                  VkDeviceSize offset, uint32_t drawCount,
4827                                                  uint32_t stride) {
4828     mImpl->vkCmdDrawIndexedIndirect(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4829                                     buffer, offset, drawCount, stride);
4830 }
4831 #endif
4832 #ifdef VK_VERSION_1_0
vkCmdDispatch(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)4833 void VkDecoderSnapshot::vkCmdDispatch(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4834                                       android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
4835                                       uint32_t groupCountX, uint32_t groupCountY,
4836                                       uint32_t groupCountZ) {
4837     mImpl->vkCmdDispatch(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, groupCountX,
4838                          groupCountY, groupCountZ);
4839 }
4840 #endif
4841 #ifdef VK_VERSION_1_0
vkCmdDispatchIndirect(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)4842 void VkDecoderSnapshot::vkCmdDispatchIndirect(const uint8_t* snapshotTraceBegin,
4843                                               size_t snapshotTraceBytes,
4844                                               android::base::BumpPool* pool,
4845                                               VkCommandBuffer commandBuffer, VkBuffer buffer,
4846                                               VkDeviceSize offset) {
4847     mImpl->vkCmdDispatchIndirect(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4848                                  buffer, offset);
4849 }
4850 #endif
4851 #ifdef VK_VERSION_1_0
vkCmdCopyBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)4852 void VkDecoderSnapshot::vkCmdCopyBuffer(const uint8_t* snapshotTraceBegin,
4853                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
4854                                         VkCommandBuffer commandBuffer, VkBuffer srcBuffer,
4855                                         VkBuffer dstBuffer, uint32_t regionCount,
4856                                         const VkBufferCopy* pRegions) {
4857     mImpl->vkCmdCopyBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, srcBuffer,
4858                            dstBuffer, regionCount, pRegions);
4859 }
4860 #endif
4861 #ifdef VK_VERSION_1_0
vkCmdCopyImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)4862 void VkDecoderSnapshot::vkCmdCopyImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4863                                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
4864                                        VkImage srcImage, VkImageLayout srcImageLayout,
4865                                        VkImage dstImage, VkImageLayout dstImageLayout,
4866                                        uint32_t regionCount, const VkImageCopy* pRegions) {
4867     mImpl->vkCmdCopyImage(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, srcImage,
4868                           srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
4869 }
4870 #endif
4871 #ifdef VK_VERSION_1_0
vkCmdBlitImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)4872 void VkDecoderSnapshot::vkCmdBlitImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4873                                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
4874                                        VkImage srcImage, VkImageLayout srcImageLayout,
4875                                        VkImage dstImage, VkImageLayout dstImageLayout,
4876                                        uint32_t regionCount, const VkImageBlit* pRegions,
4877                                        VkFilter filter) {
4878     mImpl->vkCmdBlitImage(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, srcImage,
4879                           srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
4880 }
4881 #endif
4882 #ifdef VK_VERSION_1_0
vkCmdCopyBufferToImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)4883 void VkDecoderSnapshot::vkCmdCopyBufferToImage(
4884     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4885     VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage,
4886     VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
4887     mImpl->vkCmdCopyBufferToImage(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4888                                   srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
4889 }
4890 #endif
4891 #ifdef VK_VERSION_1_0
vkCmdCopyImageToBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)4892 void VkDecoderSnapshot::vkCmdCopyImageToBuffer(
4893     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4894     VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout,
4895     VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions) {
4896     mImpl->vkCmdCopyImageToBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4897                                   srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
4898 }
4899 #endif
4900 #ifdef VK_VERSION_1_0
vkCmdUpdateBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)4901 void VkDecoderSnapshot::vkCmdUpdateBuffer(const uint8_t* snapshotTraceBegin,
4902                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4903                                           VkCommandBuffer commandBuffer, VkBuffer dstBuffer,
4904                                           VkDeviceSize dstOffset, VkDeviceSize dataSize,
4905                                           const void* pData) {
4906     mImpl->vkCmdUpdateBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, dstBuffer,
4907                              dstOffset, dataSize, pData);
4908 }
4909 #endif
4910 #ifdef VK_VERSION_1_0
vkCmdFillBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)4911 void VkDecoderSnapshot::vkCmdFillBuffer(const uint8_t* snapshotTraceBegin,
4912                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
4913                                         VkCommandBuffer commandBuffer, VkBuffer dstBuffer,
4914                                         VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
4915     mImpl->vkCmdFillBuffer(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, dstBuffer,
4916                            dstOffset, size, data);
4917 }
4918 #endif
4919 #ifdef VK_VERSION_1_0
vkCmdClearColorImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)4920 void VkDecoderSnapshot::vkCmdClearColorImage(
4921     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4922     VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout,
4923     const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges) {
4924     mImpl->vkCmdClearColorImage(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, image,
4925                                 imageLayout, pColor, rangeCount, pRanges);
4926 }
4927 #endif
4928 #ifdef VK_VERSION_1_0
vkCmdClearDepthStencilImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)4929 void VkDecoderSnapshot::vkCmdClearDepthStencilImage(
4930     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4931     VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout,
4932     const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount,
4933     const VkImageSubresourceRange* pRanges) {
4934     mImpl->vkCmdClearDepthStencilImage(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4935                                        image, imageLayout, pDepthStencil, rangeCount, pRanges);
4936 }
4937 #endif
4938 #ifdef VK_VERSION_1_0
vkCmdClearAttachments(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)4939 void VkDecoderSnapshot::vkCmdClearAttachments(
4940     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4941     VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments,
4942     uint32_t rectCount, const VkClearRect* pRects) {
4943     mImpl->vkCmdClearAttachments(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4944                                  attachmentCount, pAttachments, rectCount, pRects);
4945 }
4946 #endif
4947 #ifdef VK_VERSION_1_0
vkCmdResolveImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)4948 void VkDecoderSnapshot::vkCmdResolveImage(const uint8_t* snapshotTraceBegin,
4949                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
4950                                           VkCommandBuffer commandBuffer, VkImage srcImage,
4951                                           VkImageLayout srcImageLayout, VkImage dstImage,
4952                                           VkImageLayout dstImageLayout, uint32_t regionCount,
4953                                           const VkImageResolve* pRegions) {
4954     mImpl->vkCmdResolveImage(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, srcImage,
4955                              srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
4956 }
4957 #endif
4958 #ifdef VK_VERSION_1_0
vkCmdSetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)4959 void VkDecoderSnapshot::vkCmdSetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
4960                                       android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
4961                                       VkEvent event, VkPipelineStageFlags stageMask) {
4962     mImpl->vkCmdSetEvent(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, event,
4963                          stageMask);
4964 }
4965 #endif
4966 #ifdef VK_VERSION_1_0
vkCmdResetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)4967 void VkDecoderSnapshot::vkCmdResetEvent(const uint8_t* snapshotTraceBegin,
4968                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
4969                                         VkCommandBuffer commandBuffer, VkEvent event,
4970                                         VkPipelineStageFlags stageMask) {
4971     mImpl->vkCmdResetEvent(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, event,
4972                            stageMask);
4973 }
4974 #endif
4975 #ifdef VK_VERSION_1_0
vkCmdWaitEvents(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)4976 void VkDecoderSnapshot::vkCmdWaitEvents(
4977     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4978     VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents,
4979     VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask,
4980     uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
4981     uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers,
4982     uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
4983     mImpl->vkCmdWaitEvents(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, eventCount,
4984                            pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers,
4985                            bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount,
4986                            pImageMemoryBarriers);
4987 }
4988 #endif
4989 #ifdef VK_VERSION_1_0
vkCmdPipelineBarrier(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,VkDependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)4990 void VkDecoderSnapshot::vkCmdPipelineBarrier(
4991     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
4992     VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask,
4993     VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags,
4994     uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
4995     uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers,
4996     uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
4997     mImpl->vkCmdPipelineBarrier(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
4998                                 srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount,
4999                                 pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers,
5000                                 imageMemoryBarrierCount, pImageMemoryBarriers);
5001 }
5002 #endif
5003 #ifdef VK_VERSION_1_0
vkCmdBeginQuery(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)5004 void VkDecoderSnapshot::vkCmdBeginQuery(const uint8_t* snapshotTraceBegin,
5005                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
5006                                         VkCommandBuffer commandBuffer, VkQueryPool queryPool,
5007                                         uint32_t query, VkQueryControlFlags flags) {
5008     mImpl->vkCmdBeginQuery(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, queryPool,
5009                            query, flags);
5010 }
5011 #endif
5012 #ifdef VK_VERSION_1_0
vkCmdEndQuery(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)5013 void VkDecoderSnapshot::vkCmdEndQuery(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
5014                                       android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
5015                                       VkQueryPool queryPool, uint32_t query) {
5016     mImpl->vkCmdEndQuery(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, queryPool,
5017                          query);
5018 }
5019 #endif
5020 #ifdef VK_VERSION_1_0
vkCmdResetQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)5021 void VkDecoderSnapshot::vkCmdResetQueryPool(const uint8_t* snapshotTraceBegin,
5022                                             size_t snapshotTraceBytes,
5023                                             android::base::BumpPool* pool,
5024                                             VkCommandBuffer commandBuffer, VkQueryPool queryPool,
5025                                             uint32_t firstQuery, uint32_t queryCount) {
5026     mImpl->vkCmdResetQueryPool(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5027                                queryPool, firstQuery, queryCount);
5028 }
5029 #endif
5030 #ifdef VK_VERSION_1_0
vkCmdWriteTimestamp(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)5031 void VkDecoderSnapshot::vkCmdWriteTimestamp(const uint8_t* snapshotTraceBegin,
5032                                             size_t snapshotTraceBytes,
5033                                             android::base::BumpPool* pool,
5034                                             VkCommandBuffer commandBuffer,
5035                                             VkPipelineStageFlagBits pipelineStage,
5036                                             VkQueryPool queryPool, uint32_t query) {
5037     mImpl->vkCmdWriteTimestamp(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5038                                pipelineStage, queryPool, query);
5039 }
5040 #endif
5041 #ifdef VK_VERSION_1_0
vkCmdCopyQueryPoolResults(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)5042 void VkDecoderSnapshot::vkCmdCopyQueryPoolResults(
5043     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5044     VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount,
5045     VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) {
5046     mImpl->vkCmdCopyQueryPoolResults(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5047                                      queryPool, firstQuery, queryCount, dstBuffer, dstOffset,
5048                                      stride, flags);
5049 }
5050 #endif
5051 #ifdef VK_VERSION_1_0
vkCmdPushConstants(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)5052 void VkDecoderSnapshot::vkCmdPushConstants(const uint8_t* snapshotTraceBegin,
5053                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
5054                                            VkCommandBuffer commandBuffer, VkPipelineLayout layout,
5055                                            VkShaderStageFlags stageFlags, uint32_t offset,
5056                                            uint32_t size, const void* pValues) {
5057     mImpl->vkCmdPushConstants(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, layout,
5058                               stageFlags, offset, size, pValues);
5059 }
5060 #endif
5061 #ifdef VK_VERSION_1_0
vkCmdBeginRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)5062 void VkDecoderSnapshot::vkCmdBeginRenderPass(const uint8_t* snapshotTraceBegin,
5063                                              size_t snapshotTraceBytes,
5064                                              android::base::BumpPool* pool,
5065                                              VkCommandBuffer commandBuffer,
5066                                              const VkRenderPassBeginInfo* pRenderPassBegin,
5067                                              VkSubpassContents contents) {
5068     mImpl->vkCmdBeginRenderPass(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5069                                 pRenderPassBegin, contents);
5070 }
5071 #endif
5072 #ifdef VK_VERSION_1_0
vkCmdNextSubpass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkSubpassContents contents)5073 void VkDecoderSnapshot::vkCmdNextSubpass(const uint8_t* snapshotTraceBegin,
5074                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
5075                                          VkCommandBuffer commandBuffer,
5076                                          VkSubpassContents contents) {
5077     mImpl->vkCmdNextSubpass(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, contents);
5078 }
5079 #endif
5080 #ifdef VK_VERSION_1_0
vkCmdEndRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)5081 void VkDecoderSnapshot::vkCmdEndRenderPass(const uint8_t* snapshotTraceBegin,
5082                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
5083                                            VkCommandBuffer commandBuffer) {
5084     mImpl->vkCmdEndRenderPass(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer);
5085 }
5086 #endif
5087 #ifdef VK_VERSION_1_0
vkCmdExecuteCommands(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)5088 void VkDecoderSnapshot::vkCmdExecuteCommands(const uint8_t* snapshotTraceBegin,
5089                                              size_t snapshotTraceBytes,
5090                                              android::base::BumpPool* pool,
5091                                              VkCommandBuffer commandBuffer,
5092                                              uint32_t commandBufferCount,
5093                                              const VkCommandBuffer* pCommandBuffers) {
5094     mImpl->vkCmdExecuteCommands(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5095                                 commandBufferCount, pCommandBuffers);
5096 }
5097 #endif
5098 #ifdef VK_VERSION_1_1
vkEnumerateInstanceVersion(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,uint32_t * pApiVersion)5099 void VkDecoderSnapshot::vkEnumerateInstanceVersion(const uint8_t* snapshotTraceBegin,
5100                                                    size_t snapshotTraceBytes,
5101                                                    android::base::BumpPool* pool,
5102                                                    VkResult input_result, uint32_t* pApiVersion) {
5103     mImpl->vkEnumerateInstanceVersion(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
5104                                       pApiVersion);
5105 }
5106 #endif
5107 #ifdef VK_VERSION_1_1
vkBindBufferMemory2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)5108 void VkDecoderSnapshot::vkBindBufferMemory2(const uint8_t* snapshotTraceBegin,
5109                                             size_t snapshotTraceBytes,
5110                                             android::base::BumpPool* pool, VkResult input_result,
5111                                             VkDevice device, uint32_t bindInfoCount,
5112                                             const VkBindBufferMemoryInfo* pBindInfos) {
5113     mImpl->vkBindBufferMemory2(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
5114                                bindInfoCount, pBindInfos);
5115 }
5116 #endif
5117 #ifdef VK_VERSION_1_1
vkBindImageMemory2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)5118 void VkDecoderSnapshot::vkBindImageMemory2(const uint8_t* snapshotTraceBegin,
5119                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
5120                                            VkResult input_result, VkDevice device,
5121                                            uint32_t bindInfoCount,
5122                                            const VkBindImageMemoryInfo* pBindInfos) {
5123     mImpl->vkBindImageMemory2(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
5124                               bindInfoCount, pBindInfos);
5125 }
5126 #endif
5127 #ifdef VK_VERSION_1_1
vkGetDeviceGroupPeerMemoryFeatures(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)5128 void VkDecoderSnapshot::vkGetDeviceGroupPeerMemoryFeatures(
5129     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5130     VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex,
5131     VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
5132     mImpl->vkGetDeviceGroupPeerMemoryFeatures(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5133                                               heapIndex, localDeviceIndex, remoteDeviceIndex,
5134                                               pPeerMemoryFeatures);
5135 }
5136 #endif
5137 #ifdef VK_VERSION_1_1
vkCmdSetDeviceMask(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t deviceMask)5138 void VkDecoderSnapshot::vkCmdSetDeviceMask(const uint8_t* snapshotTraceBegin,
5139                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
5140                                            VkCommandBuffer commandBuffer, uint32_t deviceMask) {
5141     mImpl->vkCmdSetDeviceMask(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5142                               deviceMask);
5143 }
5144 #endif
5145 #ifdef VK_VERSION_1_1
vkCmdDispatchBase(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)5146 void VkDecoderSnapshot::vkCmdDispatchBase(const uint8_t* snapshotTraceBegin,
5147                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
5148                                           VkCommandBuffer commandBuffer, uint32_t baseGroupX,
5149                                           uint32_t baseGroupY, uint32_t baseGroupZ,
5150                                           uint32_t groupCountX, uint32_t groupCountY,
5151                                           uint32_t groupCountZ) {
5152     mImpl->vkCmdDispatchBase(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5153                              baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY,
5154                              groupCountZ);
5155 }
5156 #endif
5157 #ifdef VK_VERSION_1_1
vkEnumeratePhysicalDeviceGroups(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)5158 void VkDecoderSnapshot::vkEnumeratePhysicalDeviceGroups(
5159     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5160     VkResult input_result, VkInstance instance, uint32_t* pPhysicalDeviceGroupCount,
5161     VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
5162     mImpl->vkEnumeratePhysicalDeviceGroups(snapshotTraceBegin, snapshotTraceBytes, pool,
5163                                            input_result, instance, pPhysicalDeviceGroupCount,
5164                                            pPhysicalDeviceGroupProperties);
5165 }
5166 #endif
5167 #ifdef VK_VERSION_1_1
vkGetImageMemoryRequirements2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)5168 void VkDecoderSnapshot::vkGetImageMemoryRequirements2(const uint8_t* snapshotTraceBegin,
5169                                                       size_t snapshotTraceBytes,
5170                                                       android::base::BumpPool* pool,
5171                                                       VkDevice device,
5172                                                       const VkImageMemoryRequirementsInfo2* pInfo,
5173                                                       VkMemoryRequirements2* pMemoryRequirements) {
5174     mImpl->vkGetImageMemoryRequirements2(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5175                                          pInfo, pMemoryRequirements);
5176 }
5177 #endif
5178 #ifdef VK_VERSION_1_1
vkGetBufferMemoryRequirements2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)5179 void VkDecoderSnapshot::vkGetBufferMemoryRequirements2(const uint8_t* snapshotTraceBegin,
5180                                                        size_t snapshotTraceBytes,
5181                                                        android::base::BumpPool* pool,
5182                                                        VkDevice device,
5183                                                        const VkBufferMemoryRequirementsInfo2* pInfo,
5184                                                        VkMemoryRequirements2* pMemoryRequirements) {
5185     mImpl->vkGetBufferMemoryRequirements2(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5186                                           pInfo, pMemoryRequirements);
5187 }
5188 #endif
5189 #ifdef VK_VERSION_1_1
vkGetImageSparseMemoryRequirements2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)5190 void VkDecoderSnapshot::vkGetImageSparseMemoryRequirements2(
5191     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5192     VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
5193     uint32_t* pSparseMemoryRequirementCount,
5194     VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
5195     mImpl->vkGetImageSparseMemoryRequirements2(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5196                                                pInfo, pSparseMemoryRequirementCount,
5197                                                pSparseMemoryRequirements);
5198 }
5199 #endif
5200 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceFeatures2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)5201 void VkDecoderSnapshot::vkGetPhysicalDeviceFeatures2(const uint8_t* snapshotTraceBegin,
5202                                                      size_t snapshotTraceBytes,
5203                                                      android::base::BumpPool* pool,
5204                                                      VkPhysicalDevice physicalDevice,
5205                                                      VkPhysicalDeviceFeatures2* pFeatures) {
5206     mImpl->vkGetPhysicalDeviceFeatures2(snapshotTraceBegin, snapshotTraceBytes, pool,
5207                                         physicalDevice, pFeatures);
5208 }
5209 #endif
5210 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)5211 void VkDecoderSnapshot::vkGetPhysicalDeviceProperties2(const uint8_t* snapshotTraceBegin,
5212                                                        size_t snapshotTraceBytes,
5213                                                        android::base::BumpPool* pool,
5214                                                        VkPhysicalDevice physicalDevice,
5215                                                        VkPhysicalDeviceProperties2* pProperties) {
5216     mImpl->vkGetPhysicalDeviceProperties2(snapshotTraceBegin, snapshotTraceBytes, pool,
5217                                           physicalDevice, pProperties);
5218 }
5219 #endif
5220 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceFormatProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)5221 void VkDecoderSnapshot::vkGetPhysicalDeviceFormatProperties2(
5222     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5223     VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties) {
5224     mImpl->vkGetPhysicalDeviceFormatProperties2(snapshotTraceBegin, snapshotTraceBytes, pool,
5225                                                 physicalDevice, format, pFormatProperties);
5226 }
5227 #endif
5228 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceImageFormatProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)5229 void VkDecoderSnapshot::vkGetPhysicalDeviceImageFormatProperties2(
5230     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5231     VkResult input_result, VkPhysicalDevice physicalDevice,
5232     const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
5233     VkImageFormatProperties2* pImageFormatProperties) {
5234     mImpl->vkGetPhysicalDeviceImageFormatProperties2(snapshotTraceBegin, snapshotTraceBytes, pool,
5235                                                      input_result, physicalDevice, pImageFormatInfo,
5236                                                      pImageFormatProperties);
5237 }
5238 #endif
5239 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceQueueFamilyProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)5240 void VkDecoderSnapshot::vkGetPhysicalDeviceQueueFamilyProperties2(
5241     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5242     VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
5243     VkQueueFamilyProperties2* pQueueFamilyProperties) {
5244     mImpl->vkGetPhysicalDeviceQueueFamilyProperties2(snapshotTraceBegin, snapshotTraceBytes, pool,
5245                                                      physicalDevice, pQueueFamilyPropertyCount,
5246                                                      pQueueFamilyProperties);
5247 }
5248 #endif
5249 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceMemoryProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)5250 void VkDecoderSnapshot::vkGetPhysicalDeviceMemoryProperties2(
5251     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5252     VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
5253     mImpl->vkGetPhysicalDeviceMemoryProperties2(snapshotTraceBegin, snapshotTraceBytes, pool,
5254                                                 physicalDevice, pMemoryProperties);
5255 }
5256 #endif
5257 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceSparseImageFormatProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)5258 void VkDecoderSnapshot::vkGetPhysicalDeviceSparseImageFormatProperties2(
5259     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5260     VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
5261     uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {
5262     mImpl->vkGetPhysicalDeviceSparseImageFormatProperties2(snapshotTraceBegin, snapshotTraceBytes,
5263                                                            pool, physicalDevice, pFormatInfo,
5264                                                            pPropertyCount, pProperties);
5265 }
5266 #endif
5267 #ifdef VK_VERSION_1_1
vkTrimCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)5268 void VkDecoderSnapshot::vkTrimCommandPool(const uint8_t* snapshotTraceBegin,
5269                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
5270                                           VkDevice device, VkCommandPool commandPool,
5271                                           VkCommandPoolTrimFlags flags) {
5272     mImpl->vkTrimCommandPool(snapshotTraceBegin, snapshotTraceBytes, pool, device, commandPool,
5273                              flags);
5274 }
5275 #endif
5276 #ifdef VK_VERSION_1_1
vkGetDeviceQueue2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)5277 void VkDecoderSnapshot::vkGetDeviceQueue2(const uint8_t* snapshotTraceBegin,
5278                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
5279                                           VkDevice device, const VkDeviceQueueInfo2* pQueueInfo,
5280                                           VkQueue* pQueue) {
5281     mImpl->vkGetDeviceQueue2(snapshotTraceBegin, snapshotTraceBytes, pool, device, pQueueInfo,
5282                              pQueue);
5283 }
5284 #endif
5285 #ifdef VK_VERSION_1_1
vkCreateSamplerYcbcrConversion(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)5286 void VkDecoderSnapshot::vkCreateSamplerYcbcrConversion(
5287     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5288     VkResult input_result, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
5289     const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) {
5290     mImpl->vkCreateSamplerYcbcrConversion(snapshotTraceBegin, snapshotTraceBytes, pool,
5291                                           input_result, device, pCreateInfo, pAllocator,
5292                                           pYcbcrConversion);
5293 }
5294 #endif
5295 #ifdef VK_VERSION_1_1
vkDestroySamplerYcbcrConversion(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)5296 void VkDecoderSnapshot::vkDestroySamplerYcbcrConversion(const uint8_t* snapshotTraceBegin,
5297                                                         size_t snapshotTraceBytes,
5298                                                         android::base::BumpPool* pool,
5299                                                         VkDevice device,
5300                                                         VkSamplerYcbcrConversion ycbcrConversion,
5301                                                         const VkAllocationCallbacks* pAllocator) {
5302     mImpl->vkDestroySamplerYcbcrConversion(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5303                                            ycbcrConversion, pAllocator);
5304 }
5305 #endif
5306 #ifdef VK_VERSION_1_1
vkCreateDescriptorUpdateTemplate(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)5307 void VkDecoderSnapshot::vkCreateDescriptorUpdateTemplate(
5308     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5309     VkResult input_result, VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
5310     const VkAllocationCallbacks* pAllocator,
5311     VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
5312     mImpl->vkCreateDescriptorUpdateTemplate(snapshotTraceBegin, snapshotTraceBytes, pool,
5313                                             input_result, device, pCreateInfo, pAllocator,
5314                                             pDescriptorUpdateTemplate);
5315 }
5316 #endif
5317 #ifdef VK_VERSION_1_1
vkDestroyDescriptorUpdateTemplate(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)5318 void VkDecoderSnapshot::vkDestroyDescriptorUpdateTemplate(
5319     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5320     VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate,
5321     const VkAllocationCallbacks* pAllocator) {
5322     mImpl->vkDestroyDescriptorUpdateTemplate(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5323                                              descriptorUpdateTemplate, pAllocator);
5324 }
5325 #endif
5326 #ifdef VK_VERSION_1_1
vkUpdateDescriptorSetWithTemplate(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)5327 void VkDecoderSnapshot::vkUpdateDescriptorSetWithTemplate(
5328     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5329     VkDevice device, VkDescriptorSet descriptorSet,
5330     VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) {
5331     mImpl->vkUpdateDescriptorSetWithTemplate(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5332                                              descriptorSet, descriptorUpdateTemplate, pData);
5333 }
5334 #endif
5335 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceExternalBufferProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)5336 void VkDecoderSnapshot::vkGetPhysicalDeviceExternalBufferProperties(
5337     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5338     VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
5339     VkExternalBufferProperties* pExternalBufferProperties) {
5340     mImpl->vkGetPhysicalDeviceExternalBufferProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
5341                                                        physicalDevice, pExternalBufferInfo,
5342                                                        pExternalBufferProperties);
5343 }
5344 #endif
5345 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceExternalFenceProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)5346 void VkDecoderSnapshot::vkGetPhysicalDeviceExternalFenceProperties(
5347     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5348     VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
5349     VkExternalFenceProperties* pExternalFenceProperties) {
5350     mImpl->vkGetPhysicalDeviceExternalFenceProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
5351                                                       physicalDevice, pExternalFenceInfo,
5352                                                       pExternalFenceProperties);
5353 }
5354 #endif
5355 #ifdef VK_VERSION_1_1
vkGetPhysicalDeviceExternalSemaphoreProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)5356 void VkDecoderSnapshot::vkGetPhysicalDeviceExternalSemaphoreProperties(
5357     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5358     VkPhysicalDevice physicalDevice,
5359     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
5360     VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
5361     mImpl->vkGetPhysicalDeviceExternalSemaphoreProperties(
5362         snapshotTraceBegin, snapshotTraceBytes, pool, physicalDevice, pExternalSemaphoreInfo,
5363         pExternalSemaphoreProperties);
5364 }
5365 #endif
5366 #ifdef VK_VERSION_1_1
vkGetDescriptorSetLayoutSupport(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)5367 void VkDecoderSnapshot::vkGetDescriptorSetLayoutSupport(
5368     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5369     VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
5370     VkDescriptorSetLayoutSupport* pSupport) {
5371     mImpl->vkGetDescriptorSetLayoutSupport(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5372                                            pCreateInfo, pSupport);
5373 }
5374 #endif
5375 #ifdef VK_VERSION_1_2
vkCmdDrawIndirectCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)5376 void VkDecoderSnapshot::vkCmdDrawIndirectCount(
5377     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5378     VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer,
5379     VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) {
5380     mImpl->vkCmdDrawIndirectCount(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5381                                   buffer, offset, countBuffer, countBufferOffset, maxDrawCount,
5382                                   stride);
5383 }
5384 #endif
5385 #ifdef VK_VERSION_1_2
vkCmdDrawIndexedIndirectCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)5386 void VkDecoderSnapshot::vkCmdDrawIndexedIndirectCount(
5387     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5388     VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer,
5389     VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride) {
5390     mImpl->vkCmdDrawIndexedIndirectCount(snapshotTraceBegin, snapshotTraceBytes, pool,
5391                                          commandBuffer, buffer, offset, countBuffer,
5392                                          countBufferOffset, maxDrawCount, stride);
5393 }
5394 #endif
5395 #ifdef VK_VERSION_1_2
vkCreateRenderPass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)5396 void VkDecoderSnapshot::vkCreateRenderPass2(
5397     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5398     VkResult input_result, VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo,
5399     const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
5400     mImpl->vkCreateRenderPass2(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
5401                                pCreateInfo, pAllocator, pRenderPass);
5402 }
5403 #endif
5404 #ifdef VK_VERSION_1_2
vkCmdBeginRenderPass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)5405 void VkDecoderSnapshot::vkCmdBeginRenderPass2(const uint8_t* snapshotTraceBegin,
5406                                               size_t snapshotTraceBytes,
5407                                               android::base::BumpPool* pool,
5408                                               VkCommandBuffer commandBuffer,
5409                                               const VkRenderPassBeginInfo* pRenderPassBegin,
5410                                               const VkSubpassBeginInfo* pSubpassBeginInfo) {
5411     mImpl->vkCmdBeginRenderPass2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5412                                  pRenderPassBegin, pSubpassBeginInfo);
5413 }
5414 #endif
5415 #ifdef VK_VERSION_1_2
vkCmdNextSubpass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)5416 void VkDecoderSnapshot::vkCmdNextSubpass2(const uint8_t* snapshotTraceBegin,
5417                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
5418                                           VkCommandBuffer commandBuffer,
5419                                           const VkSubpassBeginInfo* pSubpassBeginInfo,
5420                                           const VkSubpassEndInfo* pSubpassEndInfo) {
5421     mImpl->vkCmdNextSubpass2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5422                              pSubpassBeginInfo, pSubpassEndInfo);
5423 }
5424 #endif
5425 #ifdef VK_VERSION_1_2
vkCmdEndRenderPass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)5426 void VkDecoderSnapshot::vkCmdEndRenderPass2(const uint8_t* snapshotTraceBegin,
5427                                             size_t snapshotTraceBytes,
5428                                             android::base::BumpPool* pool,
5429                                             VkCommandBuffer commandBuffer,
5430                                             const VkSubpassEndInfo* pSubpassEndInfo) {
5431     mImpl->vkCmdEndRenderPass2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5432                                pSubpassEndInfo);
5433 }
5434 #endif
5435 #ifdef VK_VERSION_1_2
vkResetQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)5436 void VkDecoderSnapshot::vkResetQueryPool(const uint8_t* snapshotTraceBegin,
5437                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
5438                                          VkDevice device, VkQueryPool queryPool,
5439                                          uint32_t firstQuery, uint32_t queryCount) {
5440     mImpl->vkResetQueryPool(snapshotTraceBegin, snapshotTraceBytes, pool, device, queryPool,
5441                             firstQuery, queryCount);
5442 }
5443 #endif
5444 #ifdef VK_VERSION_1_2
vkGetSemaphoreCounterValue(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSemaphore semaphore,uint64_t * pValue)5445 void VkDecoderSnapshot::vkGetSemaphoreCounterValue(const uint8_t* snapshotTraceBegin,
5446                                                    size_t snapshotTraceBytes,
5447                                                    android::base::BumpPool* pool,
5448                                                    VkResult input_result, VkDevice device,
5449                                                    VkSemaphore semaphore, uint64_t* pValue) {
5450     mImpl->vkGetSemaphoreCounterValue(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
5451                                       device, semaphore, pValue);
5452 }
5453 #endif
5454 #ifdef VK_VERSION_1_2
vkWaitSemaphores(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)5455 void VkDecoderSnapshot::vkWaitSemaphores(const uint8_t* snapshotTraceBegin,
5456                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
5457                                          VkResult input_result, VkDevice device,
5458                                          const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) {
5459     mImpl->vkWaitSemaphores(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
5460                             pWaitInfo, timeout);
5461 }
5462 #endif
5463 #ifdef VK_VERSION_1_2
vkSignalSemaphore(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)5464 void VkDecoderSnapshot::vkSignalSemaphore(const uint8_t* snapshotTraceBegin,
5465                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
5466                                           VkResult input_result, VkDevice device,
5467                                           const VkSemaphoreSignalInfo* pSignalInfo) {
5468     mImpl->vkSignalSemaphore(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
5469                              pSignalInfo);
5470 }
5471 #endif
5472 #ifdef VK_VERSION_1_2
vkGetBufferDeviceAddress(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDeviceAddress input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)5473 void VkDecoderSnapshot::vkGetBufferDeviceAddress(const uint8_t* snapshotTraceBegin,
5474                                                  size_t snapshotTraceBytes,
5475                                                  android::base::BumpPool* pool,
5476                                                  VkDeviceAddress input_result, VkDevice device,
5477                                                  const VkBufferDeviceAddressInfo* pInfo) {
5478     mImpl->vkGetBufferDeviceAddress(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
5479                                     device, pInfo);
5480 }
5481 #endif
5482 #ifdef VK_VERSION_1_2
vkGetBufferOpaqueCaptureAddress(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)5483 void VkDecoderSnapshot::vkGetBufferOpaqueCaptureAddress(const uint8_t* snapshotTraceBegin,
5484                                                         size_t snapshotTraceBytes,
5485                                                         android::base::BumpPool* pool,
5486                                                         uint64_t input_result, VkDevice device,
5487                                                         const VkBufferDeviceAddressInfo* pInfo) {
5488     mImpl->vkGetBufferOpaqueCaptureAddress(snapshotTraceBegin, snapshotTraceBytes, pool,
5489                                            input_result, device, pInfo);
5490 }
5491 #endif
5492 #ifdef VK_VERSION_1_2
vkGetDeviceMemoryOpaqueCaptureAddress(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)5493 void VkDecoderSnapshot::vkGetDeviceMemoryOpaqueCaptureAddress(
5494     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5495     uint64_t input_result, VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
5496     mImpl->vkGetDeviceMemoryOpaqueCaptureAddress(snapshotTraceBegin, snapshotTraceBytes, pool,
5497                                                  input_result, device, pInfo);
5498 }
5499 #endif
5500 #ifdef VK_VERSION_1_3
vkGetPhysicalDeviceToolProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties)5501 void VkDecoderSnapshot::vkGetPhysicalDeviceToolProperties(
5502     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5503     VkResult input_result, VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
5504     VkPhysicalDeviceToolProperties* pToolProperties) {
5505     mImpl->vkGetPhysicalDeviceToolProperties(snapshotTraceBegin, snapshotTraceBytes, pool,
5506                                              input_result, physicalDevice, pToolCount,
5507                                              pToolProperties);
5508 }
5509 #endif
5510 #ifdef VK_VERSION_1_3
vkCreatePrivateDataSlot(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)5511 void VkDecoderSnapshot::vkCreatePrivateDataSlot(
5512     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5513     VkResult input_result, VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo,
5514     const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) {
5515     mImpl->vkCreatePrivateDataSlot(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
5516                                    device, pCreateInfo, pAllocator, pPrivateDataSlot);
5517 }
5518 #endif
5519 #ifdef VK_VERSION_1_3
vkDestroyPrivateDataSlot(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)5520 void VkDecoderSnapshot::vkDestroyPrivateDataSlot(const uint8_t* snapshotTraceBegin,
5521                                                  size_t snapshotTraceBytes,
5522                                                  android::base::BumpPool* pool, VkDevice device,
5523                                                  VkPrivateDataSlot privateDataSlot,
5524                                                  const VkAllocationCallbacks* pAllocator) {
5525     mImpl->vkDestroyPrivateDataSlot(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5526                                     privateDataSlot, pAllocator);
5527 }
5528 #endif
5529 #ifdef VK_VERSION_1_3
vkSetPrivateData(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)5530 void VkDecoderSnapshot::vkSetPrivateData(const uint8_t* snapshotTraceBegin,
5531                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
5532                                          VkResult input_result, VkDevice device,
5533                                          VkObjectType objectType, uint64_t objectHandle,
5534                                          VkPrivateDataSlot privateDataSlot, uint64_t data) {
5535     mImpl->vkSetPrivateData(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
5536                             objectType, objectHandle, privateDataSlot, data);
5537 }
5538 #endif
5539 #ifdef VK_VERSION_1_3
vkGetPrivateData(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)5540 void VkDecoderSnapshot::vkGetPrivateData(const uint8_t* snapshotTraceBegin,
5541                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
5542                                          VkDevice device, VkObjectType objectType,
5543                                          uint64_t objectHandle, VkPrivateDataSlot privateDataSlot,
5544                                          uint64_t* pData) {
5545     mImpl->vkGetPrivateData(snapshotTraceBegin, snapshotTraceBytes, pool, device, objectType,
5546                             objectHandle, privateDataSlot, pData);
5547 }
5548 #endif
5549 #ifdef VK_VERSION_1_3
vkCmdSetEvent2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)5550 void VkDecoderSnapshot::vkCmdSetEvent2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
5551                                        android::base::BumpPool* pool, VkCommandBuffer commandBuffer,
5552                                        VkEvent event, const VkDependencyInfo* pDependencyInfo) {
5553     mImpl->vkCmdSetEvent2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, event,
5554                           pDependencyInfo);
5555 }
5556 #endif
5557 #ifdef VK_VERSION_1_3
vkCmdResetEvent2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)5558 void VkDecoderSnapshot::vkCmdResetEvent2(const uint8_t* snapshotTraceBegin,
5559                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
5560                                          VkCommandBuffer commandBuffer, VkEvent event,
5561                                          VkPipelineStageFlags2 stageMask) {
5562     mImpl->vkCmdResetEvent2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, event,
5563                             stageMask);
5564 }
5565 #endif
5566 #ifdef VK_VERSION_1_3
vkCmdWaitEvents2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)5567 void VkDecoderSnapshot::vkCmdWaitEvents2(const uint8_t* snapshotTraceBegin,
5568                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
5569                                          VkCommandBuffer commandBuffer, uint32_t eventCount,
5570                                          const VkEvent* pEvents,
5571                                          const VkDependencyInfo* pDependencyInfos) {
5572     mImpl->vkCmdWaitEvents2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, eventCount,
5573                             pEvents, pDependencyInfos);
5574 }
5575 #endif
5576 #ifdef VK_VERSION_1_3
vkCmdPipelineBarrier2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)5577 void VkDecoderSnapshot::vkCmdPipelineBarrier2(const uint8_t* snapshotTraceBegin,
5578                                               size_t snapshotTraceBytes,
5579                                               android::base::BumpPool* pool,
5580                                               VkCommandBuffer commandBuffer,
5581                                               const VkDependencyInfo* pDependencyInfo) {
5582     mImpl->vkCmdPipelineBarrier2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5583                                  pDependencyInfo);
5584 }
5585 #endif
5586 #ifdef VK_VERSION_1_3
vkCmdWriteTimestamp2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)5587 void VkDecoderSnapshot::vkCmdWriteTimestamp2(const uint8_t* snapshotTraceBegin,
5588                                              size_t snapshotTraceBytes,
5589                                              android::base::BumpPool* pool,
5590                                              VkCommandBuffer commandBuffer,
5591                                              VkPipelineStageFlags2 stage, VkQueryPool queryPool,
5592                                              uint32_t query) {
5593     mImpl->vkCmdWriteTimestamp2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, stage,
5594                                 queryPool, query);
5595 }
5596 #endif
5597 #ifdef VK_VERSION_1_3
vkQueueSubmit2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)5598 void VkDecoderSnapshot::vkQueueSubmit2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes,
5599                                        android::base::BumpPool* pool, VkResult input_result,
5600                                        VkQueue queue, uint32_t submitCount,
5601                                        const VkSubmitInfo2* pSubmits, VkFence fence) {
5602     mImpl->vkQueueSubmit2(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, queue,
5603                           submitCount, pSubmits, fence);
5604 }
5605 #endif
5606 #ifdef VK_VERSION_1_3
vkCmdCopyBuffer2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)5607 void VkDecoderSnapshot::vkCmdCopyBuffer2(const uint8_t* snapshotTraceBegin,
5608                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
5609                                          VkCommandBuffer commandBuffer,
5610                                          const VkCopyBufferInfo2* pCopyBufferInfo) {
5611     mImpl->vkCmdCopyBuffer2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5612                             pCopyBufferInfo);
5613 }
5614 #endif
5615 #ifdef VK_VERSION_1_3
vkCmdCopyImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)5616 void VkDecoderSnapshot::vkCmdCopyImage2(const uint8_t* snapshotTraceBegin,
5617                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
5618                                         VkCommandBuffer commandBuffer,
5619                                         const VkCopyImageInfo2* pCopyImageInfo) {
5620     mImpl->vkCmdCopyImage2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5621                            pCopyImageInfo);
5622 }
5623 #endif
5624 #ifdef VK_VERSION_1_3
vkCmdCopyBufferToImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)5625 void VkDecoderSnapshot::vkCmdCopyBufferToImage2(
5626     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5627     VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
5628     mImpl->vkCmdCopyBufferToImage2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5629                                    pCopyBufferToImageInfo);
5630 }
5631 #endif
5632 #ifdef VK_VERSION_1_3
vkCmdCopyImageToBuffer2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)5633 void VkDecoderSnapshot::vkCmdCopyImageToBuffer2(
5634     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5635     VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
5636     mImpl->vkCmdCopyImageToBuffer2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5637                                    pCopyImageToBufferInfo);
5638 }
5639 #endif
5640 #ifdef VK_VERSION_1_3
vkCmdBlitImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)5641 void VkDecoderSnapshot::vkCmdBlitImage2(const uint8_t* snapshotTraceBegin,
5642                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
5643                                         VkCommandBuffer commandBuffer,
5644                                         const VkBlitImageInfo2* pBlitImageInfo) {
5645     mImpl->vkCmdBlitImage2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5646                            pBlitImageInfo);
5647 }
5648 #endif
5649 #ifdef VK_VERSION_1_3
vkCmdResolveImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)5650 void VkDecoderSnapshot::vkCmdResolveImage2(const uint8_t* snapshotTraceBegin,
5651                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
5652                                            VkCommandBuffer commandBuffer,
5653                                            const VkResolveImageInfo2* pResolveImageInfo) {
5654     mImpl->vkCmdResolveImage2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5655                               pResolveImageInfo);
5656 }
5657 #endif
5658 #ifdef VK_VERSION_1_3
vkCmdBeginRendering(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)5659 void VkDecoderSnapshot::vkCmdBeginRendering(const uint8_t* snapshotTraceBegin,
5660                                             size_t snapshotTraceBytes,
5661                                             android::base::BumpPool* pool,
5662                                             VkCommandBuffer commandBuffer,
5663                                             const VkRenderingInfo* pRenderingInfo) {
5664     mImpl->vkCmdBeginRendering(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5665                                pRenderingInfo);
5666 }
5667 #endif
5668 #ifdef VK_VERSION_1_3
vkCmdEndRendering(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)5669 void VkDecoderSnapshot::vkCmdEndRendering(const uint8_t* snapshotTraceBegin,
5670                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
5671                                           VkCommandBuffer commandBuffer) {
5672     mImpl->vkCmdEndRendering(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer);
5673 }
5674 #endif
5675 #ifdef VK_VERSION_1_3
vkCmdSetCullMode(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)5676 void VkDecoderSnapshot::vkCmdSetCullMode(const uint8_t* snapshotTraceBegin,
5677                                          size_t snapshotTraceBytes, android::base::BumpPool* pool,
5678                                          VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) {
5679     mImpl->vkCmdSetCullMode(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, cullMode);
5680 }
5681 #endif
5682 #ifdef VK_VERSION_1_3
vkCmdSetFrontFace(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkFrontFace frontFace)5683 void VkDecoderSnapshot::vkCmdSetFrontFace(const uint8_t* snapshotTraceBegin,
5684                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
5685                                           VkCommandBuffer commandBuffer, VkFrontFace frontFace) {
5686     mImpl->vkCmdSetFrontFace(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5687                              frontFace);
5688 }
5689 #endif
5690 #ifdef VK_VERSION_1_3
vkCmdSetPrimitiveTopology(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)5691 void VkDecoderSnapshot::vkCmdSetPrimitiveTopology(const uint8_t* snapshotTraceBegin,
5692                                                   size_t snapshotTraceBytes,
5693                                                   android::base::BumpPool* pool,
5694                                                   VkCommandBuffer commandBuffer,
5695                                                   VkPrimitiveTopology primitiveTopology) {
5696     mImpl->vkCmdSetPrimitiveTopology(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5697                                      primitiveTopology);
5698 }
5699 #endif
5700 #ifdef VK_VERSION_1_3
vkCmdSetViewportWithCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)5701 void VkDecoderSnapshot::vkCmdSetViewportWithCount(
5702     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5703     VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) {
5704     mImpl->vkCmdSetViewportWithCount(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5705                                      viewportCount, pViewports);
5706 }
5707 #endif
5708 #ifdef VK_VERSION_1_3
vkCmdSetScissorWithCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)5709 void VkDecoderSnapshot::vkCmdSetScissorWithCount(const uint8_t* snapshotTraceBegin,
5710                                                  size_t snapshotTraceBytes,
5711                                                  android::base::BumpPool* pool,
5712                                                  VkCommandBuffer commandBuffer,
5713                                                  uint32_t scissorCount, const VkRect2D* pScissors) {
5714     mImpl->vkCmdSetScissorWithCount(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5715                                     scissorCount, pScissors);
5716 }
5717 #endif
5718 #ifdef VK_VERSION_1_3
vkCmdBindVertexBuffers2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)5719 void VkDecoderSnapshot::vkCmdBindVertexBuffers2(
5720     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5721     VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount,
5722     const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes,
5723     const VkDeviceSize* pStrides) {
5724     mImpl->vkCmdBindVertexBuffers2(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5725                                    firstBinding, bindingCount, pBuffers, pOffsets, pSizes,
5726                                    pStrides);
5727 }
5728 #endif
5729 #ifdef VK_VERSION_1_3
vkCmdSetDepthTestEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)5730 void VkDecoderSnapshot::vkCmdSetDepthTestEnable(const uint8_t* snapshotTraceBegin,
5731                                                 size_t snapshotTraceBytes,
5732                                                 android::base::BumpPool* pool,
5733                                                 VkCommandBuffer commandBuffer,
5734                                                 VkBool32 depthTestEnable) {
5735     mImpl->vkCmdSetDepthTestEnable(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5736                                    depthTestEnable);
5737 }
5738 #endif
5739 #ifdef VK_VERSION_1_3
vkCmdSetDepthWriteEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)5740 void VkDecoderSnapshot::vkCmdSetDepthWriteEnable(const uint8_t* snapshotTraceBegin,
5741                                                  size_t snapshotTraceBytes,
5742                                                  android::base::BumpPool* pool,
5743                                                  VkCommandBuffer commandBuffer,
5744                                                  VkBool32 depthWriteEnable) {
5745     mImpl->vkCmdSetDepthWriteEnable(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5746                                     depthWriteEnable);
5747 }
5748 #endif
5749 #ifdef VK_VERSION_1_3
vkCmdSetDepthCompareOp(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)5750 void VkDecoderSnapshot::vkCmdSetDepthCompareOp(const uint8_t* snapshotTraceBegin,
5751                                                size_t snapshotTraceBytes,
5752                                                android::base::BumpPool* pool,
5753                                                VkCommandBuffer commandBuffer,
5754                                                VkCompareOp depthCompareOp) {
5755     mImpl->vkCmdSetDepthCompareOp(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5756                                   depthCompareOp);
5757 }
5758 #endif
5759 #ifdef VK_VERSION_1_3
vkCmdSetDepthBoundsTestEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)5760 void VkDecoderSnapshot::vkCmdSetDepthBoundsTestEnable(const uint8_t* snapshotTraceBegin,
5761                                                       size_t snapshotTraceBytes,
5762                                                       android::base::BumpPool* pool,
5763                                                       VkCommandBuffer commandBuffer,
5764                                                       VkBool32 depthBoundsTestEnable) {
5765     mImpl->vkCmdSetDepthBoundsTestEnable(snapshotTraceBegin, snapshotTraceBytes, pool,
5766                                          commandBuffer, depthBoundsTestEnable);
5767 }
5768 #endif
5769 #ifdef VK_VERSION_1_3
vkCmdSetStencilTestEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)5770 void VkDecoderSnapshot::vkCmdSetStencilTestEnable(const uint8_t* snapshotTraceBegin,
5771                                                   size_t snapshotTraceBytes,
5772                                                   android::base::BumpPool* pool,
5773                                                   VkCommandBuffer commandBuffer,
5774                                                   VkBool32 stencilTestEnable) {
5775     mImpl->vkCmdSetStencilTestEnable(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5776                                      stencilTestEnable);
5777 }
5778 #endif
5779 #ifdef VK_VERSION_1_3
vkCmdSetStencilOp(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)5780 void VkDecoderSnapshot::vkCmdSetStencilOp(const uint8_t* snapshotTraceBegin,
5781                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
5782                                           VkCommandBuffer commandBuffer,
5783                                           VkStencilFaceFlags faceMask, VkStencilOp failOp,
5784                                           VkStencilOp passOp, VkStencilOp depthFailOp,
5785                                           VkCompareOp compareOp) {
5786     mImpl->vkCmdSetStencilOp(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, faceMask,
5787                              failOp, passOp, depthFailOp, compareOp);
5788 }
5789 #endif
5790 #ifdef VK_VERSION_1_3
vkCmdSetRasterizerDiscardEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)5791 void VkDecoderSnapshot::vkCmdSetRasterizerDiscardEnable(const uint8_t* snapshotTraceBegin,
5792                                                         size_t snapshotTraceBytes,
5793                                                         android::base::BumpPool* pool,
5794                                                         VkCommandBuffer commandBuffer,
5795                                                         VkBool32 rasterizerDiscardEnable) {
5796     mImpl->vkCmdSetRasterizerDiscardEnable(snapshotTraceBegin, snapshotTraceBytes, pool,
5797                                            commandBuffer, rasterizerDiscardEnable);
5798 }
5799 #endif
5800 #ifdef VK_VERSION_1_3
vkCmdSetDepthBiasEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)5801 void VkDecoderSnapshot::vkCmdSetDepthBiasEnable(const uint8_t* snapshotTraceBegin,
5802                                                 size_t snapshotTraceBytes,
5803                                                 android::base::BumpPool* pool,
5804                                                 VkCommandBuffer commandBuffer,
5805                                                 VkBool32 depthBiasEnable) {
5806     mImpl->vkCmdSetDepthBiasEnable(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5807                                    depthBiasEnable);
5808 }
5809 #endif
5810 #ifdef VK_VERSION_1_3
vkCmdSetPrimitiveRestartEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)5811 void VkDecoderSnapshot::vkCmdSetPrimitiveRestartEnable(const uint8_t* snapshotTraceBegin,
5812                                                        size_t snapshotTraceBytes,
5813                                                        android::base::BumpPool* pool,
5814                                                        VkCommandBuffer commandBuffer,
5815                                                        VkBool32 primitiveRestartEnable) {
5816     mImpl->vkCmdSetPrimitiveRestartEnable(snapshotTraceBegin, snapshotTraceBytes, pool,
5817                                           commandBuffer, primitiveRestartEnable);
5818 }
5819 #endif
5820 #ifdef VK_VERSION_1_3
vkGetDeviceBufferMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)5821 void VkDecoderSnapshot::vkGetDeviceBufferMemoryRequirements(
5822     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5823     VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo,
5824     VkMemoryRequirements2* pMemoryRequirements) {
5825     mImpl->vkGetDeviceBufferMemoryRequirements(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5826                                                pInfo, pMemoryRequirements);
5827 }
5828 #endif
5829 #ifdef VK_VERSION_1_3
vkGetDeviceImageMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)5830 void VkDecoderSnapshot::vkGetDeviceImageMemoryRequirements(
5831     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5832     VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
5833     VkMemoryRequirements2* pMemoryRequirements) {
5834     mImpl->vkGetDeviceImageMemoryRequirements(snapshotTraceBegin, snapshotTraceBytes, pool, device,
5835                                               pInfo, pMemoryRequirements);
5836 }
5837 #endif
5838 #ifdef VK_VERSION_1_3
vkGetDeviceImageSparseMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)5839 void VkDecoderSnapshot::vkGetDeviceImageSparseMemoryRequirements(
5840     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5841     VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
5842     uint32_t* pSparseMemoryRequirementCount,
5843     VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
5844     mImpl->vkGetDeviceImageSparseMemoryRequirements(snapshotTraceBegin, snapshotTraceBytes, pool,
5845                                                     device, pInfo, pSparseMemoryRequirementCount,
5846                                                     pSparseMemoryRequirements);
5847 }
5848 #endif
5849 #ifdef VK_KHR_swapchain
vkCreateSwapchainKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)5850 void VkDecoderSnapshot::vkCreateSwapchainKHR(
5851     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5852     VkResult input_result, VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo,
5853     const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) {
5854     mImpl->vkCreateSwapchainKHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
5855                                 pCreateInfo, pAllocator, pSwapchain);
5856 }
5857 #endif
5858 #ifdef VK_KHR_swapchain
vkDestroySwapchainKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)5859 void VkDecoderSnapshot::vkDestroySwapchainKHR(const uint8_t* snapshotTraceBegin,
5860                                               size_t snapshotTraceBytes,
5861                                               android::base::BumpPool* pool, VkDevice device,
5862                                               VkSwapchainKHR swapchain,
5863                                               const VkAllocationCallbacks* pAllocator) {
5864     mImpl->vkDestroySwapchainKHR(snapshotTraceBegin, snapshotTraceBytes, pool, device, swapchain,
5865                                  pAllocator);
5866 }
5867 #endif
5868 #ifdef VK_KHR_swapchain
vkGetSwapchainImagesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages)5869 void VkDecoderSnapshot::vkGetSwapchainImagesKHR(
5870     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5871     VkResult input_result, VkDevice device, VkSwapchainKHR swapchain,
5872     uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {
5873     mImpl->vkGetSwapchainImagesKHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
5874                                    device, swapchain, pSwapchainImageCount, pSwapchainImages);
5875 }
5876 #endif
5877 #ifdef VK_KHR_swapchain
vkAcquireNextImageKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex)5878 void VkDecoderSnapshot::vkAcquireNextImageKHR(const uint8_t* snapshotTraceBegin,
5879                                               size_t snapshotTraceBytes,
5880                                               android::base::BumpPool* pool, VkResult input_result,
5881                                               VkDevice device, VkSwapchainKHR swapchain,
5882                                               uint64_t timeout, VkSemaphore semaphore,
5883                                               VkFence fence, uint32_t* pImageIndex) {
5884     mImpl->vkAcquireNextImageKHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
5885                                  swapchain, timeout, semaphore, fence, pImageIndex);
5886 }
5887 #endif
5888 #ifdef VK_KHR_swapchain
vkQueuePresentKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,const VkPresentInfoKHR * pPresentInfo)5889 void VkDecoderSnapshot::vkQueuePresentKHR(const uint8_t* snapshotTraceBegin,
5890                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
5891                                           VkResult input_result, VkQueue queue,
5892                                           const VkPresentInfoKHR* pPresentInfo) {
5893     mImpl->vkQueuePresentKHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, queue,
5894                              pPresentInfo);
5895 }
5896 #endif
5897 #ifdef VK_KHR_swapchain
vkGetDeviceGroupPresentCapabilitiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities)5898 void VkDecoderSnapshot::vkGetDeviceGroupPresentCapabilitiesKHR(
5899     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5900     VkResult input_result, VkDevice device,
5901     VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
5902     mImpl->vkGetDeviceGroupPresentCapabilitiesKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
5903                                                   input_result, device,
5904                                                   pDeviceGroupPresentCapabilities);
5905 }
5906 #endif
5907 #ifdef VK_KHR_swapchain
vkGetDeviceGroupSurfacePresentModesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes)5908 void VkDecoderSnapshot::vkGetDeviceGroupSurfacePresentModesKHR(
5909     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5910     VkResult input_result, VkDevice device, VkSurfaceKHR surface,
5911     VkDeviceGroupPresentModeFlagsKHR* pModes) {
5912     mImpl->vkGetDeviceGroupSurfacePresentModesKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
5913                                                   input_result, device, surface, pModes);
5914 }
5915 #endif
5916 #ifdef VK_KHR_swapchain
vkGetPhysicalDevicePresentRectanglesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects)5917 void VkDecoderSnapshot::vkGetPhysicalDevicePresentRectanglesKHR(
5918     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5919     VkResult input_result, VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
5920     uint32_t* pRectCount, VkRect2D* pRects) {
5921     mImpl->vkGetPhysicalDevicePresentRectanglesKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
5922                                                    input_result, physicalDevice, surface,
5923                                                    pRectCount, pRects);
5924 }
5925 #endif
5926 #ifdef VK_KHR_swapchain
vkAcquireNextImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex)5927 void VkDecoderSnapshot::vkAcquireNextImage2KHR(const uint8_t* snapshotTraceBegin,
5928                                                size_t snapshotTraceBytes,
5929                                                android::base::BumpPool* pool, VkResult input_result,
5930                                                VkDevice device,
5931                                                const VkAcquireNextImageInfoKHR* pAcquireInfo,
5932                                                uint32_t* pImageIndex) {
5933     mImpl->vkAcquireNextImage2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
5934                                   device, pAcquireInfo, pImageIndex);
5935 }
5936 #endif
5937 #ifdef VK_KHR_dynamic_rendering
vkCmdBeginRenderingKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)5938 void VkDecoderSnapshot::vkCmdBeginRenderingKHR(const uint8_t* snapshotTraceBegin,
5939                                                size_t snapshotTraceBytes,
5940                                                android::base::BumpPool* pool,
5941                                                VkCommandBuffer commandBuffer,
5942                                                const VkRenderingInfo* pRenderingInfo) {
5943     mImpl->vkCmdBeginRenderingKHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
5944                                   pRenderingInfo);
5945 }
5946 #endif
5947 #ifdef VK_KHR_dynamic_rendering
vkCmdEndRenderingKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)5948 void VkDecoderSnapshot::vkCmdEndRenderingKHR(const uint8_t* snapshotTraceBegin,
5949                                              size_t snapshotTraceBytes,
5950                                              android::base::BumpPool* pool,
5951                                              VkCommandBuffer commandBuffer) {
5952     mImpl->vkCmdEndRenderingKHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer);
5953 }
5954 #endif
5955 #ifdef VK_KHR_get_physical_device_properties2
vkGetPhysicalDeviceFeatures2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)5956 void VkDecoderSnapshot::vkGetPhysicalDeviceFeatures2KHR(const uint8_t* snapshotTraceBegin,
5957                                                         size_t snapshotTraceBytes,
5958                                                         android::base::BumpPool* pool,
5959                                                         VkPhysicalDevice physicalDevice,
5960                                                         VkPhysicalDeviceFeatures2* pFeatures) {
5961     mImpl->vkGetPhysicalDeviceFeatures2KHR(snapshotTraceBegin, snapshotTraceBytes, pool,
5962                                            physicalDevice, pFeatures);
5963 }
5964 #endif
5965 #ifdef VK_KHR_get_physical_device_properties2
vkGetPhysicalDeviceProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)5966 void VkDecoderSnapshot::vkGetPhysicalDeviceProperties2KHR(
5967     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5968     VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties) {
5969     mImpl->vkGetPhysicalDeviceProperties2KHR(snapshotTraceBegin, snapshotTraceBytes, pool,
5970                                              physicalDevice, pProperties);
5971 }
5972 #endif
5973 #ifdef VK_KHR_get_physical_device_properties2
vkGetPhysicalDeviceFormatProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)5974 void VkDecoderSnapshot::vkGetPhysicalDeviceFormatProperties2KHR(
5975     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5976     VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties) {
5977     mImpl->vkGetPhysicalDeviceFormatProperties2KHR(snapshotTraceBegin, snapshotTraceBytes, pool,
5978                                                    physicalDevice, format, pFormatProperties);
5979 }
5980 #endif
5981 #ifdef VK_KHR_get_physical_device_properties2
vkGetPhysicalDeviceImageFormatProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)5982 void VkDecoderSnapshot::vkGetPhysicalDeviceImageFormatProperties2KHR(
5983     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5984     VkResult input_result, VkPhysicalDevice physicalDevice,
5985     const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
5986     VkImageFormatProperties2* pImageFormatProperties) {
5987     mImpl->vkGetPhysicalDeviceImageFormatProperties2KHR(snapshotTraceBegin, snapshotTraceBytes,
5988                                                         pool, input_result, physicalDevice,
5989                                                         pImageFormatInfo, pImageFormatProperties);
5990 }
5991 #endif
5992 #ifdef VK_KHR_get_physical_device_properties2
vkGetPhysicalDeviceQueueFamilyProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)5993 void VkDecoderSnapshot::vkGetPhysicalDeviceQueueFamilyProperties2KHR(
5994     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
5995     VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
5996     VkQueueFamilyProperties2* pQueueFamilyProperties) {
5997     mImpl->vkGetPhysicalDeviceQueueFamilyProperties2KHR(
5998         snapshotTraceBegin, snapshotTraceBytes, pool, physicalDevice, pQueueFamilyPropertyCount,
5999         pQueueFamilyProperties);
6000 }
6001 #endif
6002 #ifdef VK_KHR_get_physical_device_properties2
vkGetPhysicalDeviceMemoryProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)6003 void VkDecoderSnapshot::vkGetPhysicalDeviceMemoryProperties2KHR(
6004     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6005     VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
6006     mImpl->vkGetPhysicalDeviceMemoryProperties2KHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6007                                                    physicalDevice, pMemoryProperties);
6008 }
6009 #endif
6010 #ifdef VK_KHR_get_physical_device_properties2
vkGetPhysicalDeviceSparseImageFormatProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)6011 void VkDecoderSnapshot::vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
6012     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6013     VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
6014     uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {
6015     mImpl->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
6016         snapshotTraceBegin, snapshotTraceBytes, pool, physicalDevice, pFormatInfo, pPropertyCount,
6017         pProperties);
6018 }
6019 #endif
6020 #ifdef VK_KHR_maintenance1
vkTrimCommandPoolKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)6021 void VkDecoderSnapshot::vkTrimCommandPoolKHR(const uint8_t* snapshotTraceBegin,
6022                                              size_t snapshotTraceBytes,
6023                                              android::base::BumpPool* pool, VkDevice device,
6024                                              VkCommandPool commandPool,
6025                                              VkCommandPoolTrimFlags flags) {
6026     mImpl->vkTrimCommandPoolKHR(snapshotTraceBegin, snapshotTraceBytes, pool, device, commandPool,
6027                                 flags);
6028 }
6029 #endif
6030 #ifdef VK_KHR_external_memory_capabilities
vkGetPhysicalDeviceExternalBufferPropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)6031 void VkDecoderSnapshot::vkGetPhysicalDeviceExternalBufferPropertiesKHR(
6032     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6033     VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
6034     VkExternalBufferProperties* pExternalBufferProperties) {
6035     mImpl->vkGetPhysicalDeviceExternalBufferPropertiesKHR(snapshotTraceBegin, snapshotTraceBytes,
6036                                                           pool, physicalDevice, pExternalBufferInfo,
6037                                                           pExternalBufferProperties);
6038 }
6039 #endif
6040 #ifdef VK_KHR_external_semaphore_capabilities
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)6041 void VkDecoderSnapshot::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
6042     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6043     VkPhysicalDevice physicalDevice,
6044     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
6045     VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
6046     mImpl->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
6047         snapshotTraceBegin, snapshotTraceBytes, pool, physicalDevice, pExternalSemaphoreInfo,
6048         pExternalSemaphoreProperties);
6049 }
6050 #endif
6051 #ifdef VK_KHR_external_semaphore_fd
vkImportSemaphoreFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)6052 void VkDecoderSnapshot::vkImportSemaphoreFdKHR(
6053     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6054     VkResult input_result, VkDevice device,
6055     const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
6056     mImpl->vkImportSemaphoreFdKHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6057                                   device, pImportSemaphoreFdInfo);
6058 }
6059 #endif
6060 #ifdef VK_KHR_external_semaphore_fd
vkGetSemaphoreFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)6061 void VkDecoderSnapshot::vkGetSemaphoreFdKHR(const uint8_t* snapshotTraceBegin,
6062                                             size_t snapshotTraceBytes,
6063                                             android::base::BumpPool* pool, VkResult input_result,
6064                                             VkDevice device,
6065                                             const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) {
6066     mImpl->vkGetSemaphoreFdKHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
6067                                pGetFdInfo, pFd);
6068 }
6069 #endif
6070 #ifdef VK_KHR_descriptor_update_template
vkCreateDescriptorUpdateTemplateKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)6071 void VkDecoderSnapshot::vkCreateDescriptorUpdateTemplateKHR(
6072     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6073     VkResult input_result, VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
6074     const VkAllocationCallbacks* pAllocator,
6075     VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
6076     mImpl->vkCreateDescriptorUpdateTemplateKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6077                                                input_result, device, pCreateInfo, pAllocator,
6078                                                pDescriptorUpdateTemplate);
6079 }
6080 #endif
6081 #ifdef VK_KHR_descriptor_update_template
vkDestroyDescriptorUpdateTemplateKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)6082 void VkDecoderSnapshot::vkDestroyDescriptorUpdateTemplateKHR(
6083     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6084     VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6085     const VkAllocationCallbacks* pAllocator) {
6086     mImpl->vkDestroyDescriptorUpdateTemplateKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6087                                                 device, descriptorUpdateTemplate, pAllocator);
6088 }
6089 #endif
6090 #ifdef VK_KHR_descriptor_update_template
vkUpdateDescriptorSetWithTemplateKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)6091 void VkDecoderSnapshot::vkUpdateDescriptorSetWithTemplateKHR(
6092     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6093     VkDevice device, VkDescriptorSet descriptorSet,
6094     VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) {
6095     mImpl->vkUpdateDescriptorSetWithTemplateKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6096                                                 device, descriptorSet, descriptorUpdateTemplate,
6097                                                 pData);
6098 }
6099 #endif
6100 #ifdef VK_KHR_create_renderpass2
vkCreateRenderPass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)6101 void VkDecoderSnapshot::vkCreateRenderPass2KHR(
6102     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6103     VkResult input_result, VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo,
6104     const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) {
6105     mImpl->vkCreateRenderPass2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6106                                   device, pCreateInfo, pAllocator, pRenderPass);
6107 }
6108 #endif
6109 #ifdef VK_KHR_create_renderpass2
vkCmdBeginRenderPass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)6110 void VkDecoderSnapshot::vkCmdBeginRenderPass2KHR(const uint8_t* snapshotTraceBegin,
6111                                                  size_t snapshotTraceBytes,
6112                                                  android::base::BumpPool* pool,
6113                                                  VkCommandBuffer commandBuffer,
6114                                                  const VkRenderPassBeginInfo* pRenderPassBegin,
6115                                                  const VkSubpassBeginInfo* pSubpassBeginInfo) {
6116     mImpl->vkCmdBeginRenderPass2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6117                                     pRenderPassBegin, pSubpassBeginInfo);
6118 }
6119 #endif
6120 #ifdef VK_KHR_create_renderpass2
vkCmdNextSubpass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)6121 void VkDecoderSnapshot::vkCmdNextSubpass2KHR(const uint8_t* snapshotTraceBegin,
6122                                              size_t snapshotTraceBytes,
6123                                              android::base::BumpPool* pool,
6124                                              VkCommandBuffer commandBuffer,
6125                                              const VkSubpassBeginInfo* pSubpassBeginInfo,
6126                                              const VkSubpassEndInfo* pSubpassEndInfo) {
6127     mImpl->vkCmdNextSubpass2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6128                                 pSubpassBeginInfo, pSubpassEndInfo);
6129 }
6130 #endif
6131 #ifdef VK_KHR_create_renderpass2
vkCmdEndRenderPass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)6132 void VkDecoderSnapshot::vkCmdEndRenderPass2KHR(const uint8_t* snapshotTraceBegin,
6133                                                size_t snapshotTraceBytes,
6134                                                android::base::BumpPool* pool,
6135                                                VkCommandBuffer commandBuffer,
6136                                                const VkSubpassEndInfo* pSubpassEndInfo) {
6137     mImpl->vkCmdEndRenderPass2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6138                                   pSubpassEndInfo);
6139 }
6140 #endif
6141 #ifdef VK_KHR_external_fence_capabilities
vkGetPhysicalDeviceExternalFencePropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)6142 void VkDecoderSnapshot::vkGetPhysicalDeviceExternalFencePropertiesKHR(
6143     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6144     VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
6145     VkExternalFenceProperties* pExternalFenceProperties) {
6146     mImpl->vkGetPhysicalDeviceExternalFencePropertiesKHR(snapshotTraceBegin, snapshotTraceBytes,
6147                                                          pool, physicalDevice, pExternalFenceInfo,
6148                                                          pExternalFenceProperties);
6149 }
6150 #endif
6151 #ifdef VK_KHR_external_fence_fd
vkImportFenceFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)6152 void VkDecoderSnapshot::vkImportFenceFdKHR(const uint8_t* snapshotTraceBegin,
6153                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
6154                                            VkResult input_result, VkDevice device,
6155                                            const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
6156     mImpl->vkImportFenceFdKHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
6157                               pImportFenceFdInfo);
6158 }
6159 #endif
6160 #ifdef VK_KHR_external_fence_fd
vkGetFenceFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)6161 void VkDecoderSnapshot::vkGetFenceFdKHR(const uint8_t* snapshotTraceBegin,
6162                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
6163                                         VkResult input_result, VkDevice device,
6164                                         const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) {
6165     mImpl->vkGetFenceFdKHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
6166                            pGetFdInfo, pFd);
6167 }
6168 #endif
6169 #ifdef VK_KHR_get_memory_requirements2
vkGetImageMemoryRequirements2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)6170 void VkDecoderSnapshot::vkGetImageMemoryRequirements2KHR(
6171     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6172     VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo,
6173     VkMemoryRequirements2* pMemoryRequirements) {
6174     mImpl->vkGetImageMemoryRequirements2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, device,
6175                                             pInfo, pMemoryRequirements);
6176 }
6177 #endif
6178 #ifdef VK_KHR_get_memory_requirements2
vkGetBufferMemoryRequirements2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)6179 void VkDecoderSnapshot::vkGetBufferMemoryRequirements2KHR(
6180     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6181     VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo,
6182     VkMemoryRequirements2* pMemoryRequirements) {
6183     mImpl->vkGetBufferMemoryRequirements2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, device,
6184                                              pInfo, pMemoryRequirements);
6185 }
6186 #endif
6187 #ifdef VK_KHR_get_memory_requirements2
vkGetImageSparseMemoryRequirements2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)6188 void VkDecoderSnapshot::vkGetImageSparseMemoryRequirements2KHR(
6189     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6190     VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
6191     uint32_t* pSparseMemoryRequirementCount,
6192     VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
6193     mImpl->vkGetImageSparseMemoryRequirements2KHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6194                                                   device, pInfo, pSparseMemoryRequirementCount,
6195                                                   pSparseMemoryRequirements);
6196 }
6197 #endif
6198 #ifdef VK_KHR_sampler_ycbcr_conversion
vkCreateSamplerYcbcrConversionKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)6199 void VkDecoderSnapshot::vkCreateSamplerYcbcrConversionKHR(
6200     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6201     VkResult input_result, VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
6202     const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) {
6203     mImpl->vkCreateSamplerYcbcrConversionKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6204                                              input_result, device, pCreateInfo, pAllocator,
6205                                              pYcbcrConversion);
6206 }
6207 #endif
6208 #ifdef VK_KHR_sampler_ycbcr_conversion
vkDestroySamplerYcbcrConversionKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)6209 void VkDecoderSnapshot::vkDestroySamplerYcbcrConversionKHR(
6210     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6211     VkDevice device, VkSamplerYcbcrConversion ycbcrConversion,
6212     const VkAllocationCallbacks* pAllocator) {
6213     mImpl->vkDestroySamplerYcbcrConversionKHR(snapshotTraceBegin, snapshotTraceBytes, pool, device,
6214                                               ycbcrConversion, pAllocator);
6215 }
6216 #endif
6217 #ifdef VK_KHR_bind_memory2
vkBindBufferMemory2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)6218 void VkDecoderSnapshot::vkBindBufferMemory2KHR(const uint8_t* snapshotTraceBegin,
6219                                                size_t snapshotTraceBytes,
6220                                                android::base::BumpPool* pool, VkResult input_result,
6221                                                VkDevice device, uint32_t bindInfoCount,
6222                                                const VkBindBufferMemoryInfo* pBindInfos) {
6223     mImpl->vkBindBufferMemory2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6224                                   device, bindInfoCount, pBindInfos);
6225 }
6226 #endif
6227 #ifdef VK_KHR_bind_memory2
vkBindImageMemory2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)6228 void VkDecoderSnapshot::vkBindImageMemory2KHR(const uint8_t* snapshotTraceBegin,
6229                                               size_t snapshotTraceBytes,
6230                                               android::base::BumpPool* pool, VkResult input_result,
6231                                               VkDevice device, uint32_t bindInfoCount,
6232                                               const VkBindImageMemoryInfo* pBindInfos) {
6233     mImpl->vkBindImageMemory2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
6234                                  bindInfoCount, pBindInfos);
6235 }
6236 #endif
6237 #ifdef VK_KHR_maintenance3
vkGetDescriptorSetLayoutSupportKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)6238 void VkDecoderSnapshot::vkGetDescriptorSetLayoutSupportKHR(
6239     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6240     VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
6241     VkDescriptorSetLayoutSupport* pSupport) {
6242     mImpl->vkGetDescriptorSetLayoutSupportKHR(snapshotTraceBegin, snapshotTraceBytes, pool, device,
6243                                               pCreateInfo, pSupport);
6244 }
6245 #endif
6246 #ifdef VK_KHR_buffer_device_address
vkGetBufferDeviceAddressKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDeviceAddress input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)6247 void VkDecoderSnapshot::vkGetBufferDeviceAddressKHR(const uint8_t* snapshotTraceBegin,
6248                                                     size_t snapshotTraceBytes,
6249                                                     android::base::BumpPool* pool,
6250                                                     VkDeviceAddress input_result, VkDevice device,
6251                                                     const VkBufferDeviceAddressInfo* pInfo) {
6252     mImpl->vkGetBufferDeviceAddressKHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6253                                        device, pInfo);
6254 }
6255 #endif
6256 #ifdef VK_KHR_buffer_device_address
vkGetBufferOpaqueCaptureAddressKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)6257 void VkDecoderSnapshot::vkGetBufferOpaqueCaptureAddressKHR(const uint8_t* snapshotTraceBegin,
6258                                                            size_t snapshotTraceBytes,
6259                                                            android::base::BumpPool* pool,
6260                                                            uint64_t input_result, VkDevice device,
6261                                                            const VkBufferDeviceAddressInfo* pInfo) {
6262     mImpl->vkGetBufferOpaqueCaptureAddressKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6263                                               input_result, device, pInfo);
6264 }
6265 #endif
6266 #ifdef VK_KHR_buffer_device_address
vkGetDeviceMemoryOpaqueCaptureAddressKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)6267 void VkDecoderSnapshot::vkGetDeviceMemoryOpaqueCaptureAddressKHR(
6268     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6269     uint64_t input_result, VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
6270     mImpl->vkGetDeviceMemoryOpaqueCaptureAddressKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6271                                                     input_result, device, pInfo);
6272 }
6273 #endif
6274 #ifdef VK_KHR_pipeline_executable_properties
vkGetPipelineExecutablePropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties)6275 void VkDecoderSnapshot::vkGetPipelineExecutablePropertiesKHR(
6276     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6277     VkResult input_result, VkDevice device, const VkPipelineInfoKHR* pPipelineInfo,
6278     uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) {
6279     mImpl->vkGetPipelineExecutablePropertiesKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6280                                                 input_result, device, pPipelineInfo,
6281                                                 pExecutableCount, pProperties);
6282 }
6283 #endif
6284 #ifdef VK_KHR_pipeline_executable_properties
vkGetPipelineExecutableStatisticsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics)6285 void VkDecoderSnapshot::vkGetPipelineExecutableStatisticsKHR(
6286     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6287     VkResult input_result, VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo,
6288     uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) {
6289     mImpl->vkGetPipelineExecutableStatisticsKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6290                                                 input_result, device, pExecutableInfo,
6291                                                 pStatisticCount, pStatistics);
6292 }
6293 #endif
6294 #ifdef VK_KHR_pipeline_executable_properties
vkGetPipelineExecutableInternalRepresentationsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations)6295 void VkDecoderSnapshot::vkGetPipelineExecutableInternalRepresentationsKHR(
6296     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6297     VkResult input_result, VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo,
6298     uint32_t* pInternalRepresentationCount,
6299     VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
6300     mImpl->vkGetPipelineExecutableInternalRepresentationsKHR(
6301         snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device, pExecutableInfo,
6302         pInternalRepresentationCount, pInternalRepresentations);
6303 }
6304 #endif
6305 #ifdef VK_KHR_synchronization2
vkCmdSetEvent2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)6306 void VkDecoderSnapshot::vkCmdSetEvent2KHR(const uint8_t* snapshotTraceBegin,
6307                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
6308                                           VkCommandBuffer commandBuffer, VkEvent event,
6309                                           const VkDependencyInfo* pDependencyInfo) {
6310     mImpl->vkCmdSetEvent2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, event,
6311                              pDependencyInfo);
6312 }
6313 #endif
6314 #ifdef VK_KHR_synchronization2
vkCmdResetEvent2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)6315 void VkDecoderSnapshot::vkCmdResetEvent2KHR(const uint8_t* snapshotTraceBegin,
6316                                             size_t snapshotTraceBytes,
6317                                             android::base::BumpPool* pool,
6318                                             VkCommandBuffer commandBuffer, VkEvent event,
6319                                             VkPipelineStageFlags2 stageMask) {
6320     mImpl->vkCmdResetEvent2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, event,
6321                                stageMask);
6322 }
6323 #endif
6324 #ifdef VK_KHR_synchronization2
vkCmdWaitEvents2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)6325 void VkDecoderSnapshot::vkCmdWaitEvents2KHR(const uint8_t* snapshotTraceBegin,
6326                                             size_t snapshotTraceBytes,
6327                                             android::base::BumpPool* pool,
6328                                             VkCommandBuffer commandBuffer, uint32_t eventCount,
6329                                             const VkEvent* pEvents,
6330                                             const VkDependencyInfo* pDependencyInfos) {
6331     mImpl->vkCmdWaitEvents2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6332                                eventCount, pEvents, pDependencyInfos);
6333 }
6334 #endif
6335 #ifdef VK_KHR_synchronization2
vkCmdPipelineBarrier2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)6336 void VkDecoderSnapshot::vkCmdPipelineBarrier2KHR(const uint8_t* snapshotTraceBegin,
6337                                                  size_t snapshotTraceBytes,
6338                                                  android::base::BumpPool* pool,
6339                                                  VkCommandBuffer commandBuffer,
6340                                                  const VkDependencyInfo* pDependencyInfo) {
6341     mImpl->vkCmdPipelineBarrier2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6342                                     pDependencyInfo);
6343 }
6344 #endif
6345 #ifdef VK_KHR_synchronization2
vkCmdWriteTimestamp2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)6346 void VkDecoderSnapshot::vkCmdWriteTimestamp2KHR(const uint8_t* snapshotTraceBegin,
6347                                                 size_t snapshotTraceBytes,
6348                                                 android::base::BumpPool* pool,
6349                                                 VkCommandBuffer commandBuffer,
6350                                                 VkPipelineStageFlags2 stage, VkQueryPool queryPool,
6351                                                 uint32_t query) {
6352     mImpl->vkCmdWriteTimestamp2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6353                                    stage, queryPool, query);
6354 }
6355 #endif
6356 #ifdef VK_KHR_synchronization2
vkQueueSubmit2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)6357 void VkDecoderSnapshot::vkQueueSubmit2KHR(const uint8_t* snapshotTraceBegin,
6358                                           size_t snapshotTraceBytes, android::base::BumpPool* pool,
6359                                           VkResult input_result, VkQueue queue,
6360                                           uint32_t submitCount, const VkSubmitInfo2* pSubmits,
6361                                           VkFence fence) {
6362     mImpl->vkQueueSubmit2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, queue,
6363                              submitCount, pSubmits, fence);
6364 }
6365 #endif
6366 #ifdef VK_KHR_synchronization2
vkCmdWriteBufferMarker2AMD(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)6367 void VkDecoderSnapshot::vkCmdWriteBufferMarker2AMD(const uint8_t* snapshotTraceBegin,
6368                                                    size_t snapshotTraceBytes,
6369                                                    android::base::BumpPool* pool,
6370                                                    VkCommandBuffer commandBuffer,
6371                                                    VkPipelineStageFlags2 stage, VkBuffer dstBuffer,
6372                                                    VkDeviceSize dstOffset, uint32_t marker) {
6373     mImpl->vkCmdWriteBufferMarker2AMD(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6374                                       stage, dstBuffer, dstOffset, marker);
6375 }
6376 #endif
6377 #ifdef VK_KHR_synchronization2
vkGetQueueCheckpointData2NV(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData)6378 void VkDecoderSnapshot::vkGetQueueCheckpointData2NV(const uint8_t* snapshotTraceBegin,
6379                                                     size_t snapshotTraceBytes,
6380                                                     android::base::BumpPool* pool, VkQueue queue,
6381                                                     uint32_t* pCheckpointDataCount,
6382                                                     VkCheckpointData2NV* pCheckpointData) {
6383     mImpl->vkGetQueueCheckpointData2NV(snapshotTraceBegin, snapshotTraceBytes, pool, queue,
6384                                        pCheckpointDataCount, pCheckpointData);
6385 }
6386 #endif
6387 #ifdef VK_KHR_copy_commands2
vkCmdCopyBuffer2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)6388 void VkDecoderSnapshot::vkCmdCopyBuffer2KHR(const uint8_t* snapshotTraceBegin,
6389                                             size_t snapshotTraceBytes,
6390                                             android::base::BumpPool* pool,
6391                                             VkCommandBuffer commandBuffer,
6392                                             const VkCopyBufferInfo2* pCopyBufferInfo) {
6393     mImpl->vkCmdCopyBuffer2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6394                                pCopyBufferInfo);
6395 }
6396 #endif
6397 #ifdef VK_KHR_copy_commands2
vkCmdCopyImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)6398 void VkDecoderSnapshot::vkCmdCopyImage2KHR(const uint8_t* snapshotTraceBegin,
6399                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
6400                                            VkCommandBuffer commandBuffer,
6401                                            const VkCopyImageInfo2* pCopyImageInfo) {
6402     mImpl->vkCmdCopyImage2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6403                               pCopyImageInfo);
6404 }
6405 #endif
6406 #ifdef VK_KHR_copy_commands2
vkCmdCopyBufferToImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)6407 void VkDecoderSnapshot::vkCmdCopyBufferToImage2KHR(
6408     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6409     VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
6410     mImpl->vkCmdCopyBufferToImage2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6411                                       pCopyBufferToImageInfo);
6412 }
6413 #endif
6414 #ifdef VK_KHR_copy_commands2
vkCmdCopyImageToBuffer2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)6415 void VkDecoderSnapshot::vkCmdCopyImageToBuffer2KHR(
6416     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6417     VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
6418     mImpl->vkCmdCopyImageToBuffer2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6419                                       pCopyImageToBufferInfo);
6420 }
6421 #endif
6422 #ifdef VK_KHR_copy_commands2
vkCmdBlitImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)6423 void VkDecoderSnapshot::vkCmdBlitImage2KHR(const uint8_t* snapshotTraceBegin,
6424                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
6425                                            VkCommandBuffer commandBuffer,
6426                                            const VkBlitImageInfo2* pBlitImageInfo) {
6427     mImpl->vkCmdBlitImage2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6428                               pBlitImageInfo);
6429 }
6430 #endif
6431 #ifdef VK_KHR_copy_commands2
vkCmdResolveImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)6432 void VkDecoderSnapshot::vkCmdResolveImage2KHR(const uint8_t* snapshotTraceBegin,
6433                                               size_t snapshotTraceBytes,
6434                                               android::base::BumpPool* pool,
6435                                               VkCommandBuffer commandBuffer,
6436                                               const VkResolveImageInfo2* pResolveImageInfo) {
6437     mImpl->vkCmdResolveImage2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6438                                  pResolveImageInfo);
6439 }
6440 #endif
6441 #ifdef VK_KHR_maintenance4
vkGetDeviceBufferMemoryRequirementsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)6442 void VkDecoderSnapshot::vkGetDeviceBufferMemoryRequirementsKHR(
6443     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6444     VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo,
6445     VkMemoryRequirements2* pMemoryRequirements) {
6446     mImpl->vkGetDeviceBufferMemoryRequirementsKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6447                                                   device, pInfo, pMemoryRequirements);
6448 }
6449 #endif
6450 #ifdef VK_KHR_maintenance4
vkGetDeviceImageMemoryRequirementsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)6451 void VkDecoderSnapshot::vkGetDeviceImageMemoryRequirementsKHR(
6452     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6453     VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
6454     VkMemoryRequirements2* pMemoryRequirements) {
6455     mImpl->vkGetDeviceImageMemoryRequirementsKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6456                                                  device, pInfo, pMemoryRequirements);
6457 }
6458 #endif
6459 #ifdef VK_KHR_maintenance4
vkGetDeviceImageSparseMemoryRequirementsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)6460 void VkDecoderSnapshot::vkGetDeviceImageSparseMemoryRequirementsKHR(
6461     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6462     VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
6463     uint32_t* pSparseMemoryRequirementCount,
6464     VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
6465     mImpl->vkGetDeviceImageSparseMemoryRequirementsKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6466                                                        device, pInfo, pSparseMemoryRequirementCount,
6467                                                        pSparseMemoryRequirements);
6468 }
6469 #endif
6470 #ifdef VK_KHR_maintenance5
vkCmdBindIndexBuffer2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkDeviceSize size,VkIndexType indexType)6471 void VkDecoderSnapshot::vkCmdBindIndexBuffer2KHR(const uint8_t* snapshotTraceBegin,
6472                                                  size_t snapshotTraceBytes,
6473                                                  android::base::BumpPool* pool,
6474                                                  VkCommandBuffer commandBuffer, VkBuffer buffer,
6475                                                  VkDeviceSize offset, VkDeviceSize size,
6476                                                  VkIndexType indexType) {
6477     mImpl->vkCmdBindIndexBuffer2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6478                                     buffer, offset, size, indexType);
6479 }
6480 #endif
6481 #ifdef VK_KHR_maintenance5
vkGetRenderingAreaGranularityKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkRenderingAreaInfoKHR * pRenderingAreaInfo,VkExtent2D * pGranularity)6482 void VkDecoderSnapshot::vkGetRenderingAreaGranularityKHR(
6483     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6484     VkDevice device, const VkRenderingAreaInfoKHR* pRenderingAreaInfo, VkExtent2D* pGranularity) {
6485     mImpl->vkGetRenderingAreaGranularityKHR(snapshotTraceBegin, snapshotTraceBytes, pool, device,
6486                                             pRenderingAreaInfo, pGranularity);
6487 }
6488 #endif
6489 #ifdef VK_KHR_maintenance5
vkGetDeviceImageSubresourceLayoutKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageSubresourceInfoKHR * pInfo,VkSubresourceLayout2KHR * pLayout)6490 void VkDecoderSnapshot::vkGetDeviceImageSubresourceLayoutKHR(
6491     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6492     VkDevice device, const VkDeviceImageSubresourceInfoKHR* pInfo,
6493     VkSubresourceLayout2KHR* pLayout) {
6494     mImpl->vkGetDeviceImageSubresourceLayoutKHR(snapshotTraceBegin, snapshotTraceBytes, pool,
6495                                                 device, pInfo, pLayout);
6496 }
6497 #endif
6498 #ifdef VK_KHR_maintenance5
vkGetImageSubresourceLayout2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkImageSubresource2KHR * pSubresource,VkSubresourceLayout2KHR * pLayout)6499 void VkDecoderSnapshot::vkGetImageSubresourceLayout2KHR(const uint8_t* snapshotTraceBegin,
6500                                                         size_t snapshotTraceBytes,
6501                                                         android::base::BumpPool* pool,
6502                                                         VkDevice device, VkImage image,
6503                                                         const VkImageSubresource2KHR* pSubresource,
6504                                                         VkSubresourceLayout2KHR* pLayout) {
6505     mImpl->vkGetImageSubresourceLayout2KHR(snapshotTraceBegin, snapshotTraceBytes, pool, device,
6506                                            image, pSubresource, pLayout);
6507 }
6508 #endif
6509 #ifdef VK_ANDROID_native_buffer
vkGetSwapchainGrallocUsageANDROID(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,int * grallocUsage)6510 void VkDecoderSnapshot::vkGetSwapchainGrallocUsageANDROID(
6511     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6512     VkResult input_result, VkDevice device, VkFormat format, VkImageUsageFlags imageUsage,
6513     int* grallocUsage) {
6514     mImpl->vkGetSwapchainGrallocUsageANDROID(snapshotTraceBegin, snapshotTraceBytes, pool,
6515                                              input_result, device, format, imageUsage,
6516                                              grallocUsage);
6517 }
6518 #endif
6519 #ifdef VK_ANDROID_native_buffer
vkAcquireImageANDROID(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkImage image,int nativeFenceFd,VkSemaphore semaphore,VkFence fence)6520 void VkDecoderSnapshot::vkAcquireImageANDROID(const uint8_t* snapshotTraceBegin,
6521                                               size_t snapshotTraceBytes,
6522                                               android::base::BumpPool* pool, VkResult input_result,
6523                                               VkDevice device, VkImage image, int nativeFenceFd,
6524                                               VkSemaphore semaphore, VkFence fence) {
6525     mImpl->vkAcquireImageANDROID(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
6526                                  image, nativeFenceFd, semaphore, fence);
6527 }
6528 #endif
6529 #ifdef VK_ANDROID_native_buffer
vkQueueSignalReleaseImageANDROID(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image,int * pNativeFenceFd)6530 void VkDecoderSnapshot::vkQueueSignalReleaseImageANDROID(
6531     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6532     VkResult input_result, VkQueue queue, uint32_t waitSemaphoreCount,
6533     const VkSemaphore* pWaitSemaphores, VkImage image, int* pNativeFenceFd) {
6534     mImpl->vkQueueSignalReleaseImageANDROID(snapshotTraceBegin, snapshotTraceBytes, pool,
6535                                             input_result, queue, waitSemaphoreCount,
6536                                             pWaitSemaphores, image, pNativeFenceFd);
6537 }
6538 #endif
6539 #ifdef VK_ANDROID_native_buffer
vkGetSwapchainGrallocUsage2ANDROID(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,uint64_t * grallocConsumerUsage,uint64_t * grallocProducerUsage)6540 void VkDecoderSnapshot::vkGetSwapchainGrallocUsage2ANDROID(
6541     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6542     VkResult input_result, VkDevice device, VkFormat format, VkImageUsageFlags imageUsage,
6543     VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, uint64_t* grallocConsumerUsage,
6544     uint64_t* grallocProducerUsage) {
6545     mImpl->vkGetSwapchainGrallocUsage2ANDROID(
6546         snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device, format, imageUsage,
6547         swapchainImageUsage, grallocConsumerUsage, grallocProducerUsage);
6548 }
6549 #endif
6550 #ifdef VK_EXT_transform_feedback
vkCmdBindTransformFeedbackBuffersEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes)6551 void VkDecoderSnapshot::vkCmdBindTransformFeedbackBuffersEXT(
6552     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6553     VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount,
6554     const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes) {
6555     mImpl->vkCmdBindTransformFeedbackBuffersEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6556                                                 commandBuffer, firstBinding, bindingCount, pBuffers,
6557                                                 pOffsets, pSizes);
6558 }
6559 #endif
6560 #ifdef VK_EXT_transform_feedback
vkCmdBeginTransformFeedbackEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)6561 void VkDecoderSnapshot::vkCmdBeginTransformFeedbackEXT(
6562     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6563     VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount,
6564     const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) {
6565     mImpl->vkCmdBeginTransformFeedbackEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6566                                           commandBuffer, firstCounterBuffer, counterBufferCount,
6567                                           pCounterBuffers, pCounterBufferOffsets);
6568 }
6569 #endif
6570 #ifdef VK_EXT_transform_feedback
vkCmdEndTransformFeedbackEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)6571 void VkDecoderSnapshot::vkCmdEndTransformFeedbackEXT(
6572     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6573     VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount,
6574     const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets) {
6575     mImpl->vkCmdEndTransformFeedbackEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6576                                         firstCounterBuffer, counterBufferCount, pCounterBuffers,
6577                                         pCounterBufferOffsets);
6578 }
6579 #endif
6580 #ifdef VK_EXT_transform_feedback
vkCmdBeginQueryIndexedEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index)6581 void VkDecoderSnapshot::vkCmdBeginQueryIndexedEXT(const uint8_t* snapshotTraceBegin,
6582                                                   size_t snapshotTraceBytes,
6583                                                   android::base::BumpPool* pool,
6584                                                   VkCommandBuffer commandBuffer,
6585                                                   VkQueryPool queryPool, uint32_t query,
6586                                                   VkQueryControlFlags flags, uint32_t index) {
6587     mImpl->vkCmdBeginQueryIndexedEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6588                                      queryPool, query, flags, index);
6589 }
6590 #endif
6591 #ifdef VK_EXT_transform_feedback
vkCmdEndQueryIndexedEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index)6592 void VkDecoderSnapshot::vkCmdEndQueryIndexedEXT(
6593     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6594     VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index) {
6595     mImpl->vkCmdEndQueryIndexedEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6596                                    queryPool, query, index);
6597 }
6598 #endif
6599 #ifdef VK_EXT_transform_feedback
vkCmdDrawIndirectByteCountEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride)6600 void VkDecoderSnapshot::vkCmdDrawIndirectByteCountEXT(
6601     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6602     VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance,
6603     VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset,
6604     uint32_t vertexStride) {
6605     mImpl->vkCmdDrawIndirectByteCountEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6606                                          commandBuffer, instanceCount, firstInstance, counterBuffer,
6607                                          counterBufferOffset, counterOffset, vertexStride);
6608 }
6609 #endif
6610 #ifdef VK_EXT_debug_utils
vkSetDebugUtilsObjectNameEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)6611 void VkDecoderSnapshot::vkSetDebugUtilsObjectNameEXT(
6612     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6613     VkResult input_result, VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
6614     mImpl->vkSetDebugUtilsObjectNameEXT(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6615                                         device, pNameInfo);
6616 }
6617 #endif
6618 #ifdef VK_EXT_debug_utils
vkSetDebugUtilsObjectTagEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)6619 void VkDecoderSnapshot::vkSetDebugUtilsObjectTagEXT(const uint8_t* snapshotTraceBegin,
6620                                                     size_t snapshotTraceBytes,
6621                                                     android::base::BumpPool* pool,
6622                                                     VkResult input_result, VkDevice device,
6623                                                     const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
6624     mImpl->vkSetDebugUtilsObjectTagEXT(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6625                                        device, pTagInfo);
6626 }
6627 #endif
6628 #ifdef VK_EXT_debug_utils
vkQueueBeginDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)6629 void VkDecoderSnapshot::vkQueueBeginDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin,
6630                                                        size_t snapshotTraceBytes,
6631                                                        android::base::BumpPool* pool, VkQueue queue,
6632                                                        const VkDebugUtilsLabelEXT* pLabelInfo) {
6633     mImpl->vkQueueBeginDebugUtilsLabelEXT(snapshotTraceBegin, snapshotTraceBytes, pool, queue,
6634                                           pLabelInfo);
6635 }
6636 #endif
6637 #ifdef VK_EXT_debug_utils
vkQueueEndDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue)6638 void VkDecoderSnapshot::vkQueueEndDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin,
6639                                                      size_t snapshotTraceBytes,
6640                                                      android::base::BumpPool* pool, VkQueue queue) {
6641     mImpl->vkQueueEndDebugUtilsLabelEXT(snapshotTraceBegin, snapshotTraceBytes, pool, queue);
6642 }
6643 #endif
6644 #ifdef VK_EXT_debug_utils
vkQueueInsertDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)6645 void VkDecoderSnapshot::vkQueueInsertDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin,
6646                                                         size_t snapshotTraceBytes,
6647                                                         android::base::BumpPool* pool,
6648                                                         VkQueue queue,
6649                                                         const VkDebugUtilsLabelEXT* pLabelInfo) {
6650     mImpl->vkQueueInsertDebugUtilsLabelEXT(snapshotTraceBegin, snapshotTraceBytes, pool, queue,
6651                                            pLabelInfo);
6652 }
6653 #endif
6654 #ifdef VK_EXT_debug_utils
vkCmdBeginDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)6655 void VkDecoderSnapshot::vkCmdBeginDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin,
6656                                                      size_t snapshotTraceBytes,
6657                                                      android::base::BumpPool* pool,
6658                                                      VkCommandBuffer commandBuffer,
6659                                                      const VkDebugUtilsLabelEXT* pLabelInfo) {
6660     mImpl->vkCmdBeginDebugUtilsLabelEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6661                                         pLabelInfo);
6662 }
6663 #endif
6664 #ifdef VK_EXT_debug_utils
vkCmdEndDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)6665 void VkDecoderSnapshot::vkCmdEndDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin,
6666                                                    size_t snapshotTraceBytes,
6667                                                    android::base::BumpPool* pool,
6668                                                    VkCommandBuffer commandBuffer) {
6669     mImpl->vkCmdEndDebugUtilsLabelEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer);
6670 }
6671 #endif
6672 #ifdef VK_EXT_debug_utils
vkCmdInsertDebugUtilsLabelEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)6673 void VkDecoderSnapshot::vkCmdInsertDebugUtilsLabelEXT(const uint8_t* snapshotTraceBegin,
6674                                                       size_t snapshotTraceBytes,
6675                                                       android::base::BumpPool* pool,
6676                                                       VkCommandBuffer commandBuffer,
6677                                                       const VkDebugUtilsLabelEXT* pLabelInfo) {
6678     mImpl->vkCmdInsertDebugUtilsLabelEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6679                                          commandBuffer, pLabelInfo);
6680 }
6681 #endif
6682 #ifdef VK_EXT_debug_utils
vkCreateDebugUtilsMessengerEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkInstance instance,const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDebugUtilsMessengerEXT * pMessenger)6683 void VkDecoderSnapshot::vkCreateDebugUtilsMessengerEXT(
6684     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6685     VkResult input_result, VkInstance instance,
6686     const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator,
6687     VkDebugUtilsMessengerEXT* pMessenger) {
6688     mImpl->vkCreateDebugUtilsMessengerEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6689                                           input_result, instance, pCreateInfo, pAllocator,
6690                                           pMessenger);
6691 }
6692 #endif
6693 #ifdef VK_EXT_debug_utils
vkDestroyDebugUtilsMessengerEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkInstance instance,VkDebugUtilsMessengerEXT messenger,const VkAllocationCallbacks * pAllocator)6694 void VkDecoderSnapshot::vkDestroyDebugUtilsMessengerEXT(const uint8_t* snapshotTraceBegin,
6695                                                         size_t snapshotTraceBytes,
6696                                                         android::base::BumpPool* pool,
6697                                                         VkInstance instance,
6698                                                         VkDebugUtilsMessengerEXT messenger,
6699                                                         const VkAllocationCallbacks* pAllocator) {
6700     mImpl->vkDestroyDebugUtilsMessengerEXT(snapshotTraceBegin, snapshotTraceBytes, pool, instance,
6701                                            messenger, pAllocator);
6702 }
6703 #endif
6704 #ifdef VK_EXT_debug_utils
vkSubmitDebugUtilsMessageEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkInstance instance,VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VkDebugUtilsMessageTypeFlagsEXT messageTypes,const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData)6705 void VkDecoderSnapshot::vkSubmitDebugUtilsMessageEXT(
6706     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6707     VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
6708     VkDebugUtilsMessageTypeFlagsEXT messageTypes,
6709     const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
6710     mImpl->vkSubmitDebugUtilsMessageEXT(snapshotTraceBegin, snapshotTraceBytes, pool, instance,
6711                                         messageSeverity, messageTypes, pCallbackData);
6712 }
6713 #endif
6714 #ifdef VK_EXT_tooling_info
vkGetPhysicalDeviceToolPropertiesEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties)6715 void VkDecoderSnapshot::vkGetPhysicalDeviceToolPropertiesEXT(
6716     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6717     VkResult input_result, VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
6718     VkPhysicalDeviceToolProperties* pToolProperties) {
6719     mImpl->vkGetPhysicalDeviceToolPropertiesEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6720                                                 input_result, physicalDevice, pToolCount,
6721                                                 pToolProperties);
6722 }
6723 #endif
6724 #ifdef VK_EXT_line_rasterization
vkCmdSetLineStippleEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)6725 void VkDecoderSnapshot::vkCmdSetLineStippleEXT(
6726     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6727     VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern) {
6728     mImpl->vkCmdSetLineStippleEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6729                                   lineStippleFactor, lineStipplePattern);
6730 }
6731 #endif
6732 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetCullModeEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)6733 void VkDecoderSnapshot::vkCmdSetCullModeEXT(const uint8_t* snapshotTraceBegin,
6734                                             size_t snapshotTraceBytes,
6735                                             android::base::BumpPool* pool,
6736                                             VkCommandBuffer commandBuffer,
6737                                             VkCullModeFlags cullMode) {
6738     mImpl->vkCmdSetCullModeEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6739                                cullMode);
6740 }
6741 #endif
6742 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetFrontFaceEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkFrontFace frontFace)6743 void VkDecoderSnapshot::vkCmdSetFrontFaceEXT(const uint8_t* snapshotTraceBegin,
6744                                              size_t snapshotTraceBytes,
6745                                              android::base::BumpPool* pool,
6746                                              VkCommandBuffer commandBuffer, VkFrontFace frontFace) {
6747     mImpl->vkCmdSetFrontFaceEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6748                                 frontFace);
6749 }
6750 #endif
6751 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetPrimitiveTopologyEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)6752 void VkDecoderSnapshot::vkCmdSetPrimitiveTopologyEXT(const uint8_t* snapshotTraceBegin,
6753                                                      size_t snapshotTraceBytes,
6754                                                      android::base::BumpPool* pool,
6755                                                      VkCommandBuffer commandBuffer,
6756                                                      VkPrimitiveTopology primitiveTopology) {
6757     mImpl->vkCmdSetPrimitiveTopologyEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6758                                         primitiveTopology);
6759 }
6760 #endif
6761 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetViewportWithCountEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)6762 void VkDecoderSnapshot::vkCmdSetViewportWithCountEXT(
6763     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6764     VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports) {
6765     mImpl->vkCmdSetViewportWithCountEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6766                                         viewportCount, pViewports);
6767 }
6768 #endif
6769 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetScissorWithCountEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)6770 void VkDecoderSnapshot::vkCmdSetScissorWithCountEXT(
6771     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6772     VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors) {
6773     mImpl->vkCmdSetScissorWithCountEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6774                                        scissorCount, pScissors);
6775 }
6776 #endif
6777 #ifdef VK_EXT_extended_dynamic_state
vkCmdBindVertexBuffers2EXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)6778 void VkDecoderSnapshot::vkCmdBindVertexBuffers2EXT(
6779     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6780     VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount,
6781     const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes,
6782     const VkDeviceSize* pStrides) {
6783     mImpl->vkCmdBindVertexBuffers2EXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6784                                       firstBinding, bindingCount, pBuffers, pOffsets, pSizes,
6785                                       pStrides);
6786 }
6787 #endif
6788 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetDepthTestEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)6789 void VkDecoderSnapshot::vkCmdSetDepthTestEnableEXT(const uint8_t* snapshotTraceBegin,
6790                                                    size_t snapshotTraceBytes,
6791                                                    android::base::BumpPool* pool,
6792                                                    VkCommandBuffer commandBuffer,
6793                                                    VkBool32 depthTestEnable) {
6794     mImpl->vkCmdSetDepthTestEnableEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6795                                       depthTestEnable);
6796 }
6797 #endif
6798 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetDepthWriteEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)6799 void VkDecoderSnapshot::vkCmdSetDepthWriteEnableEXT(const uint8_t* snapshotTraceBegin,
6800                                                     size_t snapshotTraceBytes,
6801                                                     android::base::BumpPool* pool,
6802                                                     VkCommandBuffer commandBuffer,
6803                                                     VkBool32 depthWriteEnable) {
6804     mImpl->vkCmdSetDepthWriteEnableEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6805                                        depthWriteEnable);
6806 }
6807 #endif
6808 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetDepthCompareOpEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)6809 void VkDecoderSnapshot::vkCmdSetDepthCompareOpEXT(const uint8_t* snapshotTraceBegin,
6810                                                   size_t snapshotTraceBytes,
6811                                                   android::base::BumpPool* pool,
6812                                                   VkCommandBuffer commandBuffer,
6813                                                   VkCompareOp depthCompareOp) {
6814     mImpl->vkCmdSetDepthCompareOpEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6815                                      depthCompareOp);
6816 }
6817 #endif
6818 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetDepthBoundsTestEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)6819 void VkDecoderSnapshot::vkCmdSetDepthBoundsTestEnableEXT(const uint8_t* snapshotTraceBegin,
6820                                                          size_t snapshotTraceBytes,
6821                                                          android::base::BumpPool* pool,
6822                                                          VkCommandBuffer commandBuffer,
6823                                                          VkBool32 depthBoundsTestEnable) {
6824     mImpl->vkCmdSetDepthBoundsTestEnableEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6825                                             commandBuffer, depthBoundsTestEnable);
6826 }
6827 #endif
6828 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetStencilTestEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)6829 void VkDecoderSnapshot::vkCmdSetStencilTestEnableEXT(const uint8_t* snapshotTraceBegin,
6830                                                      size_t snapshotTraceBytes,
6831                                                      android::base::BumpPool* pool,
6832                                                      VkCommandBuffer commandBuffer,
6833                                                      VkBool32 stencilTestEnable) {
6834     mImpl->vkCmdSetStencilTestEnableEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6835                                         stencilTestEnable);
6836 }
6837 #endif
6838 #ifdef VK_EXT_extended_dynamic_state
vkCmdSetStencilOpEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)6839 void VkDecoderSnapshot::vkCmdSetStencilOpEXT(
6840     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6841     VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp,
6842     VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) {
6843     mImpl->vkCmdSetStencilOpEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6844                                 faceMask, failOp, passOp, depthFailOp, compareOp);
6845 }
6846 #endif
6847 #ifdef VK_EXT_host_image_copy
vkCopyMemoryToImageEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCopyMemoryToImageInfoEXT * pCopyMemoryToImageInfo)6848 void VkDecoderSnapshot::vkCopyMemoryToImageEXT(
6849     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6850     VkResult input_result, VkDevice device,
6851     const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) {
6852     mImpl->vkCopyMemoryToImageEXT(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6853                                   device, pCopyMemoryToImageInfo);
6854 }
6855 #endif
6856 #ifdef VK_EXT_host_image_copy
vkCopyImageToMemoryEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCopyImageToMemoryInfoEXT * pCopyImageToMemoryInfo)6857 void VkDecoderSnapshot::vkCopyImageToMemoryEXT(
6858     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6859     VkResult input_result, VkDevice device,
6860     const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) {
6861     mImpl->vkCopyImageToMemoryEXT(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6862                                   device, pCopyImageToMemoryInfo);
6863 }
6864 #endif
6865 #ifdef VK_EXT_host_image_copy
vkCopyImageToImageEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCopyImageToImageInfoEXT * pCopyImageToImageInfo)6866 void VkDecoderSnapshot::vkCopyImageToImageEXT(
6867     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6868     VkResult input_result, VkDevice device,
6869     const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) {
6870     mImpl->vkCopyImageToImageEXT(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
6871                                  pCopyImageToImageInfo);
6872 }
6873 #endif
6874 #ifdef VK_EXT_host_image_copy
vkTransitionImageLayoutEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t transitionCount,const VkHostImageLayoutTransitionInfoEXT * pTransitions)6875 void VkDecoderSnapshot::vkTransitionImageLayoutEXT(
6876     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6877     VkResult input_result, VkDevice device, uint32_t transitionCount,
6878     const VkHostImageLayoutTransitionInfoEXT* pTransitions) {
6879     mImpl->vkTransitionImageLayoutEXT(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6880                                       device, transitionCount, pTransitions);
6881 }
6882 #endif
6883 #ifdef VK_EXT_host_image_copy
vkGetImageSubresourceLayout2EXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkImageSubresource2KHR * pSubresource,VkSubresourceLayout2KHR * pLayout)6884 void VkDecoderSnapshot::vkGetImageSubresourceLayout2EXT(const uint8_t* snapshotTraceBegin,
6885                                                         size_t snapshotTraceBytes,
6886                                                         android::base::BumpPool* pool,
6887                                                         VkDevice device, VkImage image,
6888                                                         const VkImageSubresource2KHR* pSubresource,
6889                                                         VkSubresourceLayout2KHR* pLayout) {
6890     mImpl->vkGetImageSubresourceLayout2EXT(snapshotTraceBegin, snapshotTraceBytes, pool, device,
6891                                            image, pSubresource, pLayout);
6892 }
6893 #endif
6894 #ifdef VK_EXT_swapchain_maintenance1
vkReleaseSwapchainImagesEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo)6895 void VkDecoderSnapshot::vkReleaseSwapchainImagesEXT(
6896     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6897     VkResult input_result, VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
6898     mImpl->vkReleaseSwapchainImagesEXT(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6899                                        device, pReleaseInfo);
6900 }
6901 #endif
6902 #ifdef VK_EXT_private_data
vkCreatePrivateDataSlotEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)6903 void VkDecoderSnapshot::vkCreatePrivateDataSlotEXT(
6904     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6905     VkResult input_result, VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo,
6906     const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) {
6907     mImpl->vkCreatePrivateDataSlotEXT(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
6908                                       device, pCreateInfo, pAllocator, pPrivateDataSlot);
6909 }
6910 #endif
6911 #ifdef VK_EXT_private_data
vkDestroyPrivateDataSlotEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)6912 void VkDecoderSnapshot::vkDestroyPrivateDataSlotEXT(const uint8_t* snapshotTraceBegin,
6913                                                     size_t snapshotTraceBytes,
6914                                                     android::base::BumpPool* pool, VkDevice device,
6915                                                     VkPrivateDataSlot privateDataSlot,
6916                                                     const VkAllocationCallbacks* pAllocator) {
6917     mImpl->vkDestroyPrivateDataSlotEXT(snapshotTraceBegin, snapshotTraceBytes, pool, device,
6918                                        privateDataSlot, pAllocator);
6919 }
6920 #endif
6921 #ifdef VK_EXT_private_data
vkSetPrivateDataEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)6922 void VkDecoderSnapshot::vkSetPrivateDataEXT(const uint8_t* snapshotTraceBegin,
6923                                             size_t snapshotTraceBytes,
6924                                             android::base::BumpPool* pool, VkResult input_result,
6925                                             VkDevice device, VkObjectType objectType,
6926                                             uint64_t objectHandle,
6927                                             VkPrivateDataSlot privateDataSlot, uint64_t data) {
6928     mImpl->vkSetPrivateDataEXT(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
6929                                objectType, objectHandle, privateDataSlot, data);
6930 }
6931 #endif
6932 #ifdef VK_EXT_private_data
vkGetPrivateDataEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)6933 void VkDecoderSnapshot::vkGetPrivateDataEXT(const uint8_t* snapshotTraceBegin,
6934                                             size_t snapshotTraceBytes,
6935                                             android::base::BumpPool* pool, VkDevice device,
6936                                             VkObjectType objectType, uint64_t objectHandle,
6937                                             VkPrivateDataSlot privateDataSlot, uint64_t* pData) {
6938     mImpl->vkGetPrivateDataEXT(snapshotTraceBegin, snapshotTraceBytes, pool, device, objectType,
6939                                objectHandle, privateDataSlot, pData);
6940 }
6941 #endif
6942 #ifdef VK_EXT_extended_dynamic_state2
vkCmdSetPatchControlPointsEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t patchControlPoints)6943 void VkDecoderSnapshot::vkCmdSetPatchControlPointsEXT(const uint8_t* snapshotTraceBegin,
6944                                                       size_t snapshotTraceBytes,
6945                                                       android::base::BumpPool* pool,
6946                                                       VkCommandBuffer commandBuffer,
6947                                                       uint32_t patchControlPoints) {
6948     mImpl->vkCmdSetPatchControlPointsEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6949                                          commandBuffer, patchControlPoints);
6950 }
6951 #endif
6952 #ifdef VK_EXT_extended_dynamic_state2
vkCmdSetRasterizerDiscardEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)6953 void VkDecoderSnapshot::vkCmdSetRasterizerDiscardEnableEXT(const uint8_t* snapshotTraceBegin,
6954                                                            size_t snapshotTraceBytes,
6955                                                            android::base::BumpPool* pool,
6956                                                            VkCommandBuffer commandBuffer,
6957                                                            VkBool32 rasterizerDiscardEnable) {
6958     mImpl->vkCmdSetRasterizerDiscardEnableEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6959                                               commandBuffer, rasterizerDiscardEnable);
6960 }
6961 #endif
6962 #ifdef VK_EXT_extended_dynamic_state2
vkCmdSetDepthBiasEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)6963 void VkDecoderSnapshot::vkCmdSetDepthBiasEnableEXT(const uint8_t* snapshotTraceBegin,
6964                                                    size_t snapshotTraceBytes,
6965                                                    android::base::BumpPool* pool,
6966                                                    VkCommandBuffer commandBuffer,
6967                                                    VkBool32 depthBiasEnable) {
6968     mImpl->vkCmdSetDepthBiasEnableEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer,
6969                                       depthBiasEnable);
6970 }
6971 #endif
6972 #ifdef VK_EXT_extended_dynamic_state2
vkCmdSetLogicOpEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkLogicOp logicOp)6973 void VkDecoderSnapshot::vkCmdSetLogicOpEXT(const uint8_t* snapshotTraceBegin,
6974                                            size_t snapshotTraceBytes, android::base::BumpPool* pool,
6975                                            VkCommandBuffer commandBuffer, VkLogicOp logicOp) {
6976     mImpl->vkCmdSetLogicOpEXT(snapshotTraceBegin, snapshotTraceBytes, pool, commandBuffer, logicOp);
6977 }
6978 #endif
6979 #ifdef VK_EXT_extended_dynamic_state2
vkCmdSetPrimitiveRestartEnableEXT(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)6980 void VkDecoderSnapshot::vkCmdSetPrimitiveRestartEnableEXT(const uint8_t* snapshotTraceBegin,
6981                                                           size_t snapshotTraceBytes,
6982                                                           android::base::BumpPool* pool,
6983                                                           VkCommandBuffer commandBuffer,
6984                                                           VkBool32 primitiveRestartEnable) {
6985     mImpl->vkCmdSetPrimitiveRestartEnableEXT(snapshotTraceBegin, snapshotTraceBytes, pool,
6986                                              commandBuffer, primitiveRestartEnable);
6987 }
6988 #endif
6989 #ifdef VK_GOOGLE_gfxstream
vkMapMemoryIntoAddressSpaceGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory,uint64_t * pAddress)6990 void VkDecoderSnapshot::vkMapMemoryIntoAddressSpaceGOOGLE(
6991     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
6992     VkResult input_result, VkDevice device, VkDeviceMemory memory, uint64_t* pAddress) {
6993     mImpl->vkMapMemoryIntoAddressSpaceGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
6994                                              input_result, device, memory, pAddress);
6995 }
6996 #endif
6997 #ifdef VK_GOOGLE_gfxstream
vkUpdateDescriptorSetWithTemplateSizedGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,uint32_t imageInfoCount,uint32_t bufferInfoCount,uint32_t bufferViewCount,const uint32_t * pImageInfoEntryIndices,const uint32_t * pBufferInfoEntryIndices,const uint32_t * pBufferViewEntryIndices,const VkDescriptorImageInfo * pImageInfos,const VkDescriptorBufferInfo * pBufferInfos,const VkBufferView * pBufferViews)6998 void VkDecoderSnapshot::vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
6999     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7000     VkDevice device, VkDescriptorSet descriptorSet,
7001     VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
7002     uint32_t bufferInfoCount, uint32_t bufferViewCount, const uint32_t* pImageInfoEntryIndices,
7003     const uint32_t* pBufferInfoEntryIndices, const uint32_t* pBufferViewEntryIndices,
7004     const VkDescriptorImageInfo* pImageInfos, const VkDescriptorBufferInfo* pBufferInfos,
7005     const VkBufferView* pBufferViews) {
7006     mImpl->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
7007         snapshotTraceBegin, snapshotTraceBytes, pool, device, descriptorSet,
7008         descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount,
7009         pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos,
7010         pBufferInfos, pBufferViews);
7011 }
7012 #endif
7013 #ifdef VK_GOOGLE_gfxstream
vkBeginCommandBufferAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)7014 void VkDecoderSnapshot::vkBeginCommandBufferAsyncGOOGLE(
7015     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7016     VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) {
7017     mImpl->vkBeginCommandBufferAsyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
7018                                            commandBuffer, pBeginInfo);
7019 }
7020 #endif
7021 #ifdef VK_GOOGLE_gfxstream
vkEndCommandBufferAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)7022 void VkDecoderSnapshot::vkEndCommandBufferAsyncGOOGLE(const uint8_t* snapshotTraceBegin,
7023                                                       size_t snapshotTraceBytes,
7024                                                       android::base::BumpPool* pool,
7025                                                       VkCommandBuffer commandBuffer) {
7026     mImpl->vkEndCommandBufferAsyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
7027                                          commandBuffer);
7028 }
7029 #endif
7030 #ifdef VK_GOOGLE_gfxstream
vkResetCommandBufferAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)7031 void VkDecoderSnapshot::vkResetCommandBufferAsyncGOOGLE(const uint8_t* snapshotTraceBegin,
7032                                                         size_t snapshotTraceBytes,
7033                                                         android::base::BumpPool* pool,
7034                                                         VkCommandBuffer commandBuffer,
7035                                                         VkCommandBufferResetFlags flags) {
7036     mImpl->vkResetCommandBufferAsyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
7037                                            commandBuffer, flags);
7038 }
7039 #endif
7040 #ifdef VK_GOOGLE_gfxstream
vkCommandBufferHostSyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t needHostSync,uint32_t sequenceNumber)7041 void VkDecoderSnapshot::vkCommandBufferHostSyncGOOGLE(
7042     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7043     VkCommandBuffer commandBuffer, uint32_t needHostSync, uint32_t sequenceNumber) {
7044     mImpl->vkCommandBufferHostSyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
7045                                          commandBuffer, needHostSync, sequenceNumber);
7046 }
7047 #endif
7048 #ifdef VK_GOOGLE_gfxstream
vkCreateImageWithRequirementsGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage,VkMemoryRequirements * pMemoryRequirements)7049 void VkDecoderSnapshot::vkCreateImageWithRequirementsGOOGLE(
7050     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7051     VkResult input_result, VkDevice device, const VkImageCreateInfo* pCreateInfo,
7052     const VkAllocationCallbacks* pAllocator, VkImage* pImage,
7053     VkMemoryRequirements* pMemoryRequirements) {
7054     mImpl->vkCreateImageWithRequirementsGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
7055                                                input_result, device, pCreateInfo, pAllocator,
7056                                                pImage, pMemoryRequirements);
7057 }
7058 #endif
7059 #ifdef VK_GOOGLE_gfxstream
vkCreateBufferWithRequirementsGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer,VkMemoryRequirements * pMemoryRequirements)7060 void VkDecoderSnapshot::vkCreateBufferWithRequirementsGOOGLE(
7061     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7062     VkResult input_result, VkDevice device, const VkBufferCreateInfo* pCreateInfo,
7063     const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer,
7064     VkMemoryRequirements* pMemoryRequirements) {
7065     mImpl->vkCreateBufferWithRequirementsGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
7066                                                 input_result, device, pCreateInfo, pAllocator,
7067                                                 pBuffer, pMemoryRequirements);
7068 }
7069 #endif
7070 #ifdef VK_GOOGLE_gfxstream
vkGetMemoryHostAddressInfoGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory,uint64_t * pAddress,uint64_t * pSize,uint64_t * pHostmemId)7071 void VkDecoderSnapshot::vkGetMemoryHostAddressInfoGOOGLE(const uint8_t* snapshotTraceBegin,
7072                                                          size_t snapshotTraceBytes,
7073                                                          android::base::BumpPool* pool,
7074                                                          VkResult input_result, VkDevice device,
7075                                                          VkDeviceMemory memory, uint64_t* pAddress,
7076                                                          uint64_t* pSize, uint64_t* pHostmemId) {
7077     mImpl->vkGetMemoryHostAddressInfoGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
7078                                             input_result, device, memory, pAddress, pSize,
7079                                             pHostmemId);
7080 }
7081 #endif
7082 #ifdef VK_GOOGLE_gfxstream
vkFreeMemorySyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)7083 void VkDecoderSnapshot::vkFreeMemorySyncGOOGLE(const uint8_t* snapshotTraceBegin,
7084                                                size_t snapshotTraceBytes,
7085                                                android::base::BumpPool* pool, VkResult input_result,
7086                                                VkDevice device, VkDeviceMemory memory,
7087                                                const VkAllocationCallbacks* pAllocator) {
7088     mImpl->vkFreeMemorySyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, input_result,
7089                                   device, memory, pAllocator);
7090 }
7091 #endif
7092 #ifdef VK_GOOGLE_gfxstream
vkQueueHostSyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t needHostSync,uint32_t sequenceNumber)7093 void VkDecoderSnapshot::vkQueueHostSyncGOOGLE(const uint8_t* snapshotTraceBegin,
7094                                               size_t snapshotTraceBytes,
7095                                               android::base::BumpPool* pool, VkQueue queue,
7096                                               uint32_t needHostSync, uint32_t sequenceNumber) {
7097     mImpl->vkQueueHostSyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, queue, needHostSync,
7098                                  sequenceNumber);
7099 }
7100 #endif
7101 #ifdef VK_GOOGLE_gfxstream
vkQueueSubmitAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)7102 void VkDecoderSnapshot::vkQueueSubmitAsyncGOOGLE(const uint8_t* snapshotTraceBegin,
7103                                                  size_t snapshotTraceBytes,
7104                                                  android::base::BumpPool* pool, VkQueue queue,
7105                                                  uint32_t submitCount, const VkSubmitInfo* pSubmits,
7106                                                  VkFence fence) {
7107     mImpl->vkQueueSubmitAsyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, queue,
7108                                     submitCount, pSubmits, fence);
7109 }
7110 #endif
7111 #ifdef VK_GOOGLE_gfxstream
vkQueueWaitIdleAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue)7112 void VkDecoderSnapshot::vkQueueWaitIdleAsyncGOOGLE(const uint8_t* snapshotTraceBegin,
7113                                                    size_t snapshotTraceBytes,
7114                                                    android::base::BumpPool* pool, VkQueue queue) {
7115     mImpl->vkQueueWaitIdleAsyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, queue);
7116 }
7117 #endif
7118 #ifdef VK_GOOGLE_gfxstream
vkQueueBindSparseAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)7119 void VkDecoderSnapshot::vkQueueBindSparseAsyncGOOGLE(
7120     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7121     VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) {
7122     mImpl->vkQueueBindSparseAsyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, queue,
7123                                         bindInfoCount, pBindInfo, fence);
7124 }
7125 #endif
7126 #ifdef VK_GOOGLE_gfxstream
vkGetLinearImageLayoutGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkFormat format,VkDeviceSize * pOffset,VkDeviceSize * pRowPitchAlignment)7127 void VkDecoderSnapshot::vkGetLinearImageLayoutGOOGLE(const uint8_t* snapshotTraceBegin,
7128                                                      size_t snapshotTraceBytes,
7129                                                      android::base::BumpPool* pool, VkDevice device,
7130                                                      VkFormat format, VkDeviceSize* pOffset,
7131                                                      VkDeviceSize* pRowPitchAlignment) {
7132     mImpl->vkGetLinearImageLayoutGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, device,
7133                                         format, pOffset, pRowPitchAlignment);
7134 }
7135 #endif
7136 #ifdef VK_GOOGLE_gfxstream
vkGetLinearImageLayout2GOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageCreateInfo * pCreateInfo,VkDeviceSize * pOffset,VkDeviceSize * pRowPitchAlignment)7137 void VkDecoderSnapshot::vkGetLinearImageLayout2GOOGLE(
7138     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7139     VkDevice device, const VkImageCreateInfo* pCreateInfo, VkDeviceSize* pOffset,
7140     VkDeviceSize* pRowPitchAlignment) {
7141     mImpl->vkGetLinearImageLayout2GOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, device,
7142                                          pCreateInfo, pOffset, pRowPitchAlignment);
7143 }
7144 #endif
7145 #ifdef VK_GOOGLE_gfxstream
vkQueueFlushCommandsGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,VkCommandBuffer commandBuffer,VkDeviceSize dataSize,const void * pData)7146 void VkDecoderSnapshot::vkQueueFlushCommandsGOOGLE(const uint8_t* snapshotTraceBegin,
7147                                                    size_t snapshotTraceBytes,
7148                                                    android::base::BumpPool* pool, VkQueue queue,
7149                                                    VkCommandBuffer commandBuffer,
7150                                                    VkDeviceSize dataSize, const void* pData) {
7151     mImpl->vkQueueFlushCommandsGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, queue,
7152                                       commandBuffer, dataSize, pData);
7153 }
7154 #endif
7155 #ifdef VK_GOOGLE_gfxstream
vkQueueCommitDescriptorSetUpdatesGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t descriptorPoolCount,const VkDescriptorPool * pDescriptorPools,uint32_t descriptorSetCount,const VkDescriptorSetLayout * pSetLayouts,const uint64_t * pDescriptorSetPoolIds,const uint32_t * pDescriptorSetWhichPool,const uint32_t * pDescriptorSetPendingAllocation,const uint32_t * pDescriptorWriteStartingIndices,uint32_t pendingDescriptorWriteCount,const VkWriteDescriptorSet * pPendingDescriptorWrites)7156 void VkDecoderSnapshot::vkQueueCommitDescriptorSetUpdatesGOOGLE(
7157     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7158     VkQueue queue, uint32_t descriptorPoolCount, const VkDescriptorPool* pDescriptorPools,
7159     uint32_t descriptorSetCount, const VkDescriptorSetLayout* pSetLayouts,
7160     const uint64_t* pDescriptorSetPoolIds, const uint32_t* pDescriptorSetWhichPool,
7161     const uint32_t* pDescriptorSetPendingAllocation,
7162     const uint32_t* pDescriptorWriteStartingIndices, uint32_t pendingDescriptorWriteCount,
7163     const VkWriteDescriptorSet* pPendingDescriptorWrites) {
7164     mImpl->vkQueueCommitDescriptorSetUpdatesGOOGLE(
7165         snapshotTraceBegin, snapshotTraceBytes, pool, queue, descriptorPoolCount, pDescriptorPools,
7166         descriptorSetCount, pSetLayouts, pDescriptorSetPoolIds, pDescriptorSetWhichPool,
7167         pDescriptorSetPendingAllocation, pDescriptorWriteStartingIndices,
7168         pendingDescriptorWriteCount, pPendingDescriptorWrites);
7169 }
7170 #endif
7171 #ifdef VK_GOOGLE_gfxstream
vkCollectDescriptorPoolIdsGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorPool descriptorPool,uint32_t * pPoolIdCount,uint64_t * pPoolIds)7172 void VkDecoderSnapshot::vkCollectDescriptorPoolIdsGOOGLE(
7173     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7174     VkDevice device, VkDescriptorPool descriptorPool, uint32_t* pPoolIdCount, uint64_t* pPoolIds) {
7175     mImpl->vkCollectDescriptorPoolIdsGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, device,
7176                                             descriptorPool, pPoolIdCount, pPoolIds);
7177 }
7178 #endif
7179 #ifdef VK_GOOGLE_gfxstream
vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image)7180 void VkDecoderSnapshot::vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(
7181     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7182     VkQueue queue, uint32_t waitSemaphoreCount, const VkSemaphore* pWaitSemaphores, VkImage image) {
7183     mImpl->vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
7184                                                        queue, waitSemaphoreCount, pWaitSemaphores,
7185                                                        image);
7186 }
7187 #endif
7188 #ifdef VK_GOOGLE_gfxstream
vkQueueFlushCommandsFromAuxMemoryGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,VkCommandBuffer commandBuffer,VkDeviceMemory deviceMemory,VkDeviceSize dataOffset,VkDeviceSize dataSize)7189 void VkDecoderSnapshot::vkQueueFlushCommandsFromAuxMemoryGOOGLE(
7190     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7191     VkQueue queue, VkCommandBuffer commandBuffer, VkDeviceMemory deviceMemory,
7192     VkDeviceSize dataOffset, VkDeviceSize dataSize) {
7193     mImpl->vkQueueFlushCommandsFromAuxMemoryGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool,
7194                                                    queue, commandBuffer, deviceMemory, dataOffset,
7195                                                    dataSize);
7196 }
7197 #endif
7198 #ifdef VK_GOOGLE_gfxstream
vkGetBlobGOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory)7199 void VkDecoderSnapshot::vkGetBlobGOOGLE(const uint8_t* snapshotTraceBegin,
7200                                         size_t snapshotTraceBytes, android::base::BumpPool* pool,
7201                                         VkResult input_result, VkDevice device,
7202                                         VkDeviceMemory memory) {
7203     mImpl->vkGetBlobGOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, input_result, device,
7204                            memory);
7205 }
7206 #endif
7207 #ifdef VK_GOOGLE_gfxstream
vkUpdateDescriptorSetWithTemplateSized2GOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,uint32_t imageInfoCount,uint32_t bufferInfoCount,uint32_t bufferViewCount,uint32_t inlineUniformBlockCount,const uint32_t * pImageInfoEntryIndices,const uint32_t * pBufferInfoEntryIndices,const uint32_t * pBufferViewEntryIndices,const VkDescriptorImageInfo * pImageInfos,const VkDescriptorBufferInfo * pBufferInfos,const VkBufferView * pBufferViews,const uint8_t * pInlineUniformBlockData)7208 void VkDecoderSnapshot::vkUpdateDescriptorSetWithTemplateSized2GOOGLE(
7209     const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool,
7210     VkDevice device, VkDescriptorSet descriptorSet,
7211     VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
7212     uint32_t bufferInfoCount, uint32_t bufferViewCount, uint32_t inlineUniformBlockCount,
7213     const uint32_t* pImageInfoEntryIndices, const uint32_t* pBufferInfoEntryIndices,
7214     const uint32_t* pBufferViewEntryIndices, const VkDescriptorImageInfo* pImageInfos,
7215     const VkDescriptorBufferInfo* pBufferInfos, const VkBufferView* pBufferViews,
7216     const uint8_t* pInlineUniformBlockData) {
7217     mImpl->vkUpdateDescriptorSetWithTemplateSized2GOOGLE(
7218         snapshotTraceBegin, snapshotTraceBytes, pool, device, descriptorSet,
7219         descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount,
7220         inlineUniformBlockCount, pImageInfoEntryIndices, pBufferInfoEntryIndices,
7221         pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews, pInlineUniformBlockData);
7222 }
7223 #endif
7224 #ifdef VK_GOOGLE_gfxstream
vkQueueSubmitAsync2GOOGLE(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)7225 void VkDecoderSnapshot::vkQueueSubmitAsync2GOOGLE(const uint8_t* snapshotTraceBegin,
7226                                                   size_t snapshotTraceBytes,
7227                                                   android::base::BumpPool* pool, VkQueue queue,
7228                                                   uint32_t submitCount,
7229                                                   const VkSubmitInfo2* pSubmits, VkFence fence) {
7230     mImpl->vkQueueSubmitAsync2GOOGLE(snapshotTraceBegin, snapshotTraceBytes, pool, queue,
7231                                      submitCount, pSubmits, fence);
7232 }
7233 #endif
7234