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