1 // Copyright (C) 2018 The Android Open Source Project 2 // Copyright (C) 2018 Google Inc. 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 16 // Autogenerated module VkDecoderSnapshot 17 // 18 // (impl) generated by codegen/vulkan/vulkan-docs-next/scripts/genvk.py -registry 19 // codegen/vulkan/vulkan-docs-next/xml/vk.xml -registryGfxstream 20 // codegen/vulkan/vulkan-docs-next/xml/vk_gfxstream.xml cereal -o host/vulkan/cereal 21 // 22 // Please do not modify directly; 23 // re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh, 24 // or directly from Python by defining: 25 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml 26 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py 27 // CEREAL_OUTPUT_DIR: Where to put the generated sources. 28 // 29 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o 30 // $CEREAL_OUTPUT_DIR 31 // 32 33 #include "VkDecoderSnapshot.h" 34 35 #include "VkDecoderGlobalState.h" 36 #include "VkReconstruction.h" 37 #include "VulkanHandleMapping.h" 38 #include "aemu/base/synchronization/Lock.h" 39 40 using namespace gfxstream::vk; 41 using emugl::GfxApiLogger; 42 using emugl::HealthMonitor; 43 44 class VkDecoderSnapshot::Impl { 45 public: Impl()46 Impl() {} 47 save(android::base::Stream * stream)48 void save(android::base::Stream* stream) { mReconstruction.save(stream); } 49 load(android::base::Stream * stream,GfxApiLogger & gfx_logger,HealthMonitor<> * healthMonitor)50 void load(android::base::Stream* stream, GfxApiLogger& gfx_logger, 51 HealthMonitor<>* healthMonitor) { 52 mReconstruction.load(stream, gfx_logger, healthMonitor); 53 } 54 createExtraHandlesForNextApi(const uint64_t * created,uint32_t count)55 void createExtraHandlesForNextApi(const uint64_t* created, uint32_t count) { 56 mReconstruction.createExtraHandlesForNextApi(created, count); 57 } 58 #ifdef VK_VERSION_1_0 vkCreateInstance(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance)59 void vkCreateInstance(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 60 android::base::BumpPool* pool, VkResult input_result, 61 const VkInstanceCreateInfo* pCreateInfo, 62 const VkAllocationCallbacks* pAllocator, VkInstance* pInstance) { 63 if (!pInstance) return; 64 android::base::AutoLock lock(mLock); 65 // pInstance create 66 mReconstruction.addHandles((const uint64_t*)pInstance, 1); 67 auto apiHandle = mReconstruction.createApiInfo(); 68 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 69 mReconstruction.setApiTrace(apiInfo, OP_vkCreateInstance, snapshotTraceBegin, 70 snapshotTraceBytes); 71 mReconstruction.forEachHandleAddApi((const uint64_t*)pInstance, 1, apiHandle, 72 VkReconstruction::CREATED); 73 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pInstance, 1); 74 } vkDestroyInstance(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkInstance instance,const VkAllocationCallbacks * pAllocator)75 void vkDestroyInstance(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 76 android::base::BumpPool* pool, VkInstance instance, 77 const VkAllocationCallbacks* pAllocator) { 78 android::base::AutoLock lock(mLock); 79 // instance destroy 80 mReconstruction.removeHandles((const uint64_t*)(&instance), 1, true); 81 } vkEnumeratePhysicalDevices(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices)82 void vkEnumeratePhysicalDevices(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 83 android::base::BumpPool* pool, VkResult input_result, 84 VkInstance instance, uint32_t* pPhysicalDeviceCount, 85 VkPhysicalDevice* pPhysicalDevices) { 86 if (!pPhysicalDevices) return; 87 android::base::AutoLock lock(mLock); 88 // pPhysicalDevices create 89 mReconstruction.addHandles((const uint64_t*)pPhysicalDevices, (*(pPhysicalDeviceCount))); 90 mReconstruction.addHandleDependency((const uint64_t*)pPhysicalDevices, 91 (*(pPhysicalDeviceCount)), 92 (uint64_t)(uintptr_t)instance); 93 auto apiHandle = mReconstruction.createApiInfo(); 94 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 95 mReconstruction.setApiTrace(apiInfo, OP_vkEnumeratePhysicalDevices, snapshotTraceBegin, 96 snapshotTraceBytes); 97 if (pPhysicalDeviceCount) { 98 mReconstruction.forEachHandleAddApi((const uint64_t*)pPhysicalDevices, 99 (*(pPhysicalDeviceCount)), apiHandle, 100 VkReconstruction::CREATED); 101 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPhysicalDevices, 102 (*(pPhysicalDeviceCount))); 103 } 104 } vkGetPhysicalDeviceFeatures(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures)105 void vkGetPhysicalDeviceFeatures(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 106 android::base::BumpPool* pool, VkPhysicalDevice physicalDevice, 107 VkPhysicalDeviceFeatures* pFeatures) {} vkGetPhysicalDeviceFormatProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties)108 void vkGetPhysicalDeviceFormatProperties(const uint8_t* snapshotTraceBegin, 109 size_t snapshotTraceBytes, 110 android::base::BumpPool* pool, 111 VkPhysicalDevice physicalDevice, VkFormat format, 112 VkFormatProperties* pFormatProperties) {} vkGetPhysicalDeviceImageFormatProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties)113 void vkGetPhysicalDeviceImageFormatProperties( 114 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 115 VkResult input_result, VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, 116 VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, 117 VkImageFormatProperties* pImageFormatProperties) {} vkGetPhysicalDeviceProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties)118 void vkGetPhysicalDeviceProperties(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 119 android::base::BumpPool* pool, 120 VkPhysicalDevice physicalDevice, 121 VkPhysicalDeviceProperties* pProperties) {} vkGetPhysicalDeviceQueueFamilyProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties)122 void vkGetPhysicalDeviceQueueFamilyProperties(const uint8_t* snapshotTraceBegin, 123 size_t snapshotTraceBytes, 124 android::base::BumpPool* pool, 125 VkPhysicalDevice physicalDevice, 126 uint32_t* pQueueFamilyPropertyCount, 127 VkQueueFamilyProperties* pQueueFamilyProperties) { 128 } vkGetPhysicalDeviceMemoryProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties)129 void vkGetPhysicalDeviceMemoryProperties(const uint8_t* snapshotTraceBegin, 130 size_t snapshotTraceBytes, 131 android::base::BumpPool* pool, 132 VkPhysicalDevice physicalDevice, 133 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {} vkGetInstanceProcAddr(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,PFN_vkVoidFunction input_result,VkInstance instance,const char * pName)134 void vkGetInstanceProcAddr(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 135 android::base::BumpPool* pool, PFN_vkVoidFunction input_result, 136 VkInstance instance, const char* pName) {} vkGetDeviceProcAddr(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,PFN_vkVoidFunction input_result,VkDevice device,const char * pName)137 void vkGetDeviceProcAddr(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 138 android::base::BumpPool* pool, PFN_vkVoidFunction input_result, 139 VkDevice device, const char* pName) {} vkCreateDevice(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice)140 void vkCreateDevice(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 141 android::base::BumpPool* pool, VkResult input_result, 142 VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, 143 const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) { 144 if (!pDevice) return; 145 android::base::AutoLock lock(mLock); 146 // pDevice create 147 mReconstruction.addHandles((const uint64_t*)pDevice, 1); 148 mReconstruction.addHandleDependency((const uint64_t*)pDevice, 1, 149 (uint64_t)(uintptr_t)physicalDevice); 150 auto apiHandle = mReconstruction.createApiInfo(); 151 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 152 mReconstruction.setApiTrace(apiInfo, OP_vkCreateDevice, snapshotTraceBegin, 153 snapshotTraceBytes); 154 mReconstruction.forEachHandleAddApi((const uint64_t*)pDevice, 1, apiHandle, 155 VkReconstruction::CREATED); 156 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pDevice, 1); 157 } vkDestroyDevice(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkAllocationCallbacks * pAllocator)158 void vkDestroyDevice(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 159 android::base::BumpPool* pool, VkDevice device, 160 const VkAllocationCallbacks* pAllocator) { 161 android::base::AutoLock lock(mLock); 162 // device destroy 163 mReconstruction.removeHandles((const uint64_t*)(&device), 1, true); 164 } vkEnumerateInstanceExtensionProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)165 void vkEnumerateInstanceExtensionProperties(const uint8_t* snapshotTraceBegin, 166 size_t snapshotTraceBytes, 167 android::base::BumpPool* pool, 168 VkResult input_result, const char* pLayerName, 169 uint32_t* pPropertyCount, 170 VkExtensionProperties* pProperties) {} vkEnumerateDeviceExtensionProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)171 void vkEnumerateDeviceExtensionProperties(const uint8_t* snapshotTraceBegin, 172 size_t snapshotTraceBytes, 173 android::base::BumpPool* pool, VkResult input_result, 174 VkPhysicalDevice physicalDevice, 175 const char* pLayerName, uint32_t* pPropertyCount, 176 VkExtensionProperties* pProperties) {} vkEnumerateInstanceLayerProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,uint32_t * pPropertyCount,VkLayerProperties * pProperties)177 void vkEnumerateInstanceLayerProperties(const uint8_t* snapshotTraceBegin, 178 size_t snapshotTraceBytes, 179 android::base::BumpPool* pool, VkResult input_result, 180 uint32_t* pPropertyCount, 181 VkLayerProperties* pProperties) {} vkEnumerateDeviceLayerProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties)182 void vkEnumerateDeviceLayerProperties(const uint8_t* snapshotTraceBegin, 183 size_t snapshotTraceBytes, android::base::BumpPool* pool, 184 VkResult input_result, VkPhysicalDevice physicalDevice, 185 uint32_t* pPropertyCount, 186 VkLayerProperties* pProperties) {} vkGetDeviceQueue(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue)187 void vkGetDeviceQueue(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 188 android::base::BumpPool* pool, VkDevice device, uint32_t queueFamilyIndex, 189 uint32_t queueIndex, VkQueue* pQueue) {} vkQueueSubmit(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)190 void vkQueueSubmit(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 191 android::base::BumpPool* pool, VkResult input_result, VkQueue queue, 192 uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence) {} vkQueueWaitIdle(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue)193 void vkQueueWaitIdle(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 194 android::base::BumpPool* pool, VkResult input_result, VkQueue queue) {} vkDeviceWaitIdle(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device)195 void vkDeviceWaitIdle(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 196 android::base::BumpPool* pool, VkResult input_result, VkDevice device) {} vkAllocateMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory)197 void vkAllocateMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 198 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 199 const VkMemoryAllocateInfo* pAllocateInfo, 200 const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) { 201 if (!pMemory) return; 202 android::base::AutoLock lock(mLock); 203 // pMemory create 204 mReconstruction.addHandles((const uint64_t*)pMemory, 1); 205 mReconstruction.addHandleDependency((const uint64_t*)pMemory, 1, 206 (uint64_t)(uintptr_t)device); 207 const VkMemoryDedicatedAllocateInfo* dedicatedAllocateInfo = 208 vk_find_struct<VkMemoryDedicatedAllocateInfo>(pAllocateInfo); 209 if (dedicatedAllocateInfo) { 210 if (dedicatedAllocateInfo->image) { 211 mReconstruction.addHandleDependency( 212 (const uint64_t*)pMemory, 1, 213 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkImage( 214 dedicatedAllocateInfo->image)); 215 } 216 if (dedicatedAllocateInfo->buffer) { 217 mReconstruction.addHandleDependency( 218 (const uint64_t*)pMemory, 1, 219 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkBuffer( 220 dedicatedAllocateInfo->buffer)); 221 } 222 } 223 auto apiHandle = mReconstruction.createApiInfo(); 224 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 225 mReconstruction.setApiTrace(apiInfo, OP_vkAllocateMemory, snapshotTraceBegin, 226 snapshotTraceBytes); 227 mReconstruction.forEachHandleAddApi((const uint64_t*)pMemory, 1, apiHandle, 228 VkReconstruction::CREATED); 229 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pMemory, 1); 230 } vkFreeMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)231 void vkFreeMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 232 android::base::BumpPool* pool, VkDevice device, VkDeviceMemory memory, 233 const VkAllocationCallbacks* pAllocator) { 234 android::base::AutoLock lock(mLock); 235 // memory destroy 236 mReconstruction.removeHandles((const uint64_t*)(&memory), 1, true); 237 } vkMapMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData)238 void vkMapMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 239 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 240 VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, 241 VkMemoryMapFlags flags, void** ppData) {} vkUnmapMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDeviceMemory memory)242 void vkUnmapMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 243 android::base::BumpPool* pool, VkDevice device, VkDeviceMemory memory) {} vkFlushMappedMemoryRanges(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)244 void vkFlushMappedMemoryRanges(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 245 android::base::BumpPool* pool, VkResult input_result, 246 VkDevice device, uint32_t memoryRangeCount, 247 const VkMappedMemoryRange* pMemoryRanges) {} vkInvalidateMappedMemoryRanges(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)248 void vkInvalidateMappedMemoryRanges(const uint8_t* snapshotTraceBegin, 249 size_t snapshotTraceBytes, android::base::BumpPool* pool, 250 VkResult input_result, VkDevice device, 251 uint32_t memoryRangeCount, 252 const VkMappedMemoryRange* pMemoryRanges) {} vkGetDeviceMemoryCommitment(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)253 void vkGetDeviceMemoryCommitment(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 254 android::base::BumpPool* pool, VkDevice device, 255 VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) { 256 } vkBindBufferMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)257 void vkBindBufferMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 258 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 259 VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) { 260 VkBuffer boxed_VkBuffer = unboxed_to_boxed_non_dispatchable_VkBuffer((&buffer)[0]); 261 android::base::AutoLock lock(mLock); 262 // buffer create 263 mReconstruction.addHandleDependency( 264 (const uint64_t*)&boxed_VkBuffer, 1, 265 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkDeviceMemory(memory), 266 VkReconstruction::BOUND_MEMORY); 267 mReconstruction.addHandleDependency((const uint64_t*)&boxed_VkBuffer, 1, 268 (uint64_t)(uintptr_t)((&boxed_VkBuffer)[0]), 269 VkReconstruction::BOUND_MEMORY); 270 auto apiHandle = mReconstruction.createApiInfo(); 271 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 272 mReconstruction.setApiTrace(apiInfo, OP_vkBindBufferMemory, snapshotTraceBegin, 273 snapshotTraceBytes); 274 mReconstruction.forEachHandleAddApi((const uint64_t*)&boxed_VkBuffer, 1, apiHandle, 275 VkReconstruction::BOUND_MEMORY); 276 } vkBindImageMemory(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset)277 void vkBindImageMemory(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 278 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 279 VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) { 280 VkImage boxed_VkImage = unboxed_to_boxed_non_dispatchable_VkImage((&image)[0]); 281 android::base::AutoLock lock(mLock); 282 // image create 283 mReconstruction.addHandleDependency( 284 (const uint64_t*)&boxed_VkImage, 1, 285 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkDeviceMemory(memory), 286 VkReconstruction::BOUND_MEMORY); 287 mReconstruction.addHandleDependency((const uint64_t*)&boxed_VkImage, 1, 288 (uint64_t)(uintptr_t)((&boxed_VkImage)[0]), 289 VkReconstruction::BOUND_MEMORY); 290 auto apiHandle = mReconstruction.createApiInfo(); 291 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 292 mReconstruction.setApiTrace(apiInfo, OP_vkBindImageMemory, snapshotTraceBegin, 293 snapshotTraceBytes); 294 mReconstruction.forEachHandleAddApi((const uint64_t*)&boxed_VkImage, 1, apiHandle, 295 VkReconstruction::BOUND_MEMORY); 296 } vkGetBufferMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)297 void vkGetBufferMemoryRequirements(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 298 android::base::BumpPool* pool, VkDevice device, 299 VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) { 300 } vkGetImageMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)301 void vkGetImageMemoryRequirements(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 302 android::base::BumpPool* pool, VkDevice device, VkImage image, 303 VkMemoryRequirements* pMemoryRequirements) {} vkGetImageSparseMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)304 void vkGetImageSparseMemoryRequirements( 305 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 306 VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, 307 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {} vkGetPhysicalDeviceSparseImageFormatProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties)308 void vkGetPhysicalDeviceSparseImageFormatProperties( 309 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 310 VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, 311 VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, 312 uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {} vkQueueBindSparse(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)313 void vkQueueBindSparse(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 314 android::base::BumpPool* pool, VkResult input_result, VkQueue queue, 315 uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, 316 VkFence fence) {} vkCreateFence(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)317 void vkCreateFence(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 318 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 319 const VkFenceCreateInfo* pCreateInfo, 320 const VkAllocationCallbacks* pAllocator, VkFence* pFence) { 321 if (!pFence) return; 322 android::base::AutoLock lock(mLock); 323 // pFence create 324 mReconstruction.addHandles((const uint64_t*)pFence, 1); 325 mReconstruction.addHandleDependency((const uint64_t*)pFence, 1, 326 (uint64_t)(uintptr_t)device); 327 auto apiHandle = mReconstruction.createApiInfo(); 328 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 329 mReconstruction.setApiTrace(apiInfo, OP_vkCreateFence, snapshotTraceBegin, 330 snapshotTraceBytes); 331 mReconstruction.forEachHandleAddApi((const uint64_t*)pFence, 1, apiHandle, 332 VkReconstruction::CREATED); 333 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pFence, 1); 334 } vkDestroyFence(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)335 void vkDestroyFence(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 336 android::base::BumpPool* pool, VkDevice device, VkFence fence, 337 const VkAllocationCallbacks* pAllocator) { 338 android::base::AutoLock lock(mLock); 339 // fence destroy 340 mReconstruction.removeHandles((const uint64_t*)(&fence), 1, true); 341 } vkResetFences(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t fenceCount,const VkFence * pFences)342 void vkResetFences(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 343 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 344 uint32_t fenceCount, const VkFence* pFences) {} vkGetFenceStatus(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkFence fence)345 void vkGetFenceStatus(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 346 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 347 VkFence fence) {} vkWaitForFences(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)348 void vkWaitForFences(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 349 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 350 uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, 351 uint64_t timeout) {} vkCreateSemaphore(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)352 void vkCreateSemaphore(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 353 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 354 const VkSemaphoreCreateInfo* pCreateInfo, 355 const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) { 356 if (!pSemaphore) return; 357 android::base::AutoLock lock(mLock); 358 // pSemaphore create 359 mReconstruction.addHandles((const uint64_t*)pSemaphore, 1); 360 mReconstruction.addHandleDependency((const uint64_t*)pSemaphore, 1, 361 (uint64_t)(uintptr_t)device); 362 auto apiHandle = mReconstruction.createApiInfo(); 363 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 364 mReconstruction.setApiTrace(apiInfo, OP_vkCreateSemaphore, snapshotTraceBegin, 365 snapshotTraceBytes); 366 mReconstruction.forEachHandleAddApi((const uint64_t*)pSemaphore, 1, apiHandle, 367 VkReconstruction::CREATED); 368 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pSemaphore, 1); 369 } vkDestroySemaphore(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)370 void vkDestroySemaphore(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 371 android::base::BumpPool* pool, VkDevice device, VkSemaphore semaphore, 372 const VkAllocationCallbacks* pAllocator) { 373 android::base::AutoLock lock(mLock); 374 // semaphore destroy 375 mReconstruction.removeHandles((const uint64_t*)(&semaphore), 1, true); 376 } vkCreateEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent)377 void vkCreateEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 378 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 379 const VkEventCreateInfo* pCreateInfo, 380 const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) { 381 if (!pEvent) return; 382 android::base::AutoLock lock(mLock); 383 // pEvent create 384 mReconstruction.addHandles((const uint64_t*)pEvent, 1); 385 mReconstruction.addHandleDependency((const uint64_t*)pEvent, 1, 386 (uint64_t)(uintptr_t)device); 387 auto apiHandle = mReconstruction.createApiInfo(); 388 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 389 mReconstruction.setApiTrace(apiInfo, OP_vkCreateEvent, snapshotTraceBegin, 390 snapshotTraceBytes); 391 mReconstruction.forEachHandleAddApi((const uint64_t*)pEvent, 1, apiHandle, 392 VkReconstruction::CREATED); 393 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pEvent, 1); 394 } vkDestroyEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)395 void vkDestroyEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 396 android::base::BumpPool* pool, VkDevice device, VkEvent event, 397 const VkAllocationCallbacks* pAllocator) { 398 android::base::AutoLock lock(mLock); 399 // event destroy 400 mReconstruction.removeHandles((const uint64_t*)(&event), 1, true); 401 } vkGetEventStatus(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkEvent event)402 void vkGetEventStatus(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 403 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 404 VkEvent event) {} vkSetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkEvent event)405 void vkSetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 406 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 407 VkEvent event) {} vkResetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkEvent event)408 void vkResetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 409 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 410 VkEvent event) {} vkCreateQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool)411 void vkCreateQueryPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 412 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 413 const VkQueryPoolCreateInfo* pCreateInfo, 414 const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) { 415 if (!pQueryPool) return; 416 android::base::AutoLock lock(mLock); 417 // pQueryPool create 418 mReconstruction.addHandles((const uint64_t*)pQueryPool, 1); 419 mReconstruction.addHandleDependency((const uint64_t*)pQueryPool, 1, 420 (uint64_t)(uintptr_t)device); 421 auto apiHandle = mReconstruction.createApiInfo(); 422 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 423 mReconstruction.setApiTrace(apiInfo, OP_vkCreateQueryPool, snapshotTraceBegin, 424 snapshotTraceBytes); 425 mReconstruction.forEachHandleAddApi((const uint64_t*)pQueryPool, 1, apiHandle, 426 VkReconstruction::CREATED); 427 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pQueryPool, 1); 428 } vkDestroyQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)429 void vkDestroyQueryPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 430 android::base::BumpPool* pool, VkDevice device, VkQueryPool queryPool, 431 const VkAllocationCallbacks* pAllocator) { 432 android::base::AutoLock lock(mLock); 433 // queryPool destroy 434 mReconstruction.removeHandles((const uint64_t*)(&queryPool), 1, true); 435 } vkGetQueryPoolResults(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)436 void vkGetQueryPoolResults(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 437 android::base::BumpPool* pool, VkResult input_result, 438 VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, 439 uint32_t queryCount, size_t dataSize, void* pData, 440 VkDeviceSize stride, VkQueryResultFlags flags) {} vkCreateBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)441 void vkCreateBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 442 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 443 const VkBufferCreateInfo* pCreateInfo, 444 const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) { 445 if (!pBuffer) return; 446 android::base::AutoLock lock(mLock); 447 // pBuffer create 448 mReconstruction.addHandles((const uint64_t*)pBuffer, 1); 449 mReconstruction.addHandleDependency((const uint64_t*)pBuffer, 1, 450 (uint64_t)(uintptr_t)device); 451 auto apiHandle = mReconstruction.createApiInfo(); 452 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 453 mReconstruction.setApiTrace(apiInfo, OP_vkCreateBuffer, snapshotTraceBegin, 454 snapshotTraceBytes); 455 mReconstruction.forEachHandleAddApi((const uint64_t*)pBuffer, 1, apiHandle, 456 VkReconstruction::CREATED); 457 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pBuffer, 1); 458 } vkDestroyBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)459 void vkDestroyBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 460 android::base::BumpPool* pool, VkDevice device, VkBuffer buffer, 461 const VkAllocationCallbacks* pAllocator) { 462 android::base::AutoLock lock(mLock); 463 // buffer destroy 464 mReconstruction.removeHandles((const uint64_t*)(&buffer), 1, true); 465 } vkCreateBufferView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)466 void vkCreateBufferView(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 467 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 468 const VkBufferViewCreateInfo* pCreateInfo, 469 const VkAllocationCallbacks* pAllocator, VkBufferView* pView) { 470 if (!pView) return; 471 android::base::AutoLock lock(mLock); 472 // pView create 473 mReconstruction.addHandles((const uint64_t*)pView, 1); 474 mReconstruction.addHandleDependency((const uint64_t*)pView, 1, (uint64_t)(uintptr_t)device); 475 auto apiHandle = mReconstruction.createApiInfo(); 476 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 477 mReconstruction.setApiTrace(apiInfo, OP_vkCreateBufferView, snapshotTraceBegin, 478 snapshotTraceBytes); 479 mReconstruction.forEachHandleAddApi((const uint64_t*)pView, 1, apiHandle, 480 VkReconstruction::CREATED); 481 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pView, 1); 482 } vkDestroyBufferView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)483 void vkDestroyBufferView(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 484 android::base::BumpPool* pool, VkDevice device, 485 VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) { 486 android::base::AutoLock lock(mLock); 487 // bufferView destroy 488 mReconstruction.removeHandles((const uint64_t*)(&bufferView), 1, true); 489 } vkCreateImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage)490 void vkCreateImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 491 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 492 const VkImageCreateInfo* pCreateInfo, 493 const VkAllocationCallbacks* pAllocator, VkImage* pImage) { 494 if (!pImage) return; 495 android::base::AutoLock lock(mLock); 496 // pImage create 497 mReconstruction.addHandles((const uint64_t*)pImage, 1); 498 mReconstruction.addHandleDependency((const uint64_t*)pImage, 1, 499 (uint64_t)(uintptr_t)device); 500 auto apiHandle = mReconstruction.createApiInfo(); 501 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 502 mReconstruction.setApiTrace(apiInfo, OP_vkCreateImage, snapshotTraceBegin, 503 snapshotTraceBytes); 504 mReconstruction.forEachHandleAddApi((const uint64_t*)pImage, 1, apiHandle, 505 VkReconstruction::CREATED); 506 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pImage, 1); 507 } vkDestroyImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)508 void vkDestroyImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 509 android::base::BumpPool* pool, VkDevice device, VkImage image, 510 const VkAllocationCallbacks* pAllocator) { 511 android::base::AutoLock lock(mLock); 512 // image destroy 513 mReconstruction.removeHandles((const uint64_t*)(&image), 1, true); 514 } vkGetImageSubresourceLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)515 void vkGetImageSubresourceLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 516 android::base::BumpPool* pool, VkDevice device, VkImage image, 517 const VkImageSubresource* pSubresource, 518 VkSubresourceLayout* pLayout) {} vkCreateImageView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView)519 void vkCreateImageView(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 520 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 521 const VkImageViewCreateInfo* pCreateInfo, 522 const VkAllocationCallbacks* pAllocator, VkImageView* pView) { 523 if (!pView) return; 524 android::base::AutoLock lock(mLock); 525 // pView create 526 mReconstruction.addHandles((const uint64_t*)pView, 1); 527 mReconstruction.addHandleDependency((const uint64_t*)pView, 1, (uint64_t)(uintptr_t)device); 528 mReconstruction.addHandleDependency( 529 (const uint64_t*)pView, 1, 530 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkImage(pCreateInfo->image), 531 VkReconstruction::CREATED, VkReconstruction::BOUND_MEMORY); 532 auto apiHandle = mReconstruction.createApiInfo(); 533 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 534 mReconstruction.setApiTrace(apiInfo, OP_vkCreateImageView, snapshotTraceBegin, 535 snapshotTraceBytes); 536 mReconstruction.forEachHandleAddApi((const uint64_t*)pView, 1, apiHandle, 537 VkReconstruction::CREATED); 538 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pView, 1); 539 } vkDestroyImageView(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)540 void vkDestroyImageView(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 541 android::base::BumpPool* pool, VkDevice device, VkImageView imageView, 542 const VkAllocationCallbacks* pAllocator) { 543 android::base::AutoLock lock(mLock); 544 // imageView destroy 545 mReconstruction.removeHandles((const uint64_t*)(&imageView), 1, true); 546 } vkCreateShaderModule(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)547 void vkCreateShaderModule(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 548 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 549 const VkShaderModuleCreateInfo* pCreateInfo, 550 const VkAllocationCallbacks* pAllocator, 551 VkShaderModule* pShaderModule) { 552 if (!pShaderModule) return; 553 android::base::AutoLock lock(mLock); 554 // pShaderModule create 555 mReconstruction.addHandles((const uint64_t*)pShaderModule, 1); 556 mReconstruction.addHandleDependency((const uint64_t*)pShaderModule, 1, 557 (uint64_t)(uintptr_t)device); 558 auto apiHandle = mReconstruction.createApiInfo(); 559 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 560 mReconstruction.setApiTrace(apiInfo, OP_vkCreateShaderModule, snapshotTraceBegin, 561 snapshotTraceBytes); 562 mReconstruction.forEachHandleAddApi((const uint64_t*)pShaderModule, 1, apiHandle, 563 VkReconstruction::CREATED); 564 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pShaderModule, 1); 565 } vkDestroyShaderModule(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)566 void vkDestroyShaderModule(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 567 android::base::BumpPool* pool, VkDevice device, 568 VkShaderModule shaderModule, 569 const VkAllocationCallbacks* pAllocator) { 570 android::base::AutoLock lock(mLock); 571 // shaderModule destroy 572 mReconstruction.removeHandles((const uint64_t*)(&shaderModule), 1, false); 573 } vkCreatePipelineCache(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache)574 void vkCreatePipelineCache(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 575 android::base::BumpPool* pool, VkResult input_result, 576 VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, 577 const VkAllocationCallbacks* pAllocator, 578 VkPipelineCache* pPipelineCache) { 579 if (!pPipelineCache) return; 580 android::base::AutoLock lock(mLock); 581 // pPipelineCache create 582 mReconstruction.addHandles((const uint64_t*)pPipelineCache, 1); 583 mReconstruction.addHandleDependency((const uint64_t*)pPipelineCache, 1, 584 (uint64_t)(uintptr_t)device); 585 auto apiHandle = mReconstruction.createApiInfo(); 586 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 587 mReconstruction.setApiTrace(apiInfo, OP_vkCreatePipelineCache, snapshotTraceBegin, 588 snapshotTraceBytes); 589 mReconstruction.forEachHandleAddApi((const uint64_t*)pPipelineCache, 1, apiHandle, 590 VkReconstruction::CREATED); 591 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPipelineCache, 1); 592 } vkDestroyPipelineCache(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)593 void vkDestroyPipelineCache(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 594 android::base::BumpPool* pool, VkDevice device, 595 VkPipelineCache pipelineCache, 596 const VkAllocationCallbacks* pAllocator) { 597 android::base::AutoLock lock(mLock); 598 // pipelineCache destroy 599 mReconstruction.removeHandles((const uint64_t*)(&pipelineCache), 1, true); 600 } vkGetPipelineCacheData(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)601 void vkGetPipelineCacheData(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 602 android::base::BumpPool* pool, VkResult input_result, 603 VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, 604 void* pData) {} vkMergePipelineCaches(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)605 void vkMergePipelineCaches(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 606 android::base::BumpPool* pool, VkResult input_result, 607 VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, 608 const VkPipelineCache* pSrcCaches) {} vkCreateGraphicsPipelines(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)609 void vkCreateGraphicsPipelines(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 610 android::base::BumpPool* pool, VkResult input_result, 611 VkDevice device, VkPipelineCache pipelineCache, 612 uint32_t createInfoCount, 613 const VkGraphicsPipelineCreateInfo* pCreateInfos, 614 const VkAllocationCallbacks* pAllocator, 615 VkPipeline* pPipelines) { 616 if (!pPipelines) return; 617 android::base::AutoLock lock(mLock); 618 // pPipelines create 619 mReconstruction.addHandles((const uint64_t*)pPipelines, ((createInfoCount))); 620 mReconstruction.addHandleDependency((const uint64_t*)pPipelines, ((createInfoCount)), 621 (uint64_t)(uintptr_t)device); 622 for (uint32_t i = 0; i < createInfoCount; ++i) { 623 for (uint32_t j = 0; j < pCreateInfos[i].stageCount; ++j) { 624 mReconstruction.addHandleDependency( 625 (const uint64_t*)(pPipelines + i), 1, 626 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkShaderModule( 627 pCreateInfos[i].pStages[j].module)); 628 } 629 } 630 auto apiHandle = mReconstruction.createApiInfo(); 631 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 632 mReconstruction.setApiTrace(apiInfo, OP_vkCreateGraphicsPipelines, snapshotTraceBegin, 633 snapshotTraceBytes); 634 mReconstruction.forEachHandleAddApi((const uint64_t*)pPipelines, ((createInfoCount)), 635 apiHandle, VkReconstruction::CREATED); 636 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPipelines, 637 ((createInfoCount))); 638 } vkCreateComputePipelines(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)639 void vkCreateComputePipelines(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 640 android::base::BumpPool* pool, VkResult input_result, 641 VkDevice device, VkPipelineCache pipelineCache, 642 uint32_t createInfoCount, 643 const VkComputePipelineCreateInfo* pCreateInfos, 644 const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) { 645 if (!pPipelines) return; 646 android::base::AutoLock lock(mLock); 647 // pPipelines create 648 mReconstruction.addHandles((const uint64_t*)pPipelines, ((createInfoCount))); 649 mReconstruction.addHandleDependency((const uint64_t*)pPipelines, ((createInfoCount)), 650 (uint64_t)(uintptr_t)device); 651 auto apiHandle = mReconstruction.createApiInfo(); 652 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 653 mReconstruction.setApiTrace(apiInfo, OP_vkCreateComputePipelines, snapshotTraceBegin, 654 snapshotTraceBytes); 655 mReconstruction.forEachHandleAddApi((const uint64_t*)pPipelines, ((createInfoCount)), 656 apiHandle, VkReconstruction::CREATED); 657 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPipelines, 658 ((createInfoCount))); 659 } vkDestroyPipeline(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)660 void vkDestroyPipeline(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 661 android::base::BumpPool* pool, VkDevice device, VkPipeline pipeline, 662 const VkAllocationCallbacks* pAllocator) { 663 android::base::AutoLock lock(mLock); 664 // pipeline destroy 665 mReconstruction.removeHandles((const uint64_t*)(&pipeline), 1, true); 666 } vkCreatePipelineLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout)667 void vkCreatePipelineLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 668 android::base::BumpPool* pool, VkResult input_result, 669 VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, 670 const VkAllocationCallbacks* pAllocator, 671 VkPipelineLayout* pPipelineLayout) { 672 if (!pPipelineLayout) return; 673 android::base::AutoLock lock(mLock); 674 // pPipelineLayout create 675 mReconstruction.addHandles((const uint64_t*)pPipelineLayout, 1); 676 mReconstruction.addHandleDependency((const uint64_t*)pPipelineLayout, 1, 677 (uint64_t)(uintptr_t)device); 678 auto apiHandle = mReconstruction.createApiInfo(); 679 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 680 mReconstruction.setApiTrace(apiInfo, OP_vkCreatePipelineLayout, snapshotTraceBegin, 681 snapshotTraceBytes); 682 mReconstruction.forEachHandleAddApi((const uint64_t*)pPipelineLayout, 1, apiHandle, 683 VkReconstruction::CREATED); 684 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pPipelineLayout, 1); 685 } vkDestroyPipelineLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)686 void vkDestroyPipelineLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 687 android::base::BumpPool* pool, VkDevice device, 688 VkPipelineLayout pipelineLayout, 689 const VkAllocationCallbacks* pAllocator) { 690 android::base::AutoLock lock(mLock); 691 // pipelineLayout destroy 692 mReconstruction.removeHandles((const uint64_t*)(&pipelineLayout), 1, true); 693 } vkCreateSampler(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler)694 void vkCreateSampler(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 695 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 696 const VkSamplerCreateInfo* pCreateInfo, 697 const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) { 698 if (!pSampler) return; 699 android::base::AutoLock lock(mLock); 700 // pSampler create 701 mReconstruction.addHandles((const uint64_t*)pSampler, 1); 702 mReconstruction.addHandleDependency((const uint64_t*)pSampler, 1, 703 (uint64_t)(uintptr_t)device); 704 auto apiHandle = mReconstruction.createApiInfo(); 705 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 706 mReconstruction.setApiTrace(apiInfo, OP_vkCreateSampler, snapshotTraceBegin, 707 snapshotTraceBytes); 708 mReconstruction.forEachHandleAddApi((const uint64_t*)pSampler, 1, apiHandle, 709 VkReconstruction::CREATED); 710 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pSampler, 1); 711 } vkDestroySampler(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)712 void vkDestroySampler(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 713 android::base::BumpPool* pool, VkDevice device, VkSampler sampler, 714 const VkAllocationCallbacks* pAllocator) { 715 android::base::AutoLock lock(mLock); 716 // sampler destroy 717 mReconstruction.removeHandles((const uint64_t*)(&sampler), 1, true); 718 } vkCreateDescriptorSetLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)719 void vkCreateDescriptorSetLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 720 android::base::BumpPool* pool, VkResult input_result, 721 VkDevice device, 722 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 723 const VkAllocationCallbacks* pAllocator, 724 VkDescriptorSetLayout* pSetLayout) { 725 if (!pSetLayout) return; 726 android::base::AutoLock lock(mLock); 727 // pSetLayout create 728 mReconstruction.addHandles((const uint64_t*)pSetLayout, 1); 729 mReconstruction.addHandleDependency((const uint64_t*)pSetLayout, 1, 730 (uint64_t)(uintptr_t)device); 731 auto apiHandle = mReconstruction.createApiInfo(); 732 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 733 mReconstruction.setApiTrace(apiInfo, OP_vkCreateDescriptorSetLayout, snapshotTraceBegin, 734 snapshotTraceBytes); 735 mReconstruction.forEachHandleAddApi((const uint64_t*)pSetLayout, 1, apiHandle, 736 VkReconstruction::CREATED); 737 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pSetLayout, 1); 738 } vkDestroyDescriptorSetLayout(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)739 void vkDestroyDescriptorSetLayout(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 740 android::base::BumpPool* pool, VkDevice device, 741 VkDescriptorSetLayout descriptorSetLayout, 742 const VkAllocationCallbacks* pAllocator) { 743 android::base::AutoLock lock(mLock); 744 // descriptorSetLayout destroy 745 mReconstruction.removeHandles((const uint64_t*)(&descriptorSetLayout), 1, true); 746 } vkCreateDescriptorPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)747 void vkCreateDescriptorPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 748 android::base::BumpPool* pool, VkResult input_result, 749 VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, 750 const VkAllocationCallbacks* pAllocator, 751 VkDescriptorPool* pDescriptorPool) { 752 if (!pDescriptorPool) return; 753 android::base::AutoLock lock(mLock); 754 // pDescriptorPool create 755 mReconstruction.addHandles((const uint64_t*)pDescriptorPool, 1); 756 mReconstruction.addHandleDependency((const uint64_t*)pDescriptorPool, 1, 757 (uint64_t)(uintptr_t)device); 758 auto apiHandle = mReconstruction.createApiInfo(); 759 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 760 mReconstruction.setApiTrace(apiInfo, OP_vkCreateDescriptorPool, snapshotTraceBegin, 761 snapshotTraceBytes); 762 mReconstruction.forEachHandleAddApi((const uint64_t*)pDescriptorPool, 1, apiHandle, 763 VkReconstruction::CREATED); 764 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pDescriptorPool, 1); 765 } vkDestroyDescriptorPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)766 void vkDestroyDescriptorPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 767 android::base::BumpPool* pool, VkDevice device, 768 VkDescriptorPool descriptorPool, 769 const VkAllocationCallbacks* pAllocator) { 770 android::base::AutoLock lock(mLock); 771 // descriptorPool destroy 772 mReconstruction.removeHandles((const uint64_t*)(&descriptorPool), 1, true); 773 } vkResetDescriptorPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)774 void vkResetDescriptorPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 775 android::base::BumpPool* pool, VkResult input_result, 776 VkDevice device, VkDescriptorPool descriptorPool, 777 VkDescriptorPoolResetFlags flags) {} vkAllocateDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets)778 void vkAllocateDescriptorSets(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 779 android::base::BumpPool* pool, VkResult input_result, 780 VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, 781 VkDescriptorSet* pDescriptorSets) {} vkFreeDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets)782 void vkFreeDescriptorSets(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 783 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 784 VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, 785 const VkDescriptorSet* pDescriptorSets) { 786 android::base::AutoLock lock(mLock); 787 // pDescriptorSets destroy 788 mReconstruction.removeHandles((const uint64_t*)pDescriptorSets, ((descriptorSetCount)), 789 true); 790 } vkUpdateDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies)791 void vkUpdateDescriptorSets(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 792 android::base::BumpPool* pool, VkDevice device, 793 uint32_t descriptorWriteCount, 794 const VkWriteDescriptorSet* pDescriptorWrites, 795 uint32_t descriptorCopyCount, 796 const VkCopyDescriptorSet* pDescriptorCopies) {} vkCreateFramebuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer)797 void vkCreateFramebuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 798 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 799 const VkFramebufferCreateInfo* pCreateInfo, 800 const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) { 801 if (!pFramebuffer) return; 802 android::base::AutoLock lock(mLock); 803 // pFramebuffer create 804 mReconstruction.addHandles((const uint64_t*)pFramebuffer, 1); 805 mReconstruction.addHandleDependency((const uint64_t*)pFramebuffer, 1, 806 (uint64_t)(uintptr_t)device); 807 mReconstruction.addHandleDependency( 808 (const uint64_t*)pFramebuffer, 1, 809 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkRenderPass( 810 pCreateInfo->renderPass)); 811 for (uint32_t i = 0; i < pCreateInfo->attachmentCount; ++i) { 812 mReconstruction.addHandleDependency( 813 (const uint64_t*)pFramebuffer, 1, 814 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkImageView( 815 pCreateInfo->pAttachments[i])); 816 } 817 auto apiHandle = mReconstruction.createApiInfo(); 818 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 819 mReconstruction.setApiTrace(apiInfo, OP_vkCreateFramebuffer, snapshotTraceBegin, 820 snapshotTraceBytes); 821 mReconstruction.forEachHandleAddApi((const uint64_t*)pFramebuffer, 1, apiHandle, 822 VkReconstruction::CREATED); 823 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pFramebuffer, 1); 824 } vkDestroyFramebuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)825 void vkDestroyFramebuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 826 android::base::BumpPool* pool, VkDevice device, 827 VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) { 828 android::base::AutoLock lock(mLock); 829 // framebuffer destroy 830 mReconstruction.removeHandles((const uint64_t*)(&framebuffer), 1, true); 831 } vkCreateRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)832 void vkCreateRenderPass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 833 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 834 const VkRenderPassCreateInfo* pCreateInfo, 835 const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { 836 if (!pRenderPass) return; 837 android::base::AutoLock lock(mLock); 838 // pRenderPass create 839 mReconstruction.addHandles((const uint64_t*)pRenderPass, 1); 840 mReconstruction.addHandleDependency((const uint64_t*)pRenderPass, 1, 841 (uint64_t)(uintptr_t)device); 842 auto apiHandle = mReconstruction.createApiInfo(); 843 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 844 mReconstruction.setApiTrace(apiInfo, OP_vkCreateRenderPass, snapshotTraceBegin, 845 snapshotTraceBytes); 846 mReconstruction.forEachHandleAddApi((const uint64_t*)pRenderPass, 1, apiHandle, 847 VkReconstruction::CREATED); 848 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pRenderPass, 1); 849 } vkDestroyRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)850 void vkDestroyRenderPass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 851 android::base::BumpPool* pool, VkDevice device, 852 VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) { 853 android::base::AutoLock lock(mLock); 854 // renderPass destroy 855 mReconstruction.removeHandles((const uint64_t*)(&renderPass), 1, true); 856 } vkGetRenderAreaGranularity(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)857 void vkGetRenderAreaGranularity(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 858 android::base::BumpPool* pool, VkDevice device, 859 VkRenderPass renderPass, VkExtent2D* pGranularity) {} vkCreateCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)860 void vkCreateCommandPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 861 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 862 const VkCommandPoolCreateInfo* pCreateInfo, 863 const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) { 864 if (!pCommandPool) return; 865 android::base::AutoLock lock(mLock); 866 // pCommandPool create 867 mReconstruction.addHandles((const uint64_t*)pCommandPool, 1); 868 mReconstruction.addHandleDependency((const uint64_t*)pCommandPool, 1, 869 (uint64_t)(uintptr_t)device); 870 auto apiHandle = mReconstruction.createApiInfo(); 871 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 872 mReconstruction.setApiTrace(apiInfo, OP_vkCreateCommandPool, snapshotTraceBegin, 873 snapshotTraceBytes); 874 mReconstruction.forEachHandleAddApi((const uint64_t*)pCommandPool, 1, apiHandle, 875 VkReconstruction::CREATED); 876 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pCommandPool, 1); 877 } vkDestroyCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)878 void vkDestroyCommandPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 879 android::base::BumpPool* pool, VkDevice device, 880 VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) { 881 android::base::AutoLock lock(mLock); 882 // commandPool destroy 883 mReconstruction.removeHandles((const uint64_t*)(&commandPool), 1, true); 884 } vkResetCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)885 void vkResetCommandPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 886 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 887 VkCommandPool commandPool, VkCommandPoolResetFlags flags) {} vkAllocateCommandBuffers(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers)888 void vkAllocateCommandBuffers(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 889 android::base::BumpPool* pool, VkResult input_result, 890 VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, 891 VkCommandBuffer* pCommandBuffers) { 892 if (!pCommandBuffers) return; 893 android::base::AutoLock lock(mLock); 894 // pCommandBuffers create 895 mReconstruction.addHandles((const uint64_t*)pCommandBuffers, 896 pAllocateInfo->commandBufferCount); 897 mReconstruction.addHandleDependency( 898 (const uint64_t*)pCommandBuffers, pAllocateInfo->commandBufferCount, 899 (uint64_t)(uintptr_t)unboxed_to_boxed_non_dispatchable_VkCommandPool( 900 pAllocateInfo->commandPool)); 901 auto apiHandle = mReconstruction.createApiInfo(); 902 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 903 mReconstruction.setApiTrace(apiInfo, OP_vkAllocateCommandBuffers, snapshotTraceBegin, 904 snapshotTraceBytes); 905 mReconstruction.forEachHandleAddApi((const uint64_t*)pCommandBuffers, 906 pAllocateInfo->commandBufferCount, apiHandle, 907 VkReconstruction::CREATED); 908 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pCommandBuffers, 909 pAllocateInfo->commandBufferCount); 910 } vkFreeCommandBuffers(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)911 void vkFreeCommandBuffers(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 912 android::base::BumpPool* pool, VkDevice device, 913 VkCommandPool commandPool, uint32_t commandBufferCount, 914 const VkCommandBuffer* pCommandBuffers) { 915 android::base::AutoLock lock(mLock); 916 // pCommandBuffers destroy 917 mReconstruction.removeHandles((const uint64_t*)pCommandBuffers, ((commandBufferCount)), 918 true); 919 } vkBeginCommandBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)920 void vkBeginCommandBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 921 android::base::BumpPool* pool, VkResult input_result, 922 VkCommandBuffer commandBuffer, 923 const VkCommandBufferBeginInfo* pBeginInfo) { 924 android::base::AutoLock lock(mLock); 925 // commandBuffer modify 926 auto apiHandle = mReconstruction.createApiInfo(); 927 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 928 mReconstruction.setApiTrace(apiInfo, OP_vkBeginCommandBuffer, snapshotTraceBegin, 929 snapshotTraceBytes); 930 for (uint32_t i = 0; i < 1; ++i) { 931 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 932 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 933 } 934 } vkEndCommandBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkCommandBuffer commandBuffer)935 void vkEndCommandBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 936 android::base::BumpPool* pool, VkResult input_result, 937 VkCommandBuffer commandBuffer) { 938 android::base::AutoLock lock(mLock); 939 // commandBuffer modify 940 auto apiHandle = mReconstruction.createApiInfo(); 941 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 942 mReconstruction.setApiTrace(apiInfo, OP_vkEndCommandBuffer, snapshotTraceBegin, 943 snapshotTraceBytes); 944 for (uint32_t i = 0; i < 1; ++i) { 945 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 946 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 947 } 948 } vkResetCommandBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)949 void vkResetCommandBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 950 android::base::BumpPool* pool, VkResult input_result, 951 VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) { 952 android::base::AutoLock lock(mLock); 953 // commandBuffer modify 954 auto apiHandle = mReconstruction.createApiInfo(); 955 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 956 mReconstruction.setApiTrace(apiInfo, OP_vkResetCommandBuffer, snapshotTraceBegin, 957 snapshotTraceBytes); 958 for (uint32_t i = 0; i < 1; ++i) { 959 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 960 mReconstruction.forEachHandleClearModifyApi((const uint64_t*)(&boxed), 1); 961 } 962 } vkCmdBindPipeline(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)963 void vkCmdBindPipeline(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 964 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 965 VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) { 966 android::base::AutoLock lock(mLock); 967 // commandBuffer modify 968 auto apiHandle = mReconstruction.createApiInfo(); 969 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 970 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindPipeline, snapshotTraceBegin, 971 snapshotTraceBytes); 972 for (uint32_t i = 0; i < 1; ++i) { 973 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 974 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 975 } 976 } vkCmdSetViewport(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)977 void vkCmdSetViewport(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 978 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 979 uint32_t firstViewport, uint32_t viewportCount, 980 const VkViewport* pViewports) { 981 android::base::AutoLock lock(mLock); 982 // commandBuffer modify 983 auto apiHandle = mReconstruction.createApiInfo(); 984 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 985 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetViewport, snapshotTraceBegin, 986 snapshotTraceBytes); 987 for (uint32_t i = 0; i < 1; ++i) { 988 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 989 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 990 } 991 } vkCmdSetScissor(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)992 void vkCmdSetScissor(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 993 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 994 uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors) { 995 android::base::AutoLock lock(mLock); 996 // commandBuffer modify 997 auto apiHandle = mReconstruction.createApiInfo(); 998 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 999 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetScissor, snapshotTraceBegin, 1000 snapshotTraceBytes); 1001 for (uint32_t i = 0; i < 1; ++i) { 1002 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1003 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1004 } 1005 } vkCmdSetLineWidth(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,float lineWidth)1006 void vkCmdSetLineWidth(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1007 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1008 float lineWidth) { 1009 android::base::AutoLock lock(mLock); 1010 // commandBuffer modify 1011 auto apiHandle = mReconstruction.createApiInfo(); 1012 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1013 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetLineWidth, snapshotTraceBegin, 1014 snapshotTraceBytes); 1015 for (uint32_t i = 0; i < 1; ++i) { 1016 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1017 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1018 } 1019 } vkCmdSetDepthBias(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)1020 void vkCmdSetDepthBias(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1021 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1022 float depthBiasConstantFactor, float depthBiasClamp, 1023 float depthBiasSlopeFactor) { 1024 android::base::AutoLock lock(mLock); 1025 // commandBuffer modify 1026 auto apiHandle = mReconstruction.createApiInfo(); 1027 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1028 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBias, snapshotTraceBegin, 1029 snapshotTraceBytes); 1030 for (uint32_t i = 0; i < 1; ++i) { 1031 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1032 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1033 } 1034 } vkCmdSetBlendConstants(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const float blendConstants[4])1035 void vkCmdSetBlendConstants(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1036 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1037 const float blendConstants[4]) { 1038 android::base::AutoLock lock(mLock); 1039 // commandBuffer modify 1040 auto apiHandle = mReconstruction.createApiInfo(); 1041 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1042 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetBlendConstants, snapshotTraceBegin, 1043 snapshotTraceBytes); 1044 for (uint32_t i = 0; i < 1; ++i) { 1045 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1046 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1047 } 1048 } vkCmdSetDepthBounds(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)1049 void vkCmdSetDepthBounds(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1050 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1051 float minDepthBounds, float maxDepthBounds) { 1052 android::base::AutoLock lock(mLock); 1053 // commandBuffer modify 1054 auto apiHandle = mReconstruction.createApiInfo(); 1055 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1056 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBounds, snapshotTraceBegin, 1057 snapshotTraceBytes); 1058 for (uint32_t i = 0; i < 1; ++i) { 1059 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1060 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1061 } 1062 } vkCmdSetStencilCompareMask(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)1063 void vkCmdSetStencilCompareMask(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1064 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1065 VkStencilFaceFlags faceMask, uint32_t compareMask) { 1066 android::base::AutoLock lock(mLock); 1067 // commandBuffer modify 1068 auto apiHandle = mReconstruction.createApiInfo(); 1069 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1070 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilCompareMask, snapshotTraceBegin, 1071 snapshotTraceBytes); 1072 for (uint32_t i = 0; i < 1; ++i) { 1073 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1074 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1075 } 1076 } vkCmdSetStencilWriteMask(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)1077 void vkCmdSetStencilWriteMask(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1078 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1079 VkStencilFaceFlags faceMask, uint32_t writeMask) { 1080 android::base::AutoLock lock(mLock); 1081 // commandBuffer modify 1082 auto apiHandle = mReconstruction.createApiInfo(); 1083 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1084 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilWriteMask, snapshotTraceBegin, 1085 snapshotTraceBytes); 1086 for (uint32_t i = 0; i < 1; ++i) { 1087 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1088 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1089 } 1090 } vkCmdSetStencilReference(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)1091 void vkCmdSetStencilReference(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1092 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1093 VkStencilFaceFlags faceMask, uint32_t reference) { 1094 android::base::AutoLock lock(mLock); 1095 // commandBuffer modify 1096 auto apiHandle = mReconstruction.createApiInfo(); 1097 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1098 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilReference, snapshotTraceBegin, 1099 snapshotTraceBytes); 1100 for (uint32_t i = 0; i < 1; ++i) { 1101 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1102 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1103 } 1104 } vkCmdBindDescriptorSets(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)1105 void vkCmdBindDescriptorSets(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1106 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1107 VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, 1108 uint32_t firstSet, uint32_t descriptorSetCount, 1109 const VkDescriptorSet* pDescriptorSets, 1110 uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) { 1111 android::base::AutoLock lock(mLock); 1112 // commandBuffer modify 1113 auto apiHandle = mReconstruction.createApiInfo(); 1114 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1115 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindDescriptorSets, snapshotTraceBegin, 1116 snapshotTraceBytes); 1117 for (uint32_t i = 0; i < 1; ++i) { 1118 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1119 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1120 } 1121 } vkCmdBindIndexBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)1122 void vkCmdBindIndexBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1123 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1124 VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) { 1125 android::base::AutoLock lock(mLock); 1126 // commandBuffer modify 1127 auto apiHandle = mReconstruction.createApiInfo(); 1128 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1129 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindIndexBuffer, snapshotTraceBegin, 1130 snapshotTraceBytes); 1131 for (uint32_t i = 0; i < 1; ++i) { 1132 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1133 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1134 } 1135 } vkCmdBindVertexBuffers(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)1136 void vkCmdBindVertexBuffers(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1137 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1138 uint32_t firstBinding, uint32_t bindingCount, 1139 const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) { 1140 android::base::AutoLock lock(mLock); 1141 // commandBuffer modify 1142 auto apiHandle = mReconstruction.createApiInfo(); 1143 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1144 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindVertexBuffers, snapshotTraceBegin, 1145 snapshotTraceBytes); 1146 for (uint32_t i = 0; i < 1; ++i) { 1147 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1148 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1149 } 1150 } vkCmdDraw(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)1151 void vkCmdDraw(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1152 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1153 uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, 1154 uint32_t firstInstance) { 1155 android::base::AutoLock lock(mLock); 1156 // commandBuffer modify 1157 auto apiHandle = mReconstruction.createApiInfo(); 1158 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1159 mReconstruction.setApiTrace(apiInfo, OP_vkCmdDraw, snapshotTraceBegin, snapshotTraceBytes); 1160 for (uint32_t i = 0; i < 1; ++i) { 1161 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1162 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1163 } 1164 } vkCmdDrawIndexed(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)1165 void vkCmdDrawIndexed(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1166 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1167 uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, 1168 int32_t vertexOffset, uint32_t firstInstance) { 1169 android::base::AutoLock lock(mLock); 1170 // commandBuffer modify 1171 auto apiHandle = mReconstruction.createApiInfo(); 1172 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1173 mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndexed, snapshotTraceBegin, 1174 snapshotTraceBytes); 1175 for (uint32_t i = 0; i < 1; ++i) { 1176 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1177 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1178 } 1179 } vkCmdDrawIndirect(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1180 void vkCmdDrawIndirect(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1181 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1182 VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, 1183 uint32_t stride) { 1184 android::base::AutoLock lock(mLock); 1185 // commandBuffer modify 1186 auto apiHandle = mReconstruction.createApiInfo(); 1187 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1188 mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndirect, snapshotTraceBegin, 1189 snapshotTraceBytes); 1190 for (uint32_t i = 0; i < 1; ++i) { 1191 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1192 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1193 } 1194 } vkCmdDrawIndexedIndirect(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1195 void vkCmdDrawIndexedIndirect(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1196 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1197 VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, 1198 uint32_t stride) { 1199 android::base::AutoLock lock(mLock); 1200 // commandBuffer modify 1201 auto apiHandle = mReconstruction.createApiInfo(); 1202 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1203 mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndexedIndirect, snapshotTraceBegin, 1204 snapshotTraceBytes); 1205 for (uint32_t i = 0; i < 1; ++i) { 1206 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1207 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1208 } 1209 } vkCmdDispatch(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1210 void vkCmdDispatch(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1211 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1212 uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { 1213 android::base::AutoLock lock(mLock); 1214 // commandBuffer modify 1215 auto apiHandle = mReconstruction.createApiInfo(); 1216 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1217 mReconstruction.setApiTrace(apiInfo, OP_vkCmdDispatch, snapshotTraceBegin, 1218 snapshotTraceBytes); 1219 for (uint32_t i = 0; i < 1; ++i) { 1220 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1221 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1222 } 1223 } vkCmdDispatchIndirect(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)1224 void vkCmdDispatchIndirect(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1225 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1226 VkBuffer buffer, VkDeviceSize offset) { 1227 android::base::AutoLock lock(mLock); 1228 // commandBuffer modify 1229 auto apiHandle = mReconstruction.createApiInfo(); 1230 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1231 mReconstruction.setApiTrace(apiInfo, OP_vkCmdDispatchIndirect, snapshotTraceBegin, 1232 snapshotTraceBytes); 1233 for (uint32_t i = 0; i < 1; ++i) { 1234 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1235 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1236 } 1237 } vkCmdCopyBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)1238 void vkCmdCopyBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1239 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1240 VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, 1241 const VkBufferCopy* pRegions) { 1242 android::base::AutoLock lock(mLock); 1243 // commandBuffer modify 1244 auto apiHandle = mReconstruction.createApiInfo(); 1245 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1246 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBuffer, snapshotTraceBegin, 1247 snapshotTraceBytes); 1248 for (uint32_t i = 0; i < 1; ++i) { 1249 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1250 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1251 } 1252 } vkCmdCopyImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)1253 void vkCmdCopyImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1254 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1255 VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, 1256 VkImageLayout dstImageLayout, uint32_t regionCount, 1257 const VkImageCopy* pRegions) { 1258 android::base::AutoLock lock(mLock); 1259 // commandBuffer modify 1260 auto apiHandle = mReconstruction.createApiInfo(); 1261 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1262 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImage, snapshotTraceBegin, 1263 snapshotTraceBytes); 1264 for (uint32_t i = 0; i < 1; ++i) { 1265 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1266 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1267 } 1268 } vkCmdBlitImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)1269 void vkCmdBlitImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1270 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1271 VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, 1272 VkImageLayout dstImageLayout, uint32_t regionCount, 1273 const VkImageBlit* pRegions, VkFilter filter) { 1274 android::base::AutoLock lock(mLock); 1275 // commandBuffer modify 1276 auto apiHandle = mReconstruction.createApiInfo(); 1277 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1278 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBlitImage, snapshotTraceBegin, 1279 snapshotTraceBytes); 1280 for (uint32_t i = 0; i < 1; ++i) { 1281 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1282 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1283 } 1284 } vkCmdCopyBufferToImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)1285 void vkCmdCopyBufferToImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1286 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1287 VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, 1288 uint32_t regionCount, const VkBufferImageCopy* pRegions) { 1289 android::base::AutoLock lock(mLock); 1290 // commandBuffer modify 1291 auto apiHandle = mReconstruction.createApiInfo(); 1292 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1293 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBufferToImage, snapshotTraceBegin, 1294 snapshotTraceBytes); 1295 for (uint32_t i = 0; i < 1; ++i) { 1296 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1297 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1298 } 1299 } vkCmdCopyImageToBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)1300 void vkCmdCopyImageToBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1301 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1302 VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, 1303 uint32_t regionCount, const VkBufferImageCopy* pRegions) { 1304 android::base::AutoLock lock(mLock); 1305 // commandBuffer modify 1306 auto apiHandle = mReconstruction.createApiInfo(); 1307 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1308 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImageToBuffer, snapshotTraceBegin, 1309 snapshotTraceBytes); 1310 for (uint32_t i = 0; i < 1; ++i) { 1311 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1312 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1313 } 1314 } vkCmdUpdateBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)1315 void vkCmdUpdateBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1316 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1317 VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, 1318 const void* pData) { 1319 android::base::AutoLock lock(mLock); 1320 // commandBuffer modify 1321 auto apiHandle = mReconstruction.createApiInfo(); 1322 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1323 mReconstruction.setApiTrace(apiInfo, OP_vkCmdUpdateBuffer, snapshotTraceBegin, 1324 snapshotTraceBytes); 1325 for (uint32_t i = 0; i < 1; ++i) { 1326 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1327 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1328 } 1329 } vkCmdFillBuffer(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)1330 void vkCmdFillBuffer(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1331 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1332 VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, 1333 uint32_t data) { 1334 android::base::AutoLock lock(mLock); 1335 // commandBuffer modify 1336 auto apiHandle = mReconstruction.createApiInfo(); 1337 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1338 mReconstruction.setApiTrace(apiInfo, OP_vkCmdFillBuffer, snapshotTraceBegin, 1339 snapshotTraceBytes); 1340 for (uint32_t i = 0; i < 1; ++i) { 1341 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1342 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1343 } 1344 } vkCmdClearColorImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1345 void vkCmdClearColorImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1346 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1347 VkImage image, VkImageLayout imageLayout, 1348 const VkClearColorValue* pColor, uint32_t rangeCount, 1349 const VkImageSubresourceRange* pRanges) { 1350 android::base::AutoLock lock(mLock); 1351 // commandBuffer modify 1352 auto apiHandle = mReconstruction.createApiInfo(); 1353 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1354 mReconstruction.setApiTrace(apiInfo, OP_vkCmdClearColorImage, snapshotTraceBegin, 1355 snapshotTraceBytes); 1356 for (uint32_t i = 0; i < 1; ++i) { 1357 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1358 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1359 } 1360 } vkCmdClearDepthStencilImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1361 void vkCmdClearDepthStencilImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1362 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1363 VkImage image, VkImageLayout imageLayout, 1364 const VkClearDepthStencilValue* pDepthStencil, 1365 uint32_t rangeCount, const VkImageSubresourceRange* pRanges) { 1366 android::base::AutoLock lock(mLock); 1367 // commandBuffer modify 1368 auto apiHandle = mReconstruction.createApiInfo(); 1369 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1370 mReconstruction.setApiTrace(apiInfo, OP_vkCmdClearDepthStencilImage, snapshotTraceBegin, 1371 snapshotTraceBytes); 1372 for (uint32_t i = 0; i < 1; ++i) { 1373 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1374 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1375 } 1376 } vkCmdClearAttachments(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)1377 void vkCmdClearAttachments(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1378 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1379 uint32_t attachmentCount, const VkClearAttachment* pAttachments, 1380 uint32_t rectCount, const VkClearRect* pRects) { 1381 android::base::AutoLock lock(mLock); 1382 // commandBuffer modify 1383 auto apiHandle = mReconstruction.createApiInfo(); 1384 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1385 mReconstruction.setApiTrace(apiInfo, OP_vkCmdClearAttachments, snapshotTraceBegin, 1386 snapshotTraceBytes); 1387 for (uint32_t i = 0; i < 1; ++i) { 1388 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1389 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1390 } 1391 } vkCmdResolveImage(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)1392 void vkCmdResolveImage(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1393 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1394 VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, 1395 VkImageLayout dstImageLayout, uint32_t regionCount, 1396 const VkImageResolve* pRegions) { 1397 android::base::AutoLock lock(mLock); 1398 // commandBuffer modify 1399 auto apiHandle = mReconstruction.createApiInfo(); 1400 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1401 mReconstruction.setApiTrace(apiInfo, OP_vkCmdResolveImage, snapshotTraceBegin, 1402 snapshotTraceBytes); 1403 for (uint32_t i = 0; i < 1; ++i) { 1404 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1405 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1406 } 1407 } vkCmdSetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1408 void vkCmdSetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1409 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, VkEvent event, 1410 VkPipelineStageFlags stageMask) { 1411 android::base::AutoLock lock(mLock); 1412 // commandBuffer modify 1413 auto apiHandle = mReconstruction.createApiInfo(); 1414 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1415 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetEvent, snapshotTraceBegin, 1416 snapshotTraceBytes); 1417 for (uint32_t i = 0; i < 1; ++i) { 1418 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1419 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1420 } 1421 } vkCmdResetEvent(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1422 void vkCmdResetEvent(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1423 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1424 VkEvent event, VkPipelineStageFlags stageMask) { 1425 android::base::AutoLock lock(mLock); 1426 // commandBuffer modify 1427 auto apiHandle = mReconstruction.createApiInfo(); 1428 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1429 mReconstruction.setApiTrace(apiInfo, OP_vkCmdResetEvent, snapshotTraceBegin, 1430 snapshotTraceBytes); 1431 for (uint32_t i = 0; i < 1; ++i) { 1432 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1433 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1434 } 1435 } vkCmdWaitEvents(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1436 void vkCmdWaitEvents(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1437 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1438 uint32_t eventCount, const VkEvent* pEvents, 1439 VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, 1440 uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, 1441 uint32_t bufferMemoryBarrierCount, 1442 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 1443 uint32_t imageMemoryBarrierCount, 1444 const VkImageMemoryBarrier* pImageMemoryBarriers) { 1445 android::base::AutoLock lock(mLock); 1446 // commandBuffer modify 1447 auto apiHandle = mReconstruction.createApiInfo(); 1448 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1449 mReconstruction.setApiTrace(apiInfo, OP_vkCmdWaitEvents, snapshotTraceBegin, 1450 snapshotTraceBytes); 1451 for (uint32_t i = 0; i < 1; ++i) { 1452 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1453 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1454 } 1455 } vkCmdPipelineBarrier(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,VkDependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1456 void vkCmdPipelineBarrier(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1457 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1458 VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, 1459 VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, 1460 const VkMemoryBarrier* pMemoryBarriers, 1461 uint32_t bufferMemoryBarrierCount, 1462 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 1463 uint32_t imageMemoryBarrierCount, 1464 const VkImageMemoryBarrier* pImageMemoryBarriers) { 1465 android::base::AutoLock lock(mLock); 1466 // commandBuffer modify 1467 auto apiHandle = mReconstruction.createApiInfo(); 1468 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1469 mReconstruction.setApiTrace(apiInfo, OP_vkCmdPipelineBarrier, snapshotTraceBegin, 1470 snapshotTraceBytes); 1471 for (uint32_t i = 0; i < 1; ++i) { 1472 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1473 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1474 } 1475 } vkCmdBeginQuery(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)1476 void vkCmdBeginQuery(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1477 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1478 VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags) { 1479 android::base::AutoLock lock(mLock); 1480 // commandBuffer modify 1481 auto apiHandle = mReconstruction.createApiInfo(); 1482 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1483 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginQuery, snapshotTraceBegin, 1484 snapshotTraceBytes); 1485 for (uint32_t i = 0; i < 1; ++i) { 1486 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1487 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1488 } 1489 } vkCmdEndQuery(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)1490 void vkCmdEndQuery(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1491 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1492 VkQueryPool queryPool, uint32_t query) { 1493 android::base::AutoLock lock(mLock); 1494 // commandBuffer modify 1495 auto apiHandle = mReconstruction.createApiInfo(); 1496 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1497 mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndQuery, snapshotTraceBegin, 1498 snapshotTraceBytes); 1499 for (uint32_t i = 0; i < 1; ++i) { 1500 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1501 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1502 } 1503 } vkCmdResetQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1504 void vkCmdResetQueryPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1505 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1506 VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) { 1507 android::base::AutoLock lock(mLock); 1508 // commandBuffer modify 1509 auto apiHandle = mReconstruction.createApiInfo(); 1510 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1511 mReconstruction.setApiTrace(apiInfo, OP_vkCmdResetQueryPool, snapshotTraceBegin, 1512 snapshotTraceBytes); 1513 for (uint32_t i = 0; i < 1; ++i) { 1514 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1515 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1516 } 1517 } vkCmdWriteTimestamp(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)1518 void vkCmdWriteTimestamp(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1519 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1520 VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, 1521 uint32_t query) { 1522 android::base::AutoLock lock(mLock); 1523 // commandBuffer modify 1524 auto apiHandle = mReconstruction.createApiInfo(); 1525 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1526 mReconstruction.setApiTrace(apiInfo, OP_vkCmdWriteTimestamp, snapshotTraceBegin, 1527 snapshotTraceBytes); 1528 for (uint32_t i = 0; i < 1; ++i) { 1529 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1530 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1531 } 1532 } vkCmdCopyQueryPoolResults(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)1533 void vkCmdCopyQueryPoolResults(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1534 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1535 VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, 1536 VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, 1537 VkQueryResultFlags flags) { 1538 android::base::AutoLock lock(mLock); 1539 // commandBuffer modify 1540 auto apiHandle = mReconstruction.createApiInfo(); 1541 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1542 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyQueryPoolResults, snapshotTraceBegin, 1543 snapshotTraceBytes); 1544 for (uint32_t i = 0; i < 1; ++i) { 1545 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1546 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1547 } 1548 } vkCmdPushConstants(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)1549 void vkCmdPushConstants(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1550 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1551 VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, 1552 uint32_t size, const void* pValues) { 1553 android::base::AutoLock lock(mLock); 1554 // commandBuffer modify 1555 auto apiHandle = mReconstruction.createApiInfo(); 1556 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1557 mReconstruction.setApiTrace(apiInfo, OP_vkCmdPushConstants, snapshotTraceBegin, 1558 snapshotTraceBytes); 1559 for (uint32_t i = 0; i < 1; ++i) { 1560 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1561 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1562 } 1563 } vkCmdBeginRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)1564 void vkCmdBeginRenderPass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1565 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1566 const VkRenderPassBeginInfo* pRenderPassBegin, 1567 VkSubpassContents contents) { 1568 android::base::AutoLock lock(mLock); 1569 // commandBuffer modify 1570 auto apiHandle = mReconstruction.createApiInfo(); 1571 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1572 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRenderPass, snapshotTraceBegin, 1573 snapshotTraceBytes); 1574 for (uint32_t i = 0; i < 1; ++i) { 1575 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1576 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1577 } 1578 } vkCmdNextSubpass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkSubpassContents contents)1579 void vkCmdNextSubpass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1580 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1581 VkSubpassContents contents) { 1582 android::base::AutoLock lock(mLock); 1583 // commandBuffer modify 1584 auto apiHandle = mReconstruction.createApiInfo(); 1585 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1586 mReconstruction.setApiTrace(apiInfo, OP_vkCmdNextSubpass, snapshotTraceBegin, 1587 snapshotTraceBytes); 1588 for (uint32_t i = 0; i < 1; ++i) { 1589 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1590 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1591 } 1592 } vkCmdEndRenderPass(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)1593 void vkCmdEndRenderPass(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1594 android::base::BumpPool* pool, VkCommandBuffer commandBuffer) { 1595 android::base::AutoLock lock(mLock); 1596 // commandBuffer modify 1597 auto apiHandle = mReconstruction.createApiInfo(); 1598 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1599 mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRenderPass, snapshotTraceBegin, 1600 snapshotTraceBytes); 1601 for (uint32_t i = 0; i < 1; ++i) { 1602 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1603 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1604 } 1605 } vkCmdExecuteCommands(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)1606 void vkCmdExecuteCommands(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1607 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1608 uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers) { 1609 android::base::AutoLock lock(mLock); 1610 // commandBuffer modify 1611 auto apiHandle = mReconstruction.createApiInfo(); 1612 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1613 mReconstruction.setApiTrace(apiInfo, OP_vkCmdExecuteCommands, snapshotTraceBegin, 1614 snapshotTraceBytes); 1615 for (uint32_t i = 0; i < 1; ++i) { 1616 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1617 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1618 } 1619 } 1620 #endif 1621 #ifdef VK_VERSION_1_1 vkEnumerateInstanceVersion(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,uint32_t * pApiVersion)1622 void vkEnumerateInstanceVersion(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1623 android::base::BumpPool* pool, VkResult input_result, 1624 uint32_t* pApiVersion) {} vkBindBufferMemory2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1625 void vkBindBufferMemory2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1626 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 1627 uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) {} vkBindImageMemory2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)1628 void vkBindImageMemory2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1629 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 1630 uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) {} vkGetDeviceGroupPeerMemoryFeatures(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)1631 void vkGetDeviceGroupPeerMemoryFeatures(const uint8_t* snapshotTraceBegin, 1632 size_t snapshotTraceBytes, 1633 android::base::BumpPool* pool, VkDevice device, 1634 uint32_t heapIndex, uint32_t localDeviceIndex, 1635 uint32_t remoteDeviceIndex, 1636 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {} vkCmdSetDeviceMask(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t deviceMask)1637 void vkCmdSetDeviceMask(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1638 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1639 uint32_t deviceMask) { 1640 android::base::AutoLock lock(mLock); 1641 // commandBuffer modify 1642 auto apiHandle = mReconstruction.createApiInfo(); 1643 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1644 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDeviceMask, snapshotTraceBegin, 1645 snapshotTraceBytes); 1646 for (uint32_t i = 0; i < 1; ++i) { 1647 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1648 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1649 } 1650 } vkCmdDispatchBase(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1651 void vkCmdDispatchBase(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1652 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1653 uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, 1654 uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) { 1655 android::base::AutoLock lock(mLock); 1656 // commandBuffer modify 1657 auto apiHandle = mReconstruction.createApiInfo(); 1658 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1659 mReconstruction.setApiTrace(apiInfo, OP_vkCmdDispatchBase, snapshotTraceBegin, 1660 snapshotTraceBytes); 1661 for (uint32_t i = 0; i < 1; ++i) { 1662 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1663 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1664 } 1665 } vkEnumeratePhysicalDeviceGroups(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)1666 void vkEnumeratePhysicalDeviceGroups( 1667 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1668 VkResult input_result, VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, 1669 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {} vkGetImageMemoryRequirements2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1670 void vkGetImageMemoryRequirements2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1671 android::base::BumpPool* pool, VkDevice device, 1672 const VkImageMemoryRequirementsInfo2* pInfo, 1673 VkMemoryRequirements2* pMemoryRequirements) {} vkGetBufferMemoryRequirements2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1674 void vkGetBufferMemoryRequirements2(const uint8_t* snapshotTraceBegin, 1675 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1676 VkDevice device, 1677 const VkBufferMemoryRequirementsInfo2* pInfo, 1678 VkMemoryRequirements2* pMemoryRequirements) {} vkGetImageSparseMemoryRequirements2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)1679 void vkGetImageSparseMemoryRequirements2( 1680 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1681 VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, 1682 uint32_t* pSparseMemoryRequirementCount, 1683 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {} vkGetPhysicalDeviceFeatures2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)1684 void vkGetPhysicalDeviceFeatures2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1685 android::base::BumpPool* pool, 1686 VkPhysicalDevice physicalDevice, 1687 VkPhysicalDeviceFeatures2* pFeatures) {} vkGetPhysicalDeviceProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)1688 void vkGetPhysicalDeviceProperties2(const uint8_t* snapshotTraceBegin, 1689 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1690 VkPhysicalDevice physicalDevice, 1691 VkPhysicalDeviceProperties2* pProperties) {} vkGetPhysicalDeviceFormatProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)1692 void vkGetPhysicalDeviceFormatProperties2(const uint8_t* snapshotTraceBegin, 1693 size_t snapshotTraceBytes, 1694 android::base::BumpPool* pool, 1695 VkPhysicalDevice physicalDevice, VkFormat format, 1696 VkFormatProperties2* pFormatProperties) {} vkGetPhysicalDeviceImageFormatProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)1697 void vkGetPhysicalDeviceImageFormatProperties2( 1698 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1699 VkResult input_result, VkPhysicalDevice physicalDevice, 1700 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, 1701 VkImageFormatProperties2* pImageFormatProperties) {} vkGetPhysicalDeviceQueueFamilyProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)1702 void vkGetPhysicalDeviceQueueFamilyProperties2( 1703 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1704 VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, 1705 VkQueueFamilyProperties2* pQueueFamilyProperties) {} vkGetPhysicalDeviceMemoryProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)1706 void vkGetPhysicalDeviceMemoryProperties2( 1707 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1708 VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {} vkGetPhysicalDeviceSparseImageFormatProperties2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)1709 void vkGetPhysicalDeviceSparseImageFormatProperties2( 1710 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1711 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, 1712 uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {} vkTrimCommandPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)1713 void vkTrimCommandPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1714 android::base::BumpPool* pool, VkDevice device, 1715 VkCommandPool commandPool, VkCommandPoolTrimFlags flags) {} vkGetDeviceQueue2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)1716 void vkGetDeviceQueue2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1717 android::base::BumpPool* pool, VkDevice device, 1718 const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) {} vkCreateSamplerYcbcrConversion(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)1719 void vkCreateSamplerYcbcrConversion(const uint8_t* snapshotTraceBegin, 1720 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1721 VkResult input_result, VkDevice device, 1722 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, 1723 const VkAllocationCallbacks* pAllocator, 1724 VkSamplerYcbcrConversion* pYcbcrConversion) { 1725 if (!pYcbcrConversion) return; 1726 android::base::AutoLock lock(mLock); 1727 // pYcbcrConversion create 1728 mReconstruction.addHandles((const uint64_t*)pYcbcrConversion, 1); 1729 mReconstruction.addHandleDependency((const uint64_t*)pYcbcrConversion, 1, 1730 (uint64_t)(uintptr_t)device); 1731 auto apiHandle = mReconstruction.createApiInfo(); 1732 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1733 mReconstruction.setApiTrace(apiInfo, OP_vkCreateSamplerYcbcrConversion, snapshotTraceBegin, 1734 snapshotTraceBytes); 1735 mReconstruction.forEachHandleAddApi((const uint64_t*)pYcbcrConversion, 1, apiHandle, 1736 VkReconstruction::CREATED); 1737 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pYcbcrConversion, 1); 1738 } vkDestroySamplerYcbcrConversion(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)1739 void vkDestroySamplerYcbcrConversion(const uint8_t* snapshotTraceBegin, 1740 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1741 VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, 1742 const VkAllocationCallbacks* pAllocator) { 1743 android::base::AutoLock lock(mLock); 1744 // ycbcrConversion destroy 1745 mReconstruction.removeHandles((const uint64_t*)(&ycbcrConversion), 1, true); 1746 } vkCreateDescriptorUpdateTemplate(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)1747 void vkCreateDescriptorUpdateTemplate(const uint8_t* snapshotTraceBegin, 1748 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1749 VkResult input_result, VkDevice device, 1750 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, 1751 const VkAllocationCallbacks* pAllocator, 1752 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) { 1753 if (!pDescriptorUpdateTemplate) return; 1754 android::base::AutoLock lock(mLock); 1755 // pDescriptorUpdateTemplate create 1756 mReconstruction.addHandles((const uint64_t*)pDescriptorUpdateTemplate, 1); 1757 mReconstruction.addHandleDependency((const uint64_t*)pDescriptorUpdateTemplate, 1, 1758 (uint64_t)(uintptr_t)device); 1759 auto apiHandle = mReconstruction.createApiInfo(); 1760 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1761 mReconstruction.setApiTrace(apiInfo, OP_vkCreateDescriptorUpdateTemplate, 1762 snapshotTraceBegin, snapshotTraceBytes); 1763 mReconstruction.forEachHandleAddApi((const uint64_t*)pDescriptorUpdateTemplate, 1, 1764 apiHandle, VkReconstruction::CREATED); 1765 mReconstruction.setCreatedHandlesForApi(apiHandle, 1766 (const uint64_t*)pDescriptorUpdateTemplate, 1); 1767 } vkDestroyDescriptorUpdateTemplate(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)1768 void vkDestroyDescriptorUpdateTemplate(const uint8_t* snapshotTraceBegin, 1769 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1770 VkDevice device, 1771 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 1772 const VkAllocationCallbacks* pAllocator) { 1773 android::base::AutoLock lock(mLock); 1774 // descriptorUpdateTemplate destroy 1775 mReconstruction.removeHandles((const uint64_t*)(&descriptorUpdateTemplate), 1, true); 1776 } vkUpdateDescriptorSetWithTemplate(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)1777 void vkUpdateDescriptorSetWithTemplate(const uint8_t* snapshotTraceBegin, 1778 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1779 VkDevice device, VkDescriptorSet descriptorSet, 1780 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 1781 const void* pData) {} vkGetPhysicalDeviceExternalBufferProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)1782 void vkGetPhysicalDeviceExternalBufferProperties( 1783 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1784 VkPhysicalDevice physicalDevice, 1785 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, 1786 VkExternalBufferProperties* pExternalBufferProperties) {} vkGetPhysicalDeviceExternalFenceProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)1787 void vkGetPhysicalDeviceExternalFenceProperties( 1788 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1789 VkPhysicalDevice physicalDevice, 1790 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, 1791 VkExternalFenceProperties* pExternalFenceProperties) {} vkGetPhysicalDeviceExternalSemaphoreProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)1792 void vkGetPhysicalDeviceExternalSemaphoreProperties( 1793 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1794 VkPhysicalDevice physicalDevice, 1795 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, 1796 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {} vkGetDescriptorSetLayoutSupport(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)1797 void vkGetDescriptorSetLayoutSupport(const uint8_t* snapshotTraceBegin, 1798 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1799 VkDevice device, 1800 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 1801 VkDescriptorSetLayoutSupport* pSupport) {} 1802 #endif 1803 #ifdef VK_VERSION_1_2 vkCmdDrawIndirectCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)1804 void vkCmdDrawIndirectCount(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1805 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1806 VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, 1807 VkDeviceSize countBufferOffset, uint32_t maxDrawCount, 1808 uint32_t stride) { 1809 android::base::AutoLock lock(mLock); 1810 // commandBuffer modify 1811 auto apiHandle = mReconstruction.createApiInfo(); 1812 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1813 mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndirectCount, snapshotTraceBegin, 1814 snapshotTraceBytes); 1815 for (uint32_t i = 0; i < 1; ++i) { 1816 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1817 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1818 } 1819 } vkCmdDrawIndexedIndirectCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)1820 void vkCmdDrawIndexedIndirectCount(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1821 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1822 VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, 1823 VkDeviceSize countBufferOffset, uint32_t maxDrawCount, 1824 uint32_t stride) { 1825 android::base::AutoLock lock(mLock); 1826 // commandBuffer modify 1827 auto apiHandle = mReconstruction.createApiInfo(); 1828 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1829 mReconstruction.setApiTrace(apiInfo, OP_vkCmdDrawIndexedIndirectCount, snapshotTraceBegin, 1830 snapshotTraceBytes); 1831 for (uint32_t i = 0; i < 1; ++i) { 1832 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1833 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1834 } 1835 } vkCreateRenderPass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)1836 void vkCreateRenderPass2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1837 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 1838 const VkRenderPassCreateInfo2* pCreateInfo, 1839 const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) { 1840 if (!pRenderPass) return; 1841 android::base::AutoLock lock(mLock); 1842 // pRenderPass create 1843 mReconstruction.addHandles((const uint64_t*)pRenderPass, 1); 1844 mReconstruction.addHandleDependency((const uint64_t*)pRenderPass, 1, 1845 (uint64_t)(uintptr_t)device); 1846 auto apiHandle = mReconstruction.createApiInfo(); 1847 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1848 mReconstruction.setApiTrace(apiInfo, OP_vkCreateRenderPass2, snapshotTraceBegin, 1849 snapshotTraceBytes); 1850 mReconstruction.forEachHandleAddApi((const uint64_t*)pRenderPass, 1, apiHandle, 1851 VkReconstruction::CREATED); 1852 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pRenderPass, 1); 1853 } vkCmdBeginRenderPass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)1854 void vkCmdBeginRenderPass2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1855 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1856 const VkRenderPassBeginInfo* pRenderPassBegin, 1857 const VkSubpassBeginInfo* pSubpassBeginInfo) { 1858 android::base::AutoLock lock(mLock); 1859 // commandBuffer modify 1860 auto apiHandle = mReconstruction.createApiInfo(); 1861 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1862 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRenderPass2, snapshotTraceBegin, 1863 snapshotTraceBytes); 1864 for (uint32_t i = 0; i < 1; ++i) { 1865 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1866 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1867 } 1868 } vkCmdNextSubpass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)1869 void vkCmdNextSubpass2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1870 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1871 const VkSubpassBeginInfo* pSubpassBeginInfo, 1872 const VkSubpassEndInfo* pSubpassEndInfo) { 1873 android::base::AutoLock lock(mLock); 1874 // commandBuffer modify 1875 auto apiHandle = mReconstruction.createApiInfo(); 1876 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1877 mReconstruction.setApiTrace(apiInfo, OP_vkCmdNextSubpass2, snapshotTraceBegin, 1878 snapshotTraceBytes); 1879 for (uint32_t i = 0; i < 1; ++i) { 1880 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1881 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1882 } 1883 } vkCmdEndRenderPass2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)1884 void vkCmdEndRenderPass2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1885 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1886 const VkSubpassEndInfo* pSubpassEndInfo) { 1887 android::base::AutoLock lock(mLock); 1888 // commandBuffer modify 1889 auto apiHandle = mReconstruction.createApiInfo(); 1890 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1891 mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRenderPass2, snapshotTraceBegin, 1892 snapshotTraceBytes); 1893 for (uint32_t i = 0; i < 1; ++i) { 1894 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1895 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1896 } 1897 } vkResetQueryPool(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1898 void vkResetQueryPool(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1899 android::base::BumpPool* pool, VkDevice device, VkQueryPool queryPool, 1900 uint32_t firstQuery, uint32_t queryCount) {} vkGetSemaphoreCounterValue(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSemaphore semaphore,uint64_t * pValue)1901 void vkGetSemaphoreCounterValue(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1902 android::base::BumpPool* pool, VkResult input_result, 1903 VkDevice device, VkSemaphore semaphore, uint64_t* pValue) {} vkWaitSemaphores(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)1904 void vkWaitSemaphores(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1905 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 1906 const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout) {} vkSignalSemaphore(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)1907 void vkSignalSemaphore(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1908 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 1909 const VkSemaphoreSignalInfo* pSignalInfo) {} vkGetBufferDeviceAddress(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDeviceAddress input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1910 void vkGetBufferDeviceAddress(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1911 android::base::BumpPool* pool, VkDeviceAddress input_result, 1912 VkDevice device, const VkBufferDeviceAddressInfo* pInfo) {} vkGetBufferOpaqueCaptureAddress(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1913 void vkGetBufferOpaqueCaptureAddress(const uint8_t* snapshotTraceBegin, 1914 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1915 uint64_t input_result, VkDevice device, 1916 const VkBufferDeviceAddressInfo* pInfo) {} vkGetDeviceMemoryOpaqueCaptureAddress(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)1917 void vkGetDeviceMemoryOpaqueCaptureAddress( 1918 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 1919 uint64_t input_result, VkDevice device, 1920 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {} 1921 #endif 1922 #ifdef VK_VERSION_1_3 vkGetPhysicalDeviceToolProperties(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties)1923 void vkGetPhysicalDeviceToolProperties(const uint8_t* snapshotTraceBegin, 1924 size_t snapshotTraceBytes, android::base::BumpPool* pool, 1925 VkResult input_result, VkPhysicalDevice physicalDevice, 1926 uint32_t* pToolCount, 1927 VkPhysicalDeviceToolProperties* pToolProperties) {} vkCreatePrivateDataSlot(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)1928 void vkCreatePrivateDataSlot(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1929 android::base::BumpPool* pool, VkResult input_result, 1930 VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, 1931 const VkAllocationCallbacks* pAllocator, 1932 VkPrivateDataSlot* pPrivateDataSlot) {} vkDestroyPrivateDataSlot(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)1933 void vkDestroyPrivateDataSlot(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1934 android::base::BumpPool* pool, VkDevice device, 1935 VkPrivateDataSlot privateDataSlot, 1936 const VkAllocationCallbacks* pAllocator) {} vkSetPrivateData(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)1937 void vkSetPrivateData(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1938 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 1939 VkObjectType objectType, uint64_t objectHandle, 1940 VkPrivateDataSlot privateDataSlot, uint64_t data) {} vkGetPrivateData(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)1941 void vkGetPrivateData(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1942 android::base::BumpPool* pool, VkDevice device, VkObjectType objectType, 1943 uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, 1944 uint64_t* pData) {} vkCmdSetEvent2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)1945 void vkCmdSetEvent2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1946 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, VkEvent event, 1947 const VkDependencyInfo* pDependencyInfo) { 1948 android::base::AutoLock lock(mLock); 1949 // commandBuffer modify 1950 auto apiHandle = mReconstruction.createApiInfo(); 1951 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1952 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetEvent2, snapshotTraceBegin, 1953 snapshotTraceBytes); 1954 for (uint32_t i = 0; i < 1; ++i) { 1955 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1956 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1957 } 1958 } vkCmdResetEvent2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)1959 void vkCmdResetEvent2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1960 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1961 VkEvent event, VkPipelineStageFlags2 stageMask) { 1962 android::base::AutoLock lock(mLock); 1963 // commandBuffer modify 1964 auto apiHandle = mReconstruction.createApiInfo(); 1965 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1966 mReconstruction.setApiTrace(apiInfo, OP_vkCmdResetEvent2, snapshotTraceBegin, 1967 snapshotTraceBytes); 1968 for (uint32_t i = 0; i < 1; ++i) { 1969 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1970 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1971 } 1972 } vkCmdWaitEvents2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)1973 void vkCmdWaitEvents2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1974 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1975 uint32_t eventCount, const VkEvent* pEvents, 1976 const VkDependencyInfo* pDependencyInfos) { 1977 android::base::AutoLock lock(mLock); 1978 // commandBuffer modify 1979 auto apiHandle = mReconstruction.createApiInfo(); 1980 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1981 mReconstruction.setApiTrace(apiInfo, OP_vkCmdWaitEvents2, snapshotTraceBegin, 1982 snapshotTraceBytes); 1983 for (uint32_t i = 0; i < 1; ++i) { 1984 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1985 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 1986 } 1987 } vkCmdPipelineBarrier2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)1988 void vkCmdPipelineBarrier2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 1989 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 1990 const VkDependencyInfo* pDependencyInfo) { 1991 android::base::AutoLock lock(mLock); 1992 // commandBuffer modify 1993 auto apiHandle = mReconstruction.createApiInfo(); 1994 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 1995 mReconstruction.setApiTrace(apiInfo, OP_vkCmdPipelineBarrier2, snapshotTraceBegin, 1996 snapshotTraceBytes); 1997 for (uint32_t i = 0; i < 1; ++i) { 1998 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 1999 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2000 } 2001 } vkCmdWriteTimestamp2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)2002 void vkCmdWriteTimestamp2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2003 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2004 VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query) { 2005 android::base::AutoLock lock(mLock); 2006 // commandBuffer modify 2007 auto apiHandle = mReconstruction.createApiInfo(); 2008 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2009 mReconstruction.setApiTrace(apiInfo, OP_vkCmdWriteTimestamp2, snapshotTraceBegin, 2010 snapshotTraceBytes); 2011 for (uint32_t i = 0; i < 1; ++i) { 2012 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2013 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2014 } 2015 } vkQueueSubmit2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)2016 void vkQueueSubmit2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2017 android::base::BumpPool* pool, VkResult input_result, VkQueue queue, 2018 uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) {} vkCmdCopyBuffer2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)2019 void vkCmdCopyBuffer2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2020 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2021 const VkCopyBufferInfo2* pCopyBufferInfo) { 2022 android::base::AutoLock lock(mLock); 2023 // commandBuffer modify 2024 auto apiHandle = mReconstruction.createApiInfo(); 2025 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2026 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBuffer2, snapshotTraceBegin, 2027 snapshotTraceBytes); 2028 for (uint32_t i = 0; i < 1; ++i) { 2029 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2030 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2031 } 2032 } vkCmdCopyImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)2033 void vkCmdCopyImage2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2034 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2035 const VkCopyImageInfo2* pCopyImageInfo) { 2036 android::base::AutoLock lock(mLock); 2037 // commandBuffer modify 2038 auto apiHandle = mReconstruction.createApiInfo(); 2039 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2040 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImage2, snapshotTraceBegin, 2041 snapshotTraceBytes); 2042 for (uint32_t i = 0; i < 1; ++i) { 2043 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2044 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2045 } 2046 } vkCmdCopyBufferToImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)2047 void vkCmdCopyBufferToImage2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2048 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2049 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) { 2050 android::base::AutoLock lock(mLock); 2051 // commandBuffer modify 2052 auto apiHandle = mReconstruction.createApiInfo(); 2053 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2054 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBufferToImage2, snapshotTraceBegin, 2055 snapshotTraceBytes); 2056 for (uint32_t i = 0; i < 1; ++i) { 2057 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2058 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2059 } 2060 } vkCmdCopyImageToBuffer2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)2061 void vkCmdCopyImageToBuffer2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2062 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2063 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) { 2064 android::base::AutoLock lock(mLock); 2065 // commandBuffer modify 2066 auto apiHandle = mReconstruction.createApiInfo(); 2067 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2068 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyImageToBuffer2, snapshotTraceBegin, 2069 snapshotTraceBytes); 2070 for (uint32_t i = 0; i < 1; ++i) { 2071 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2072 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2073 } 2074 } vkCmdBlitImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)2075 void vkCmdBlitImage2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2076 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2077 const VkBlitImageInfo2* pBlitImageInfo) { 2078 android::base::AutoLock lock(mLock); 2079 // commandBuffer modify 2080 auto apiHandle = mReconstruction.createApiInfo(); 2081 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2082 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBlitImage2, snapshotTraceBegin, 2083 snapshotTraceBytes); 2084 for (uint32_t i = 0; i < 1; ++i) { 2085 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2086 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2087 } 2088 } vkCmdResolveImage2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)2089 void vkCmdResolveImage2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2090 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2091 const VkResolveImageInfo2* pResolveImageInfo) { 2092 android::base::AutoLock lock(mLock); 2093 // commandBuffer modify 2094 auto apiHandle = mReconstruction.createApiInfo(); 2095 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2096 mReconstruction.setApiTrace(apiInfo, OP_vkCmdResolveImage2, snapshotTraceBegin, 2097 snapshotTraceBytes); 2098 for (uint32_t i = 0; i < 1; ++i) { 2099 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2100 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2101 } 2102 } vkCmdBeginRendering(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)2103 void vkCmdBeginRendering(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2104 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2105 const VkRenderingInfo* pRenderingInfo) { 2106 android::base::AutoLock lock(mLock); 2107 // commandBuffer modify 2108 auto apiHandle = mReconstruction.createApiInfo(); 2109 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2110 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRendering, snapshotTraceBegin, 2111 snapshotTraceBytes); 2112 for (uint32_t i = 0; i < 1; ++i) { 2113 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2114 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2115 } 2116 } vkCmdEndRendering(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)2117 void vkCmdEndRendering(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2118 android::base::BumpPool* pool, VkCommandBuffer commandBuffer) { 2119 android::base::AutoLock lock(mLock); 2120 // commandBuffer modify 2121 auto apiHandle = mReconstruction.createApiInfo(); 2122 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2123 mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRendering, snapshotTraceBegin, 2124 snapshotTraceBytes); 2125 for (uint32_t i = 0; i < 1; ++i) { 2126 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2127 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2128 } 2129 } vkCmdSetCullMode(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)2130 void vkCmdSetCullMode(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2131 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2132 VkCullModeFlags cullMode) { 2133 android::base::AutoLock lock(mLock); 2134 // commandBuffer modify 2135 auto apiHandle = mReconstruction.createApiInfo(); 2136 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2137 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetCullMode, snapshotTraceBegin, 2138 snapshotTraceBytes); 2139 for (uint32_t i = 0; i < 1; ++i) { 2140 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2141 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2142 } 2143 } vkCmdSetFrontFace(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkFrontFace frontFace)2144 void vkCmdSetFrontFace(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2145 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2146 VkFrontFace frontFace) { 2147 android::base::AutoLock lock(mLock); 2148 // commandBuffer modify 2149 auto apiHandle = mReconstruction.createApiInfo(); 2150 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2151 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetFrontFace, snapshotTraceBegin, 2152 snapshotTraceBytes); 2153 for (uint32_t i = 0; i < 1; ++i) { 2154 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2155 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2156 } 2157 } vkCmdSetPrimitiveTopology(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)2158 void vkCmdSetPrimitiveTopology(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2159 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2160 VkPrimitiveTopology primitiveTopology) { 2161 android::base::AutoLock lock(mLock); 2162 // commandBuffer modify 2163 auto apiHandle = mReconstruction.createApiInfo(); 2164 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2165 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetPrimitiveTopology, snapshotTraceBegin, 2166 snapshotTraceBytes); 2167 for (uint32_t i = 0; i < 1; ++i) { 2168 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2169 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2170 } 2171 } vkCmdSetViewportWithCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)2172 void vkCmdSetViewportWithCount(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2173 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2174 uint32_t viewportCount, const VkViewport* pViewports) { 2175 android::base::AutoLock lock(mLock); 2176 // commandBuffer modify 2177 auto apiHandle = mReconstruction.createApiInfo(); 2178 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2179 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetViewportWithCount, snapshotTraceBegin, 2180 snapshotTraceBytes); 2181 for (uint32_t i = 0; i < 1; ++i) { 2182 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2183 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2184 } 2185 } vkCmdSetScissorWithCount(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)2186 void vkCmdSetScissorWithCount(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2187 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2188 uint32_t scissorCount, const VkRect2D* pScissors) { 2189 android::base::AutoLock lock(mLock); 2190 // commandBuffer modify 2191 auto apiHandle = mReconstruction.createApiInfo(); 2192 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2193 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetScissorWithCount, snapshotTraceBegin, 2194 snapshotTraceBytes); 2195 for (uint32_t i = 0; i < 1; ++i) { 2196 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2197 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2198 } 2199 } vkCmdBindVertexBuffers2(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)2200 void vkCmdBindVertexBuffers2(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2201 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2202 uint32_t firstBinding, uint32_t bindingCount, 2203 const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, 2204 const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) { 2205 android::base::AutoLock lock(mLock); 2206 // commandBuffer modify 2207 auto apiHandle = mReconstruction.createApiInfo(); 2208 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2209 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBindVertexBuffers2, snapshotTraceBegin, 2210 snapshotTraceBytes); 2211 for (uint32_t i = 0; i < 1; ++i) { 2212 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2213 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2214 } 2215 } vkCmdSetDepthTestEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)2216 void vkCmdSetDepthTestEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2217 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2218 VkBool32 depthTestEnable) { 2219 android::base::AutoLock lock(mLock); 2220 // commandBuffer modify 2221 auto apiHandle = mReconstruction.createApiInfo(); 2222 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2223 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthTestEnable, snapshotTraceBegin, 2224 snapshotTraceBytes); 2225 for (uint32_t i = 0; i < 1; ++i) { 2226 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2227 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2228 } 2229 } vkCmdSetDepthWriteEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)2230 void vkCmdSetDepthWriteEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2231 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2232 VkBool32 depthWriteEnable) { 2233 android::base::AutoLock lock(mLock); 2234 // commandBuffer modify 2235 auto apiHandle = mReconstruction.createApiInfo(); 2236 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2237 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthWriteEnable, snapshotTraceBegin, 2238 snapshotTraceBytes); 2239 for (uint32_t i = 0; i < 1; ++i) { 2240 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2241 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2242 } 2243 } vkCmdSetDepthCompareOp(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)2244 void vkCmdSetDepthCompareOp(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2245 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2246 VkCompareOp depthCompareOp) { 2247 android::base::AutoLock lock(mLock); 2248 // commandBuffer modify 2249 auto apiHandle = mReconstruction.createApiInfo(); 2250 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2251 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthCompareOp, snapshotTraceBegin, 2252 snapshotTraceBytes); 2253 for (uint32_t i = 0; i < 1; ++i) { 2254 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2255 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2256 } 2257 } vkCmdSetDepthBoundsTestEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)2258 void vkCmdSetDepthBoundsTestEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2259 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2260 VkBool32 depthBoundsTestEnable) { 2261 android::base::AutoLock lock(mLock); 2262 // commandBuffer modify 2263 auto apiHandle = mReconstruction.createApiInfo(); 2264 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2265 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBoundsTestEnable, snapshotTraceBegin, 2266 snapshotTraceBytes); 2267 for (uint32_t i = 0; i < 1; ++i) { 2268 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2269 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2270 } 2271 } vkCmdSetStencilTestEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)2272 void vkCmdSetStencilTestEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2273 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2274 VkBool32 stencilTestEnable) { 2275 android::base::AutoLock lock(mLock); 2276 // commandBuffer modify 2277 auto apiHandle = mReconstruction.createApiInfo(); 2278 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2279 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilTestEnable, snapshotTraceBegin, 2280 snapshotTraceBytes); 2281 for (uint32_t i = 0; i < 1; ++i) { 2282 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2283 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2284 } 2285 } vkCmdSetStencilOp(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)2286 void vkCmdSetStencilOp(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2287 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2288 VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, 2289 VkStencilOp depthFailOp, VkCompareOp compareOp) { 2290 android::base::AutoLock lock(mLock); 2291 // commandBuffer modify 2292 auto apiHandle = mReconstruction.createApiInfo(); 2293 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2294 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetStencilOp, snapshotTraceBegin, 2295 snapshotTraceBytes); 2296 for (uint32_t i = 0; i < 1; ++i) { 2297 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2298 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2299 } 2300 } vkCmdSetRasterizerDiscardEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)2301 void vkCmdSetRasterizerDiscardEnable(const uint8_t* snapshotTraceBegin, 2302 size_t snapshotTraceBytes, android::base::BumpPool* pool, 2303 VkCommandBuffer commandBuffer, 2304 VkBool32 rasterizerDiscardEnable) { 2305 android::base::AutoLock lock(mLock); 2306 // commandBuffer modify 2307 auto apiHandle = mReconstruction.createApiInfo(); 2308 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2309 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetRasterizerDiscardEnable, snapshotTraceBegin, 2310 snapshotTraceBytes); 2311 for (uint32_t i = 0; i < 1; ++i) { 2312 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2313 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2314 } 2315 } vkCmdSetDepthBiasEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)2316 void vkCmdSetDepthBiasEnable(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2317 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2318 VkBool32 depthBiasEnable) { 2319 android::base::AutoLock lock(mLock); 2320 // commandBuffer modify 2321 auto apiHandle = mReconstruction.createApiInfo(); 2322 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2323 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetDepthBiasEnable, snapshotTraceBegin, 2324 snapshotTraceBytes); 2325 for (uint32_t i = 0; i < 1; ++i) { 2326 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2327 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2328 } 2329 } vkCmdSetPrimitiveRestartEnable(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)2330 void vkCmdSetPrimitiveRestartEnable(const uint8_t* snapshotTraceBegin, 2331 size_t snapshotTraceBytes, android::base::BumpPool* pool, 2332 VkCommandBuffer commandBuffer, 2333 VkBool32 primitiveRestartEnable) { 2334 android::base::AutoLock lock(mLock); 2335 // commandBuffer modify 2336 auto apiHandle = mReconstruction.createApiInfo(); 2337 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2338 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetPrimitiveRestartEnable, snapshotTraceBegin, 2339 snapshotTraceBytes); 2340 for (uint32_t i = 0; i < 1; ++i) { 2341 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2342 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2343 } 2344 } vkGetDeviceBufferMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2345 void vkGetDeviceBufferMemoryRequirements(const uint8_t* snapshotTraceBegin, 2346 size_t snapshotTraceBytes, 2347 android::base::BumpPool* pool, VkDevice device, 2348 const VkDeviceBufferMemoryRequirements* pInfo, 2349 VkMemoryRequirements2* pMemoryRequirements) {} vkGetDeviceImageMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2350 void vkGetDeviceImageMemoryRequirements(const uint8_t* snapshotTraceBegin, 2351 size_t snapshotTraceBytes, 2352 android::base::BumpPool* pool, VkDevice device, 2353 const VkDeviceImageMemoryRequirements* pInfo, 2354 VkMemoryRequirements2* pMemoryRequirements) {} vkGetDeviceImageSparseMemoryRequirements(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2355 void vkGetDeviceImageSparseMemoryRequirements( 2356 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2357 VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, 2358 uint32_t* pSparseMemoryRequirementCount, 2359 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {} 2360 #endif 2361 #ifdef VK_KHR_surface 2362 #endif 2363 #ifdef VK_KHR_swapchain vkCreateSwapchainKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)2364 void vkCreateSwapchainKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2365 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 2366 const VkSwapchainCreateInfoKHR* pCreateInfo, 2367 const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) { 2368 if (!pSwapchain) return; 2369 android::base::AutoLock lock(mLock); 2370 // pSwapchain create 2371 mReconstruction.addHandles((const uint64_t*)pSwapchain, 1); 2372 mReconstruction.addHandleDependency((const uint64_t*)pSwapchain, 1, 2373 (uint64_t)(uintptr_t)device); 2374 auto apiHandle = mReconstruction.createApiInfo(); 2375 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2376 mReconstruction.setApiTrace(apiInfo, OP_vkCreateSwapchainKHR, snapshotTraceBegin, 2377 snapshotTraceBytes); 2378 mReconstruction.forEachHandleAddApi((const uint64_t*)pSwapchain, 1, apiHandle, 2379 VkReconstruction::CREATED); 2380 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pSwapchain, 1); 2381 } vkDestroySwapchainKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)2382 void vkDestroySwapchainKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2383 android::base::BumpPool* pool, VkDevice device, 2384 VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) { 2385 android::base::AutoLock lock(mLock); 2386 // swapchain destroy 2387 mReconstruction.removeHandles((const uint64_t*)(&swapchain), 1, true); 2388 } vkGetSwapchainImagesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages)2389 void vkGetSwapchainImagesKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2390 android::base::BumpPool* pool, VkResult input_result, 2391 VkDevice device, VkSwapchainKHR swapchain, 2392 uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages) {} vkAcquireNextImageKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex)2393 void vkAcquireNextImageKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2394 android::base::BumpPool* pool, VkResult input_result, 2395 VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, 2396 VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex) {} vkQueuePresentKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,const VkPresentInfoKHR * pPresentInfo)2397 void vkQueuePresentKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2398 android::base::BumpPool* pool, VkResult input_result, VkQueue queue, 2399 const VkPresentInfoKHR* pPresentInfo) {} vkGetDeviceGroupPresentCapabilitiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities)2400 void vkGetDeviceGroupPresentCapabilitiesKHR( 2401 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2402 VkResult input_result, VkDevice device, 2403 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {} vkGetDeviceGroupSurfacePresentModesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes)2404 void vkGetDeviceGroupSurfacePresentModesKHR(const uint8_t* snapshotTraceBegin, 2405 size_t snapshotTraceBytes, 2406 android::base::BumpPool* pool, 2407 VkResult input_result, VkDevice device, 2408 VkSurfaceKHR surface, 2409 VkDeviceGroupPresentModeFlagsKHR* pModes) {} vkGetPhysicalDevicePresentRectanglesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects)2410 void vkGetPhysicalDevicePresentRectanglesKHR( 2411 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2412 VkResult input_result, VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, 2413 uint32_t* pRectCount, VkRect2D* pRects) {} vkAcquireNextImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex)2414 void vkAcquireNextImage2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2415 android::base::BumpPool* pool, VkResult input_result, 2416 VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, 2417 uint32_t* pImageIndex) {} 2418 #endif 2419 #ifdef VK_KHR_xcb_surface 2420 #endif 2421 #ifdef VK_KHR_android_surface 2422 #endif 2423 #ifdef VK_KHR_win32_surface 2424 #endif 2425 #ifdef VK_KHR_dynamic_rendering vkCmdBeginRenderingKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)2426 void vkCmdBeginRenderingKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2427 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2428 const VkRenderingInfo* pRenderingInfo) { 2429 android::base::AutoLock lock(mLock); 2430 // commandBuffer modify 2431 auto apiHandle = mReconstruction.createApiInfo(); 2432 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2433 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRenderingKHR, snapshotTraceBegin, 2434 snapshotTraceBytes); 2435 for (uint32_t i = 0; i < 1; ++i) { 2436 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2437 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2438 } 2439 } vkCmdEndRenderingKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer)2440 void vkCmdEndRenderingKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2441 android::base::BumpPool* pool, VkCommandBuffer commandBuffer) { 2442 android::base::AutoLock lock(mLock); 2443 // commandBuffer modify 2444 auto apiHandle = mReconstruction.createApiInfo(); 2445 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2446 mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRenderingKHR, snapshotTraceBegin, 2447 snapshotTraceBytes); 2448 for (uint32_t i = 0; i < 1; ++i) { 2449 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2450 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2451 } 2452 } 2453 #endif 2454 #ifdef VK_KHR_get_physical_device_properties2 vkGetPhysicalDeviceFeatures2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)2455 void vkGetPhysicalDeviceFeatures2KHR(const uint8_t* snapshotTraceBegin, 2456 size_t snapshotTraceBytes, android::base::BumpPool* pool, 2457 VkPhysicalDevice physicalDevice, 2458 VkPhysicalDeviceFeatures2* pFeatures) {} vkGetPhysicalDeviceProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)2459 void vkGetPhysicalDeviceProperties2KHR(const uint8_t* snapshotTraceBegin, 2460 size_t snapshotTraceBytes, android::base::BumpPool* pool, 2461 VkPhysicalDevice physicalDevice, 2462 VkPhysicalDeviceProperties2* pProperties) {} vkGetPhysicalDeviceFormatProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)2463 void vkGetPhysicalDeviceFormatProperties2KHR(const uint8_t* snapshotTraceBegin, 2464 size_t snapshotTraceBytes, 2465 android::base::BumpPool* pool, 2466 VkPhysicalDevice physicalDevice, VkFormat format, 2467 VkFormatProperties2* pFormatProperties) {} vkGetPhysicalDeviceImageFormatProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)2468 void vkGetPhysicalDeviceImageFormatProperties2KHR( 2469 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2470 VkResult input_result, VkPhysicalDevice physicalDevice, 2471 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, 2472 VkImageFormatProperties2* pImageFormatProperties) {} vkGetPhysicalDeviceQueueFamilyProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)2473 void vkGetPhysicalDeviceQueueFamilyProperties2KHR( 2474 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2475 VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, 2476 VkQueueFamilyProperties2* pQueueFamilyProperties) {} vkGetPhysicalDeviceMemoryProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)2477 void vkGetPhysicalDeviceMemoryProperties2KHR( 2478 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2479 VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {} vkGetPhysicalDeviceSparseImageFormatProperties2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)2480 void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( 2481 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2482 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, 2483 uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {} 2484 #endif 2485 #ifdef VK_KHR_maintenance1 vkTrimCommandPoolKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2486 void vkTrimCommandPoolKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2487 android::base::BumpPool* pool, VkDevice device, 2488 VkCommandPool commandPool, VkCommandPoolTrimFlags flags) {} 2489 #endif 2490 #ifdef VK_KHR_external_memory_capabilities vkGetPhysicalDeviceExternalBufferPropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)2491 void vkGetPhysicalDeviceExternalBufferPropertiesKHR( 2492 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2493 VkPhysicalDevice physicalDevice, 2494 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, 2495 VkExternalBufferProperties* pExternalBufferProperties) {} 2496 #endif 2497 #ifdef VK_KHR_external_memory 2498 #endif 2499 #ifdef VK_KHR_external_memory_win32 2500 #endif 2501 #ifdef VK_KHR_external_memory_fd 2502 #endif 2503 #ifdef VK_KHR_external_semaphore_capabilities vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)2504 void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( 2505 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2506 VkPhysicalDevice physicalDevice, 2507 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, 2508 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {} 2509 #endif 2510 #ifdef VK_KHR_external_semaphore 2511 #endif 2512 #ifdef VK_KHR_external_semaphore_win32 2513 #endif 2514 #ifdef VK_KHR_external_semaphore_fd vkImportSemaphoreFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)2515 void vkImportSemaphoreFdKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2516 android::base::BumpPool* pool, VkResult input_result, 2517 VkDevice device, 2518 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {} vkGetSemaphoreFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)2519 void vkGetSemaphoreFdKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2520 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 2521 const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) {} 2522 #endif 2523 #ifdef VK_KHR_shader_float16_int8 2524 #endif 2525 #ifdef VK_KHR_incremental_present 2526 #endif 2527 #ifdef VK_KHR_descriptor_update_template vkCreateDescriptorUpdateTemplateKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)2528 void vkCreateDescriptorUpdateTemplateKHR( 2529 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2530 VkResult input_result, VkDevice device, 2531 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, 2532 const VkAllocationCallbacks* pAllocator, 2533 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) { 2534 if (!pDescriptorUpdateTemplate) return; 2535 android::base::AutoLock lock(mLock); 2536 // pDescriptorUpdateTemplate create 2537 mReconstruction.addHandles((const uint64_t*)pDescriptorUpdateTemplate, 1); 2538 mReconstruction.addHandleDependency((const uint64_t*)pDescriptorUpdateTemplate, 1, 2539 (uint64_t)(uintptr_t)device); 2540 auto apiHandle = mReconstruction.createApiInfo(); 2541 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2542 mReconstruction.setApiTrace(apiInfo, OP_vkCreateDescriptorUpdateTemplateKHR, 2543 snapshotTraceBegin, snapshotTraceBytes); 2544 mReconstruction.forEachHandleAddApi((const uint64_t*)pDescriptorUpdateTemplate, 1, 2545 apiHandle, VkReconstruction::CREATED); 2546 mReconstruction.setCreatedHandlesForApi(apiHandle, 2547 (const uint64_t*)pDescriptorUpdateTemplate, 1); 2548 } vkDestroyDescriptorUpdateTemplateKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)2549 void vkDestroyDescriptorUpdateTemplateKHR(const uint8_t* snapshotTraceBegin, 2550 size_t snapshotTraceBytes, 2551 android::base::BumpPool* pool, VkDevice device, 2552 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 2553 const VkAllocationCallbacks* pAllocator) { 2554 android::base::AutoLock lock(mLock); 2555 // descriptorUpdateTemplate destroy 2556 mReconstruction.removeHandles((const uint64_t*)(&descriptorUpdateTemplate), 1, true); 2557 } vkUpdateDescriptorSetWithTemplateKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)2558 void vkUpdateDescriptorSetWithTemplateKHR(const uint8_t* snapshotTraceBegin, 2559 size_t snapshotTraceBytes, 2560 android::base::BumpPool* pool, VkDevice device, 2561 VkDescriptorSet descriptorSet, 2562 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 2563 const void* pData) {} 2564 #endif 2565 #ifdef VK_KHR_imageless_framebuffer 2566 #endif 2567 #ifdef VK_KHR_create_renderpass2 vkCreateRenderPass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)2568 void vkCreateRenderPass2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2569 android::base::BumpPool* pool, VkResult input_result, 2570 VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, 2571 const VkAllocationCallbacks* pAllocator, 2572 VkRenderPass* pRenderPass) { 2573 if (!pRenderPass) return; 2574 android::base::AutoLock lock(mLock); 2575 // pRenderPass create 2576 mReconstruction.addHandles((const uint64_t*)pRenderPass, 1); 2577 mReconstruction.addHandleDependency((const uint64_t*)pRenderPass, 1, 2578 (uint64_t)(uintptr_t)device); 2579 auto apiHandle = mReconstruction.createApiInfo(); 2580 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2581 mReconstruction.setApiTrace(apiInfo, OP_vkCreateRenderPass2KHR, snapshotTraceBegin, 2582 snapshotTraceBytes); 2583 mReconstruction.forEachHandleAddApi((const uint64_t*)pRenderPass, 1, apiHandle, 2584 VkReconstruction::CREATED); 2585 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pRenderPass, 1); 2586 } vkCmdBeginRenderPass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)2587 void vkCmdBeginRenderPass2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2588 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2589 const VkRenderPassBeginInfo* pRenderPassBegin, 2590 const VkSubpassBeginInfo* pSubpassBeginInfo) { 2591 android::base::AutoLock lock(mLock); 2592 // commandBuffer modify 2593 auto apiHandle = mReconstruction.createApiInfo(); 2594 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2595 mReconstruction.setApiTrace(apiInfo, OP_vkCmdBeginRenderPass2KHR, snapshotTraceBegin, 2596 snapshotTraceBytes); 2597 for (uint32_t i = 0; i < 1; ++i) { 2598 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2599 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2600 } 2601 } vkCmdNextSubpass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)2602 void vkCmdNextSubpass2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2603 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2604 const VkSubpassBeginInfo* pSubpassBeginInfo, 2605 const VkSubpassEndInfo* pSubpassEndInfo) { 2606 android::base::AutoLock lock(mLock); 2607 // commandBuffer modify 2608 auto apiHandle = mReconstruction.createApiInfo(); 2609 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2610 mReconstruction.setApiTrace(apiInfo, OP_vkCmdNextSubpass2KHR, snapshotTraceBegin, 2611 snapshotTraceBytes); 2612 for (uint32_t i = 0; i < 1; ++i) { 2613 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2614 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2615 } 2616 } vkCmdEndRenderPass2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)2617 void vkCmdEndRenderPass2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2618 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2619 const VkSubpassEndInfo* pSubpassEndInfo) { 2620 android::base::AutoLock lock(mLock); 2621 // commandBuffer modify 2622 auto apiHandle = mReconstruction.createApiInfo(); 2623 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2624 mReconstruction.setApiTrace(apiInfo, OP_vkCmdEndRenderPass2KHR, snapshotTraceBegin, 2625 snapshotTraceBytes); 2626 for (uint32_t i = 0; i < 1; ++i) { 2627 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2628 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2629 } 2630 } 2631 #endif 2632 #ifdef VK_KHR_external_fence_capabilities vkGetPhysicalDeviceExternalFencePropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)2633 void vkGetPhysicalDeviceExternalFencePropertiesKHR( 2634 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2635 VkPhysicalDevice physicalDevice, 2636 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, 2637 VkExternalFenceProperties* pExternalFenceProperties) {} 2638 #endif 2639 #ifdef VK_KHR_external_fence 2640 #endif 2641 #ifdef VK_KHR_external_fence_fd vkImportFenceFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)2642 void vkImportFenceFdKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2643 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 2644 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {} vkGetFenceFdKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)2645 void vkGetFenceFdKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2646 android::base::BumpPool* pool, VkResult input_result, VkDevice device, 2647 const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) {} 2648 #endif 2649 #ifdef VK_KHR_maintenance2 2650 #endif 2651 #ifdef VK_KHR_dedicated_allocation 2652 #endif 2653 #ifdef VK_KHR_storage_buffer_storage_class 2654 #endif 2655 #ifdef VK_KHR_get_memory_requirements2 vkGetImageMemoryRequirements2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2656 void vkGetImageMemoryRequirements2KHR(const uint8_t* snapshotTraceBegin, 2657 size_t snapshotTraceBytes, android::base::BumpPool* pool, 2658 VkDevice device, 2659 const VkImageMemoryRequirementsInfo2* pInfo, 2660 VkMemoryRequirements2* pMemoryRequirements) {} vkGetBufferMemoryRequirements2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2661 void vkGetBufferMemoryRequirements2KHR(const uint8_t* snapshotTraceBegin, 2662 size_t snapshotTraceBytes, android::base::BumpPool* pool, 2663 VkDevice device, 2664 const VkBufferMemoryRequirementsInfo2* pInfo, 2665 VkMemoryRequirements2* pMemoryRequirements) {} vkGetImageSparseMemoryRequirements2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2666 void vkGetImageSparseMemoryRequirements2KHR( 2667 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2668 VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, 2669 uint32_t* pSparseMemoryRequirementCount, 2670 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {} 2671 #endif 2672 #ifdef VK_KHR_image_format_list 2673 #endif 2674 #ifdef VK_KHR_sampler_ycbcr_conversion vkCreateSamplerYcbcrConversionKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)2675 void vkCreateSamplerYcbcrConversionKHR(const uint8_t* snapshotTraceBegin, 2676 size_t snapshotTraceBytes, android::base::BumpPool* pool, 2677 VkResult input_result, VkDevice device, 2678 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, 2679 const VkAllocationCallbacks* pAllocator, 2680 VkSamplerYcbcrConversion* pYcbcrConversion) { 2681 if (!pYcbcrConversion) return; 2682 android::base::AutoLock lock(mLock); 2683 // pYcbcrConversion create 2684 mReconstruction.addHandles((const uint64_t*)pYcbcrConversion, 1); 2685 mReconstruction.addHandleDependency((const uint64_t*)pYcbcrConversion, 1, 2686 (uint64_t)(uintptr_t)device); 2687 auto apiHandle = mReconstruction.createApiInfo(); 2688 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2689 mReconstruction.setApiTrace(apiInfo, OP_vkCreateSamplerYcbcrConversionKHR, 2690 snapshotTraceBegin, snapshotTraceBytes); 2691 mReconstruction.forEachHandleAddApi((const uint64_t*)pYcbcrConversion, 1, apiHandle, 2692 VkReconstruction::CREATED); 2693 mReconstruction.setCreatedHandlesForApi(apiHandle, (const uint64_t*)pYcbcrConversion, 1); 2694 } vkDestroySamplerYcbcrConversionKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)2695 void vkDestroySamplerYcbcrConversionKHR(const uint8_t* snapshotTraceBegin, 2696 size_t snapshotTraceBytes, 2697 android::base::BumpPool* pool, VkDevice device, 2698 VkSamplerYcbcrConversion ycbcrConversion, 2699 const VkAllocationCallbacks* pAllocator) { 2700 android::base::AutoLock lock(mLock); 2701 // ycbcrConversion destroy 2702 mReconstruction.removeHandles((const uint64_t*)(&ycbcrConversion), 1, true); 2703 } 2704 #endif 2705 #ifdef VK_KHR_bind_memory2 vkBindBufferMemory2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)2706 void vkBindBufferMemory2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2707 android::base::BumpPool* pool, VkResult input_result, 2708 VkDevice device, uint32_t bindInfoCount, 2709 const VkBindBufferMemoryInfo* pBindInfos) {} vkBindImageMemory2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)2710 void vkBindImageMemory2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2711 android::base::BumpPool* pool, VkResult input_result, 2712 VkDevice device, uint32_t bindInfoCount, 2713 const VkBindImageMemoryInfo* pBindInfos) {} 2714 #endif 2715 #ifdef VK_KHR_maintenance3 vkGetDescriptorSetLayoutSupportKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)2716 void vkGetDescriptorSetLayoutSupportKHR(const uint8_t* snapshotTraceBegin, 2717 size_t snapshotTraceBytes, 2718 android::base::BumpPool* pool, VkDevice device, 2719 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 2720 VkDescriptorSetLayoutSupport* pSupport) {} 2721 #endif 2722 #ifdef VK_KHR_shader_subgroup_extended_types 2723 #endif 2724 #ifdef VK_KHR_vulkan_memory_model 2725 #endif 2726 #ifdef VK_KHR_shader_terminate_invocation 2727 #endif 2728 #ifdef VK_KHR_buffer_device_address vkGetBufferDeviceAddressKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkDeviceAddress input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2729 void vkGetBufferDeviceAddressKHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2730 android::base::BumpPool* pool, VkDeviceAddress input_result, 2731 VkDevice device, const VkBufferDeviceAddressInfo* pInfo) {} vkGetBufferOpaqueCaptureAddressKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2732 void vkGetBufferOpaqueCaptureAddressKHR(const uint8_t* snapshotTraceBegin, 2733 size_t snapshotTraceBytes, 2734 android::base::BumpPool* pool, uint64_t input_result, 2735 VkDevice device, 2736 const VkBufferDeviceAddressInfo* pInfo) {} vkGetDeviceMemoryOpaqueCaptureAddressKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,uint64_t input_result,VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)2737 void vkGetDeviceMemoryOpaqueCaptureAddressKHR( 2738 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2739 uint64_t input_result, VkDevice device, 2740 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {} 2741 #endif 2742 #ifdef VK_KHR_pipeline_executable_properties vkGetPipelineExecutablePropertiesKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties)2743 void vkGetPipelineExecutablePropertiesKHR( 2744 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2745 VkResult input_result, VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, 2746 uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties) {} vkGetPipelineExecutableStatisticsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics)2747 void vkGetPipelineExecutableStatisticsKHR( 2748 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2749 VkResult input_result, VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, 2750 uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics) {} vkGetPipelineExecutableInternalRepresentationsKHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations)2751 void vkGetPipelineExecutableInternalRepresentationsKHR( 2752 const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, android::base::BumpPool* pool, 2753 VkResult input_result, VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, 2754 uint32_t* pInternalRepresentationCount, 2755 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {} 2756 #endif 2757 #ifdef VK_KHR_shader_integer_dot_product 2758 #endif 2759 #ifdef VK_KHR_shader_non_semantic_info 2760 #endif 2761 #ifdef VK_KHR_synchronization2 vkCmdSetEvent2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)2762 void vkCmdSetEvent2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2763 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2764 VkEvent event, const VkDependencyInfo* pDependencyInfo) { 2765 android::base::AutoLock lock(mLock); 2766 // commandBuffer modify 2767 auto apiHandle = mReconstruction.createApiInfo(); 2768 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2769 mReconstruction.setApiTrace(apiInfo, OP_vkCmdSetEvent2KHR, snapshotTraceBegin, 2770 snapshotTraceBytes); 2771 for (uint32_t i = 0; i < 1; ++i) { 2772 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2773 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2774 } 2775 } vkCmdResetEvent2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)2776 void vkCmdResetEvent2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2777 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2778 VkEvent event, VkPipelineStageFlags2 stageMask) { 2779 android::base::AutoLock lock(mLock); 2780 // commandBuffer modify 2781 auto apiHandle = mReconstruction.createApiInfo(); 2782 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2783 mReconstruction.setApiTrace(apiInfo, OP_vkCmdResetEvent2KHR, snapshotTraceBegin, 2784 snapshotTraceBytes); 2785 for (uint32_t i = 0; i < 1; ++i) { 2786 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2787 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2788 } 2789 } vkCmdWaitEvents2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)2790 void vkCmdWaitEvents2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2791 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2792 uint32_t eventCount, const VkEvent* pEvents, 2793 const VkDependencyInfo* pDependencyInfos) { 2794 android::base::AutoLock lock(mLock); 2795 // commandBuffer modify 2796 auto apiHandle = mReconstruction.createApiInfo(); 2797 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2798 mReconstruction.setApiTrace(apiInfo, OP_vkCmdWaitEvents2KHR, snapshotTraceBegin, 2799 snapshotTraceBytes); 2800 for (uint32_t i = 0; i < 1; ++i) { 2801 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2802 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2803 } 2804 } vkCmdPipelineBarrier2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)2805 void vkCmdPipelineBarrier2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2806 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2807 const VkDependencyInfo* pDependencyInfo) { 2808 android::base::AutoLock lock(mLock); 2809 // commandBuffer modify 2810 auto apiHandle = mReconstruction.createApiInfo(); 2811 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2812 mReconstruction.setApiTrace(apiInfo, OP_vkCmdPipelineBarrier2KHR, snapshotTraceBegin, 2813 snapshotTraceBytes); 2814 for (uint32_t i = 0; i < 1; ++i) { 2815 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2816 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2817 } 2818 } vkCmdWriteTimestamp2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)2819 void vkCmdWriteTimestamp2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2820 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2821 VkPipelineStageFlags2 stage, VkQueryPool queryPool, 2822 uint32_t query) { 2823 android::base::AutoLock lock(mLock); 2824 // commandBuffer modify 2825 auto apiHandle = mReconstruction.createApiInfo(); 2826 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2827 mReconstruction.setApiTrace(apiInfo, OP_vkCmdWriteTimestamp2KHR, snapshotTraceBegin, 2828 snapshotTraceBytes); 2829 for (uint32_t i = 0; i < 1; ++i) { 2830 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2831 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2832 } 2833 } vkQueueSubmit2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkResult input_result,VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)2834 void vkQueueSubmit2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2835 android::base::BumpPool* pool, VkResult input_result, VkQueue queue, 2836 uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence) {} vkCmdWriteBufferMarker2AMD(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)2837 void vkCmdWriteBufferMarker2AMD(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2838 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2839 VkPipelineStageFlags2 stage, VkBuffer dstBuffer, 2840 VkDeviceSize dstOffset, uint32_t marker) { 2841 android::base::AutoLock lock(mLock); 2842 // commandBuffer modify 2843 auto apiHandle = mReconstruction.createApiInfo(); 2844 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2845 mReconstruction.setApiTrace(apiInfo, OP_vkCmdWriteBufferMarker2AMD, snapshotTraceBegin, 2846 snapshotTraceBytes); 2847 for (uint32_t i = 0; i < 1; ++i) { 2848 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2849 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2850 } 2851 } vkGetQueueCheckpointData2NV(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData)2852 void vkGetQueueCheckpointData2NV(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2853 android::base::BumpPool* pool, VkQueue queue, 2854 uint32_t* pCheckpointDataCount, 2855 VkCheckpointData2NV* pCheckpointData) {} 2856 #endif 2857 #ifdef VK_KHR_zero_initialize_workgroup_memory 2858 #endif 2859 #ifdef VK_KHR_copy_commands2 vkCmdCopyBuffer2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)2860 void vkCmdCopyBuffer2KHR(const uint8_t* snapshotTraceBegin, size_t snapshotTraceBytes, 2861 android::base::BumpPool* pool, VkCommandBuffer commandBuffer, 2862 const VkCopyBufferInfo2* pCopyBufferInfo) { 2863 android::base::AutoLock lock(mLock); 2864 // commandBuffer modify 2865 auto apiHandle = mReconstruction.createApiInfo(); 2866 auto apiInfo = mReconstruction.getApiInfo(apiHandle); 2867 mReconstruction.setApiTrace(apiInfo, OP_vkCmdCopyBuffer2KHR, snapshotTraceBegin, 2868 snapshotTraceBytes); 2869 for (uint32_t i = 0; i < 1; ++i) { 2870 VkCommandBuffer boxed = unboxed_to_boxed_VkCommandBuffer((&commandBuffer)[i]); 2871 mReconstruction.forEachHandleAddModifyApi((const uint64_t*)(&boxed), 1, apiHandle); 2872 } 2873 } vkCmdCopyImage2KHR(const uint8_t * snapshotTraceBegin,size_t snapshotTraceBytes,android::base::BumpPool * pool,VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)2874