xref: /aosp_15_r20/external/mesa3d/src/gfxstream/guest/vulkan_enc/VkEncoder.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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 VkEncoder
17 //
18 // (header) generated by scripts/genvk.py -registry ../../vulkan/registry/vk.xml -registryGfxstream
19 // xml/vk_gfxstream.xml cereal -o /tmp/
20 //
21 // Please do not modify directly;
22 // re-run mesa3d/src/gfxstream/codegen/generate-gfxstream-vulkan.sh,
23 // or directly from Python by defining:
24 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
25 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
26 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
27 //
28 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
29 // $CEREAL_OUTPUT_DIR
30 //
31 #pragma once
32 #include <vulkan/vulkan.h>
33 
34 #include <memory>
35 
36 #include "goldfish_vk_private_defs.h"
37 #include "vk_android_native_buffer_gfxstream.h"
38 #include "vulkan_gfxstream.h"
39 
40 namespace gfxstream {
41 namespace guest {
42 class IOStream;
43 }  // namespace guest
44 }  // namespace gfxstream
45 
46 namespace gfxstream {
47 namespace vk {
48 
49 class VkEncoder {
50    public:
51     VkEncoder(gfxstream::guest::IOStream* stream);
52     ~VkEncoder();
53 
54 #include "VkEncoder.h.inl"
55 #ifdef VK_VERSION_1_0
56     VkResult vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo,
57                               const VkAllocationCallbacks* pAllocator, VkInstance* pInstance,
58                               uint32_t doLock);
59     void vkDestroyInstance(VkInstance instance, const VkAllocationCallbacks* pAllocator,
60                            uint32_t doLock);
61     VkResult vkEnumeratePhysicalDevices(VkInstance instance, uint32_t* pPhysicalDeviceCount,
62                                         VkPhysicalDevice* pPhysicalDevices, uint32_t doLock);
63     void vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,
64                                      VkPhysicalDeviceFeatures* pFeatures, uint32_t doLock);
65     void vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format,
66                                              VkFormatProperties* pFormatProperties,
67                                              uint32_t doLock);
68     VkResult vkGetPhysicalDeviceImageFormatProperties(
69         VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling,
70         VkImageUsageFlags usage, VkImageCreateFlags flags,
71         VkImageFormatProperties* pImageFormatProperties, uint32_t doLock);
72     void vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,
73                                        VkPhysicalDeviceProperties* pProperties, uint32_t doLock);
74     void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,
75                                                   uint32_t* pQueueFamilyPropertyCount,
76                                                   VkQueueFamilyProperties* pQueueFamilyProperties,
77                                                   uint32_t doLock);
78     void vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,
79                                              VkPhysicalDeviceMemoryProperties* pMemoryProperties,
80                                              uint32_t doLock);
81     PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance instance, const char* pName,
82                                              uint32_t doLock);
83     PFN_vkVoidFunction vkGetDeviceProcAddr(VkDevice device, const char* pName, uint32_t doLock);
84     VkResult vkCreateDevice(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo,
85                             const VkAllocationCallbacks* pAllocator, VkDevice* pDevice,
86                             uint32_t doLock);
87     void vkDestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator, uint32_t doLock);
88     VkResult vkEnumerateInstanceExtensionProperties(const char* pLayerName,
89                                                     uint32_t* pPropertyCount,
90                                                     VkExtensionProperties* pProperties,
91                                                     uint32_t doLock);
92     VkResult vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,
93                                                   const char* pLayerName, uint32_t* pPropertyCount,
94                                                   VkExtensionProperties* pProperties,
95                                                   uint32_t doLock);
96     VkResult vkEnumerateInstanceLayerProperties(uint32_t* pPropertyCount,
97                                                 VkLayerProperties* pProperties, uint32_t doLock);
98     VkResult vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,
99                                               uint32_t* pPropertyCount,
100                                               VkLayerProperties* pProperties, uint32_t doLock);
101     void vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex,
102                           VkQueue* pQueue, uint32_t doLock);
103     VkResult vkQueueSubmit(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits,
104                            VkFence fence, uint32_t doLock);
105     VkResult vkQueueWaitIdle(VkQueue queue, uint32_t doLock);
106     VkResult vkDeviceWaitIdle(VkDevice device, uint32_t doLock);
107     VkResult vkAllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo,
108                               const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory,
109                               uint32_t doLock);
110     void vkFreeMemory(VkDevice device, VkDeviceMemory memory,
111                       const VkAllocationCallbacks* pAllocator, uint32_t doLock);
112     VkResult vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset,
113                          VkDeviceSize size, VkMemoryMapFlags flags, void** ppData, uint32_t doLock);
114     void vkUnmapMemory(VkDevice device, VkDeviceMemory memory, uint32_t doLock);
115     VkResult vkFlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount,
116                                        const VkMappedMemoryRange* pMemoryRanges, uint32_t doLock);
117     VkResult vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount,
118                                             const VkMappedMemoryRange* pMemoryRanges,
119                                             uint32_t doLock);
120     void vkGetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory,
121                                      VkDeviceSize* pCommittedMemoryInBytes, uint32_t doLock);
122     VkResult vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory,
123                                 VkDeviceSize memoryOffset, uint32_t doLock);
124     VkResult vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory,
125                                VkDeviceSize memoryOffset, uint32_t doLock);
126     void vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer,
127                                        VkMemoryRequirements* pMemoryRequirements, uint32_t doLock);
128     void vkGetImageMemoryRequirements(VkDevice device, VkImage image,
129                                       VkMemoryRequirements* pMemoryRequirements, uint32_t doLock);
130     void vkGetImageSparseMemoryRequirements(
131         VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount,
132         VkSparseImageMemoryRequirements* pSparseMemoryRequirements, uint32_t doLock);
133     void vkGetPhysicalDeviceSparseImageFormatProperties(
134         VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
135         VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling,
136         uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties, uint32_t doLock);
137     VkResult vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount,
138                                const VkBindSparseInfo* pBindInfo, VkFence fence, uint32_t doLock);
139     VkResult vkCreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo,
140                            const VkAllocationCallbacks* pAllocator, VkFence* pFence,
141                            uint32_t doLock);
142     void vkDestroyFence(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator,
143                         uint32_t doLock);
144     VkResult vkResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences,
145                            uint32_t doLock);
146     VkResult vkGetFenceStatus(VkDevice device, VkFence fence, uint32_t doLock);
147     VkResult vkWaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences,
148                              VkBool32 waitAll, uint64_t timeout, uint32_t doLock);
149     VkResult vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo,
150                                const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore,
151                                uint32_t doLock);
152     void vkDestroySemaphore(VkDevice device, VkSemaphore semaphore,
153                             const VkAllocationCallbacks* pAllocator, uint32_t doLock);
154     VkResult vkCreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo,
155                            const VkAllocationCallbacks* pAllocator, VkEvent* pEvent,
156                            uint32_t doLock);
157     void vkDestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator,
158                         uint32_t doLock);
159     VkResult vkGetEventStatus(VkDevice device, VkEvent event, uint32_t doLock);
160     VkResult vkSetEvent(VkDevice device, VkEvent event, uint32_t doLock);
161     VkResult vkResetEvent(VkDevice device, VkEvent event, uint32_t doLock);
162     VkResult vkCreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo,
163                                const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool,
164                                uint32_t doLock);
165     void vkDestroyQueryPool(VkDevice device, VkQueryPool queryPool,
166                             const VkAllocationCallbacks* pAllocator, uint32_t doLock);
167     VkResult vkGetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery,
168                                    uint32_t queryCount, size_t dataSize, void* pData,
169                                    VkDeviceSize stride, VkQueryResultFlags flags, uint32_t doLock);
170     VkResult vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo,
171                             const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer,
172                             uint32_t doLock);
173     void vkDestroyBuffer(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator,
174                          uint32_t doLock);
175     VkResult vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo,
176                                 const VkAllocationCallbacks* pAllocator, VkBufferView* pView,
177                                 uint32_t doLock);
178     void vkDestroyBufferView(VkDevice device, VkBufferView bufferView,
179                              const VkAllocationCallbacks* pAllocator, uint32_t doLock);
180     VkResult vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo,
181                            const VkAllocationCallbacks* pAllocator, VkImage* pImage,
182                            uint32_t doLock);
183     void vkDestroyImage(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator,
184                         uint32_t doLock);
185     void vkGetImageSubresourceLayout(VkDevice device, VkImage image,
186                                      const VkImageSubresource* pSubresource,
187                                      VkSubresourceLayout* pLayout, uint32_t doLock);
188     VkResult vkCreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo,
189                                const VkAllocationCallbacks* pAllocator, VkImageView* pView,
190                                uint32_t doLock);
191     void vkDestroyImageView(VkDevice device, VkImageView imageView,
192                             const VkAllocationCallbacks* pAllocator, uint32_t doLock);
193     VkResult vkCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo,
194                                   const VkAllocationCallbacks* pAllocator,
195                                   VkShaderModule* pShaderModule, uint32_t doLock);
196     void vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule,
197                                const VkAllocationCallbacks* pAllocator, uint32_t doLock);
198     VkResult vkCreatePipelineCache(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo,
199                                    const VkAllocationCallbacks* pAllocator,
200                                    VkPipelineCache* pPipelineCache, uint32_t doLock);
201     void vkDestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache,
202                                 const VkAllocationCallbacks* pAllocator, uint32_t doLock);
203     VkResult vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache,
204                                     size_t* pDataSize, void* pData, uint32_t doLock);
205     VkResult vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache,
206                                    uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches,
207                                    uint32_t doLock);
208     VkResult vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache,
209                                        uint32_t createInfoCount,
210                                        const VkGraphicsPipelineCreateInfo* pCreateInfos,
211                                        const VkAllocationCallbacks* pAllocator,
212                                        VkPipeline* pPipelines, uint32_t doLock);
213     VkResult vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache,
214                                       uint32_t createInfoCount,
215                                       const VkComputePipelineCreateInfo* pCreateInfos,
216                                       const VkAllocationCallbacks* pAllocator,
217                                       VkPipeline* pPipelines, uint32_t doLock);
218     void vkDestroyPipeline(VkDevice device, VkPipeline pipeline,
219                            const VkAllocationCallbacks* pAllocator, uint32_t doLock);
220     VkResult vkCreatePipelineLayout(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo,
221                                     const VkAllocationCallbacks* pAllocator,
222                                     VkPipelineLayout* pPipelineLayout, uint32_t doLock);
223     void vkDestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout,
224                                  const VkAllocationCallbacks* pAllocator, uint32_t doLock);
225     VkResult vkCreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo,
226                              const VkAllocationCallbacks* pAllocator, VkSampler* pSampler,
227                              uint32_t doLock);
228     void vkDestroySampler(VkDevice device, VkSampler sampler,
229                           const VkAllocationCallbacks* pAllocator, uint32_t doLock);
230     VkResult vkCreateDescriptorSetLayout(VkDevice device,
231                                          const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
232                                          const VkAllocationCallbacks* pAllocator,
233                                          VkDescriptorSetLayout* pSetLayout, uint32_t doLock);
234     void vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout,
235                                       const VkAllocationCallbacks* pAllocator, uint32_t doLock);
236     VkResult vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo,
237                                     const VkAllocationCallbacks* pAllocator,
238                                     VkDescriptorPool* pDescriptorPool, uint32_t doLock);
239     void vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool,
240                                  const VkAllocationCallbacks* pAllocator, uint32_t doLock);
241     VkResult vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool,
242                                    VkDescriptorPoolResetFlags flags, uint32_t doLock);
243     VkResult vkAllocateDescriptorSets(VkDevice device,
244                                       const VkDescriptorSetAllocateInfo* pAllocateInfo,
245                                       VkDescriptorSet* pDescriptorSets, uint32_t doLock);
246     VkResult vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool,
247                                   uint32_t descriptorSetCount,
248                                   const VkDescriptorSet* pDescriptorSets, uint32_t doLock);
249     void vkUpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount,
250                                 const VkWriteDescriptorSet* pDescriptorWrites,
251                                 uint32_t descriptorCopyCount,
252                                 const VkCopyDescriptorSet* pDescriptorCopies, uint32_t doLock);
253     VkResult vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo,
254                                  const VkAllocationCallbacks* pAllocator,
255                                  VkFramebuffer* pFramebuffer, uint32_t doLock);
256     void vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer,
257                               const VkAllocationCallbacks* pAllocator, uint32_t doLock);
258     VkResult vkCreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo,
259                                 const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass,
260                                 uint32_t doLock);
261     void vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass,
262                              const VkAllocationCallbacks* pAllocator, uint32_t doLock);
263     void vkGetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass,
264                                     VkExtent2D* pGranularity, uint32_t doLock);
265     VkResult vkCreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo,
266                                  const VkAllocationCallbacks* pAllocator,
267                                  VkCommandPool* pCommandPool, uint32_t doLock);
268     void vkDestroyCommandPool(VkDevice device, VkCommandPool commandPool,
269                               const VkAllocationCallbacks* pAllocator, uint32_t doLock);
270     VkResult vkResetCommandPool(VkDevice device, VkCommandPool commandPool,
271                                 VkCommandPoolResetFlags flags, uint32_t doLock);
272     VkResult vkAllocateCommandBuffers(VkDevice device,
273                                       const VkCommandBufferAllocateInfo* pAllocateInfo,
274                                       VkCommandBuffer* pCommandBuffers, uint32_t doLock);
275     void vkFreeCommandBuffers(VkDevice device, VkCommandPool commandPool,
276                               uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers,
277                               uint32_t doLock);
278     VkResult vkBeginCommandBuffer(VkCommandBuffer commandBuffer,
279                                   const VkCommandBufferBeginInfo* pBeginInfo, uint32_t doLock);
280     VkResult vkEndCommandBuffer(VkCommandBuffer commandBuffer, uint32_t doLock);
281     VkResult vkResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags,
282                                   uint32_t doLock);
283     void vkCmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint,
284                            VkPipeline pipeline, uint32_t doLock);
285     void vkCmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport,
286                           uint32_t viewportCount, const VkViewport* pViewports, uint32_t doLock);
287     void vkCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor,
288                          uint32_t scissorCount, const VkRect2D* pScissors, uint32_t doLock);
289     void vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth, uint32_t doLock);
290     void vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor,
291                            float depthBiasClamp, float depthBiasSlopeFactor, uint32_t doLock);
292     void vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const float blendConstants[4],
293                                 uint32_t doLock);
294     void vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds,
295                              float maxDepthBounds, uint32_t doLock);
296     void vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
297                                     uint32_t compareMask, uint32_t doLock);
298     void vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
299                                   uint32_t writeMask, uint32_t doLock);
300     void vkCmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
301                                   uint32_t reference, uint32_t doLock);
302     void vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,
303                                  VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout,
304                                  uint32_t firstSet, uint32_t descriptorSetCount,
305                                  const VkDescriptorSet* pDescriptorSets,
306                                  uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets,
307                                  uint32_t doLock);
308     void vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
309                               VkIndexType indexType, uint32_t doLock);
310     void vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding,
311                                 uint32_t bindingCount, const VkBuffer* pBuffers,
312                                 const VkDeviceSize* pOffsets, uint32_t doLock);
313     void vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
314                    uint32_t firstVertex, uint32_t firstInstance, uint32_t doLock);
315     void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount,
316                           uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset,
317                           uint32_t firstInstance, uint32_t doLock);
318     void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
319                            uint32_t drawCount, uint32_t stride, uint32_t doLock);
320     void vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer,
321                                   VkDeviceSize offset, uint32_t drawCount, uint32_t stride,
322                                   uint32_t doLock);
323     void vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY,
324                        uint32_t groupCountZ, uint32_t doLock);
325     void vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
326                                uint32_t doLock);
327     void vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer,
328                          uint32_t regionCount, const VkBufferCopy* pRegions, uint32_t doLock);
329     void vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage,
330                         VkImageLayout srcImageLayout, VkImage dstImage,
331                         VkImageLayout dstImageLayout, uint32_t regionCount,
332                         const VkImageCopy* pRegions, uint32_t doLock);
333     void vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage,
334                         VkImageLayout srcImageLayout, VkImage dstImage,
335                         VkImageLayout dstImageLayout, uint32_t regionCount,
336                         const VkImageBlit* pRegions, VkFilter filter, uint32_t doLock);
337     void vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage,
338                                 VkImageLayout dstImageLayout, uint32_t regionCount,
339                                 const VkBufferImageCopy* pRegions, uint32_t doLock);
340     void vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage,
341                                 VkImageLayout srcImageLayout, VkBuffer dstBuffer,
342                                 uint32_t regionCount, const VkBufferImageCopy* pRegions,
343                                 uint32_t doLock);
344     void vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer,
345                            VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData,
346                            uint32_t doLock);
347     void vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset,
348                          VkDeviceSize size, uint32_t data, uint32_t doLock);
349     void vkCmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image,
350                               VkImageLayout imageLayout, const VkClearColorValue* pColor,
351                               uint32_t rangeCount, const VkImageSubresourceRange* pRanges,
352                               uint32_t doLock);
353     void vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image,
354                                      VkImageLayout imageLayout,
355                                      const VkClearDepthStencilValue* pDepthStencil,
356                                      uint32_t rangeCount, const VkImageSubresourceRange* pRanges,
357                                      uint32_t doLock);
358     void vkCmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount,
359                                const VkClearAttachment* pAttachments, uint32_t rectCount,
360                                const VkClearRect* pRects, uint32_t doLock);
361     void vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage,
362                            VkImageLayout srcImageLayout, VkImage dstImage,
363                            VkImageLayout dstImageLayout, uint32_t regionCount,
364                            const VkImageResolve* pRegions, uint32_t doLock);
365     void vkCmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask,
366                        uint32_t doLock);
367     void vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event,
368                          VkPipelineStageFlags stageMask, uint32_t doLock);
369     void vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents,
370                          VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask,
371                          uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
372                          uint32_t bufferMemoryBarrierCount,
373                          const VkBufferMemoryBarrier* pBufferMemoryBarriers,
374                          uint32_t imageMemoryBarrierCount,
375                          const VkImageMemoryBarrier* pImageMemoryBarriers, uint32_t doLock);
376     void vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask,
377                               VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags,
378                               uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
379                               uint32_t bufferMemoryBarrierCount,
380                               const VkBufferMemoryBarrier* pBufferMemoryBarriers,
381                               uint32_t imageMemoryBarrierCount,
382                               const VkImageMemoryBarrier* pImageMemoryBarriers, uint32_t doLock);
383     void vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query,
384                          VkQueryControlFlags flags, uint32_t doLock);
385     void vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query,
386                        uint32_t doLock);
387     void vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
388                              uint32_t firstQuery, uint32_t queryCount, uint32_t doLock);
389     void vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage,
390                              VkQueryPool queryPool, uint32_t query, uint32_t doLock);
391     void vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
392                                    uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer,
393                                    VkDeviceSize dstOffset, VkDeviceSize stride,
394                                    VkQueryResultFlags flags, uint32_t doLock);
395     void vkCmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout,
396                             VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size,
397                             const void* pValues, uint32_t doLock);
398     void vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,
399                               const VkRenderPassBeginInfo* pRenderPassBegin,
400                               VkSubpassContents contents, uint32_t doLock);
401     void vkCmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents,
402                           uint32_t doLock);
403     void vkCmdEndRenderPass(VkCommandBuffer commandBuffer, uint32_t doLock);
404     void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount,
405                               const VkCommandBuffer* pCommandBuffers, uint32_t doLock);
406 #endif
407 #ifdef VK_VERSION_1_1
408     VkResult vkEnumerateInstanceVersion(uint32_t* pApiVersion, uint32_t doLock);
409     VkResult vkBindBufferMemory2(VkDevice device, uint32_t bindInfoCount,
410                                  const VkBindBufferMemoryInfo* pBindInfos, uint32_t doLock);
411     VkResult vkBindImageMemory2(VkDevice device, uint32_t bindInfoCount,
412                                 const VkBindImageMemoryInfo* pBindInfos, uint32_t doLock);
413     void vkGetDeviceGroupPeerMemoryFeatures(VkDevice device, uint32_t heapIndex,
414                                             uint32_t localDeviceIndex, uint32_t remoteDeviceIndex,
415                                             VkPeerMemoryFeatureFlags* pPeerMemoryFeatures,
416                                             uint32_t doLock);
417     void vkCmdSetDeviceMask(VkCommandBuffer commandBuffer, uint32_t deviceMask, uint32_t doLock);
418     void vkCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
419                            uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
420                            uint32_t groupCountZ, uint32_t doLock);
421     VkResult vkEnumeratePhysicalDeviceGroups(
422         VkInstance instance, uint32_t* pPhysicalDeviceGroupCount,
423         VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, uint32_t doLock);
424     void vkGetImageMemoryRequirements2(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo,
425                                        VkMemoryRequirements2* pMemoryRequirements, uint32_t doLock);
426     void vkGetBufferMemoryRequirements2(VkDevice device,
427                                         const VkBufferMemoryRequirementsInfo2* pInfo,
428                                         VkMemoryRequirements2* pMemoryRequirements,
429                                         uint32_t doLock);
430     void vkGetImageSparseMemoryRequirements2(
431         VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
432         uint32_t* pSparseMemoryRequirementCount,
433         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements, uint32_t doLock);
434     void vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
435                                       VkPhysicalDeviceFeatures2* pFeatures, uint32_t doLock);
436     void vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
437                                         VkPhysicalDeviceProperties2* pProperties, uint32_t doLock);
438     void vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice, VkFormat format,
439                                               VkFormatProperties2* pFormatProperties,
440                                               uint32_t doLock);
441     VkResult vkGetPhysicalDeviceImageFormatProperties2(
442         VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
443         VkImageFormatProperties2* pImageFormatProperties, uint32_t doLock);
444     void vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,
445                                                    uint32_t* pQueueFamilyPropertyCount,
446                                                    VkQueueFamilyProperties2* pQueueFamilyProperties,
447                                                    uint32_t doLock);
448     void vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,
449                                               VkPhysicalDeviceMemoryProperties2* pMemoryProperties,
450                                               uint32_t doLock);
451     void vkGetPhysicalDeviceSparseImageFormatProperties2(
452         VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
453         uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties, uint32_t doLock);
454     void vkTrimCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags,
455                            uint32_t doLock);
456     void vkGetDeviceQueue2(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue,
457                            uint32_t doLock);
458     VkResult vkCreateSamplerYcbcrConversion(VkDevice device,
459                                             const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
460                                             const VkAllocationCallbacks* pAllocator,
461                                             VkSamplerYcbcrConversion* pYcbcrConversion,
462                                             uint32_t doLock);
463     void vkDestroySamplerYcbcrConversion(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion,
464                                          const VkAllocationCallbacks* pAllocator, uint32_t doLock);
465     VkResult vkCreateDescriptorUpdateTemplate(
466         VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
467         const VkAllocationCallbacks* pAllocator,
468         VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate, uint32_t doLock);
469     void vkDestroyDescriptorUpdateTemplate(VkDevice device,
470                                            VkDescriptorUpdateTemplate descriptorUpdateTemplate,
471                                            const VkAllocationCallbacks* pAllocator,
472                                            uint32_t doLock);
473     void vkUpdateDescriptorSetWithTemplate(VkDevice device, VkDescriptorSet descriptorSet,
474                                            VkDescriptorUpdateTemplate descriptorUpdateTemplate,
475                                            const void* pData, uint32_t doLock);
476     void vkGetPhysicalDeviceExternalBufferProperties(
477         VkPhysicalDevice physicalDevice,
478         const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
479         VkExternalBufferProperties* pExternalBufferProperties, uint32_t doLock);
480     void vkGetPhysicalDeviceExternalFenceProperties(
481         VkPhysicalDevice physicalDevice,
482         const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
483         VkExternalFenceProperties* pExternalFenceProperties, uint32_t doLock);
484     void vkGetPhysicalDeviceExternalSemaphoreProperties(
485         VkPhysicalDevice physicalDevice,
486         const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
487         VkExternalSemaphoreProperties* pExternalSemaphoreProperties, uint32_t doLock);
488     void vkGetDescriptorSetLayoutSupport(VkDevice device,
489                                          const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
490                                          VkDescriptorSetLayoutSupport* pSupport, uint32_t doLock);
491 #endif
492 #ifdef VK_VERSION_1_2
493     void vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
494                                 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
495                                 uint32_t maxDrawCount, uint32_t stride, uint32_t doLock);
496     void vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer,
497                                        VkDeviceSize offset, VkBuffer countBuffer,
498                                        VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
499                                        uint32_t stride, uint32_t doLock);
500     VkResult vkCreateRenderPass2(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo,
501                                  const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass,
502                                  uint32_t doLock);
503     void vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,
504                                const VkRenderPassBeginInfo* pRenderPassBegin,
505                                const VkSubpassBeginInfo* pSubpassBeginInfo, uint32_t doLock);
506     void vkCmdNextSubpass2(VkCommandBuffer commandBuffer,
507                            const VkSubpassBeginInfo* pSubpassBeginInfo,
508                            const VkSubpassEndInfo* pSubpassEndInfo, uint32_t doLock);
509     void vkCmdEndRenderPass2(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo,
510                              uint32_t doLock);
511     void vkResetQueryPool(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery,
512                           uint32_t queryCount, uint32_t doLock);
513     VkResult vkGetSemaphoreCounterValue(VkDevice device, VkSemaphore semaphore, uint64_t* pValue,
514                                         uint32_t doLock);
515     VkResult vkWaitSemaphores(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo,
516                               uint64_t timeout, uint32_t doLock);
517     VkResult vkSignalSemaphore(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo,
518                                uint32_t doLock);
519     VkDeviceAddress vkGetBufferDeviceAddress(VkDevice device,
520                                              const VkBufferDeviceAddressInfo* pInfo,
521                                              uint32_t doLock);
522     uint64_t vkGetBufferOpaqueCaptureAddress(VkDevice device,
523                                              const VkBufferDeviceAddressInfo* pInfo,
524                                              uint32_t doLock);
525     uint64_t vkGetDeviceMemoryOpaqueCaptureAddress(
526         VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo, uint32_t doLock);
527 #endif
528 #ifdef VK_VERSION_1_3
529     VkResult vkGetPhysicalDeviceToolProperties(VkPhysicalDevice physicalDevice,
530                                                uint32_t* pToolCount,
531                                                VkPhysicalDeviceToolProperties* pToolProperties,
532                                                uint32_t doLock);
533     VkResult vkCreatePrivateDataSlot(VkDevice device,
534                                      const VkPrivateDataSlotCreateInfo* pCreateInfo,
535                                      const VkAllocationCallbacks* pAllocator,
536                                      VkPrivateDataSlot* pPrivateDataSlot, uint32_t doLock);
537     void vkDestroyPrivateDataSlot(VkDevice device, VkPrivateDataSlot privateDataSlot,
538                                   const VkAllocationCallbacks* pAllocator, uint32_t doLock);
539     VkResult vkSetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle,
540                               VkPrivateDataSlot privateDataSlot, uint64_t data, uint32_t doLock);
541     void vkGetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle,
542                           VkPrivateDataSlot privateDataSlot, uint64_t* pData, uint32_t doLock);
543     void vkCmdSetEvent2(VkCommandBuffer commandBuffer, VkEvent event,
544                         const VkDependencyInfo* pDependencyInfo, uint32_t doLock);
545     void vkCmdResetEvent2(VkCommandBuffer commandBuffer, VkEvent event,
546                           VkPipelineStageFlags2 stageMask, uint32_t doLock);
547     void vkCmdWaitEvents2(VkCommandBuffer commandBuffer, uint32_t eventCount,
548                           const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos,
549                           uint32_t doLock);
550     void vkCmdPipelineBarrier2(VkCommandBuffer commandBuffer,
551                                const VkDependencyInfo* pDependencyInfo, uint32_t doLock);
552     void vkCmdWriteTimestamp2(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage,
553                               VkQueryPool queryPool, uint32_t query, uint32_t doLock);
554     VkResult vkQueueSubmit2(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits,
555                             VkFence fence, uint32_t doLock);
556     void vkCmdCopyBuffer2(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo,
557                           uint32_t doLock);
558     void vkCmdCopyImage2(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo,
559                          uint32_t doLock);
560     void vkCmdCopyBufferToImage2(VkCommandBuffer commandBuffer,
561                                  const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo,
562                                  uint32_t doLock);
563     void vkCmdCopyImageToBuffer2(VkCommandBuffer commandBuffer,
564                                  const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo,
565                                  uint32_t doLock);
566     void vkCmdBlitImage2(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo,
567                          uint32_t doLock);
568     void vkCmdResolveImage2(VkCommandBuffer commandBuffer,
569                             const VkResolveImageInfo2* pResolveImageInfo, uint32_t doLock);
570     void vkCmdBeginRendering(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo,
571                              uint32_t doLock);
572     void vkCmdEndRendering(VkCommandBuffer commandBuffer, uint32_t doLock);
573     void vkCmdSetCullMode(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode, uint32_t doLock);
574     void vkCmdSetFrontFace(VkCommandBuffer commandBuffer, VkFrontFace frontFace, uint32_t doLock);
575     void vkCmdSetPrimitiveTopology(VkCommandBuffer commandBuffer,
576                                    VkPrimitiveTopology primitiveTopology, uint32_t doLock);
577     void vkCmdSetViewportWithCount(VkCommandBuffer commandBuffer, uint32_t viewportCount,
578                                    const VkViewport* pViewports, uint32_t doLock);
579     void vkCmdSetScissorWithCount(VkCommandBuffer commandBuffer, uint32_t scissorCount,
580                                   const VkRect2D* pScissors, uint32_t doLock);
581     void vkCmdBindVertexBuffers2(VkCommandBuffer commandBuffer, uint32_t firstBinding,
582                                  uint32_t bindingCount, const VkBuffer* pBuffers,
583                                  const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes,
584                                  const VkDeviceSize* pStrides, uint32_t doLock);
585     void vkCmdSetDepthTestEnable(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable,
586                                  uint32_t doLock);
587     void vkCmdSetDepthWriteEnable(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable,
588                                   uint32_t doLock);
589     void vkCmdSetDepthCompareOp(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp,
590                                 uint32_t doLock);
591     void vkCmdSetDepthBoundsTestEnable(VkCommandBuffer commandBuffer,
592                                        VkBool32 depthBoundsTestEnable, uint32_t doLock);
593     void vkCmdSetStencilTestEnable(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable,
594                                    uint32_t doLock);
595     void vkCmdSetStencilOp(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
596                            VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp,
597                            VkCompareOp compareOp, uint32_t doLock);
598     void vkCmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer,
599                                          VkBool32 rasterizerDiscardEnable, uint32_t doLock);
600     void vkCmdSetDepthBiasEnable(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable,
601                                  uint32_t doLock);
602     void vkCmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer,
603                                         VkBool32 primitiveRestartEnable, uint32_t doLock);
604     void vkGetDeviceBufferMemoryRequirements(VkDevice device,
605                                              const VkDeviceBufferMemoryRequirements* pInfo,
606                                              VkMemoryRequirements2* pMemoryRequirements,
607                                              uint32_t doLock);
608     void vkGetDeviceImageMemoryRequirements(VkDevice device,
609                                             const VkDeviceImageMemoryRequirements* pInfo,
610                                             VkMemoryRequirements2* pMemoryRequirements,
611                                             uint32_t doLock);
612     void vkGetDeviceImageSparseMemoryRequirements(
613         VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
614         uint32_t* pSparseMemoryRequirementCount,
615         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements, uint32_t doLock);
616 #endif
617 #ifdef VK_KHR_dynamic_rendering
618     void vkCmdBeginRenderingKHR(VkCommandBuffer commandBuffer,
619                                 const VkRenderingInfo* pRenderingInfo, uint32_t doLock);
620     void vkCmdEndRenderingKHR(VkCommandBuffer commandBuffer, uint32_t doLock);
621 #endif
622 #ifdef VK_KHR_get_physical_device_properties2
623     void vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,
624                                          VkPhysicalDeviceFeatures2* pFeatures, uint32_t doLock);
625     void vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,
626                                            VkPhysicalDeviceProperties2* pProperties,
627                                            uint32_t doLock);
628     void vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format,
629                                                  VkFormatProperties2* pFormatProperties,
630                                                  uint32_t doLock);
631     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
632         VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
633         VkImageFormatProperties2* pImageFormatProperties, uint32_t doLock);
634     void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
635         VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
636         VkQueueFamilyProperties2* pQueueFamilyProperties, uint32_t doLock);
637     void vkGetPhysicalDeviceMemoryProperties2KHR(
638         VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties,
639         uint32_t doLock);
640     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
641         VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
642         uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties, uint32_t doLock);
643 #endif
644 #ifdef VK_KHR_maintenance1
645     void vkTrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool,
646                               VkCommandPoolTrimFlags flags, uint32_t doLock);
647 #endif
648 #ifdef VK_KHR_external_memory_capabilities
649     void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
650         VkPhysicalDevice physicalDevice,
651         const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
652         VkExternalBufferProperties* pExternalBufferProperties, uint32_t doLock);
653 #endif
654 #ifdef VK_KHR_external_semaphore_capabilities
655     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
656         VkPhysicalDevice physicalDevice,
657         const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
658         VkExternalSemaphoreProperties* pExternalSemaphoreProperties, uint32_t doLock);
659 #endif
660 #ifdef VK_KHR_external_semaphore_fd
661     VkResult vkImportSemaphoreFdKHR(VkDevice device,
662                                     const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo,
663                                     uint32_t doLock);
664     VkResult vkGetSemaphoreFdKHR(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
665                                  int* pFd, uint32_t doLock);
666 #endif
667 #ifdef VK_KHR_descriptor_update_template
668     VkResult vkCreateDescriptorUpdateTemplateKHR(
669         VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
670         const VkAllocationCallbacks* pAllocator,
671         VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate, uint32_t doLock);
672     void vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,
673                                               VkDescriptorUpdateTemplate descriptorUpdateTemplate,
674                                               const VkAllocationCallbacks* pAllocator,
675                                               uint32_t doLock);
676     void vkUpdateDescriptorSetWithTemplateKHR(VkDevice device, VkDescriptorSet descriptorSet,
677                                               VkDescriptorUpdateTemplate descriptorUpdateTemplate,
678                                               const void* pData, uint32_t doLock);
679 #endif
680 #ifdef VK_KHR_create_renderpass2
681     VkResult vkCreateRenderPass2KHR(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo,
682                                     const VkAllocationCallbacks* pAllocator,
683                                     VkRenderPass* pRenderPass, uint32_t doLock);
684     void vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,
685                                   const VkRenderPassBeginInfo* pRenderPassBegin,
686                                   const VkSubpassBeginInfo* pSubpassBeginInfo, uint32_t doLock);
687     void vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,
688                               const VkSubpassBeginInfo* pSubpassBeginInfo,
689                               const VkSubpassEndInfo* pSubpassEndInfo, uint32_t doLock);
690     void vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,
691                                 const VkSubpassEndInfo* pSubpassEndInfo, uint32_t doLock);
692 #endif
693 #ifdef VK_KHR_external_fence_capabilities
694     void vkGetPhysicalDeviceExternalFencePropertiesKHR(
695         VkPhysicalDevice physicalDevice,
696         const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
697         VkExternalFenceProperties* pExternalFenceProperties, uint32_t doLock);
698 #endif
699 #ifdef VK_KHR_external_fence_fd
700     VkResult vkImportFenceFdKHR(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo,
701                                 uint32_t doLock);
702     VkResult vkGetFenceFdKHR(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd,
703                              uint32_t doLock);
704 #endif
705 #ifdef VK_KHR_get_memory_requirements2
706     void vkGetImageMemoryRequirements2KHR(VkDevice device,
707                                           const VkImageMemoryRequirementsInfo2* pInfo,
708                                           VkMemoryRequirements2* pMemoryRequirements,
709                                           uint32_t doLock);
710     void vkGetBufferMemoryRequirements2KHR(VkDevice device,
711                                            const VkBufferMemoryRequirementsInfo2* pInfo,
712                                            VkMemoryRequirements2* pMemoryRequirements,
713                                            uint32_t doLock);
714     void vkGetImageSparseMemoryRequirements2KHR(
715         VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
716         uint32_t* pSparseMemoryRequirementCount,
717         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements, uint32_t doLock);
718 #endif
719 #ifdef VK_KHR_sampler_ycbcr_conversion
720     VkResult vkCreateSamplerYcbcrConversionKHR(
721         VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
722         const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion,
723         uint32_t doLock);
724     void vkDestroySamplerYcbcrConversionKHR(VkDevice device,
725                                             VkSamplerYcbcrConversion ycbcrConversion,
726                                             const VkAllocationCallbacks* pAllocator,
727                                             uint32_t doLock);
728 #endif
729 #ifdef VK_KHR_bind_memory2
730     VkResult vkBindBufferMemory2KHR(VkDevice device, uint32_t bindInfoCount,
731                                     const VkBindBufferMemoryInfo* pBindInfos, uint32_t doLock);
732     VkResult vkBindImageMemory2KHR(VkDevice device, uint32_t bindInfoCount,
733                                    const VkBindImageMemoryInfo* pBindInfos, uint32_t doLock);
734 #endif
735 #ifdef VK_KHR_maintenance3
736     void vkGetDescriptorSetLayoutSupportKHR(VkDevice device,
737                                             const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
738                                             VkDescriptorSetLayoutSupport* pSupport,
739                                             uint32_t doLock);
740 #endif
741 #ifdef VK_KHR_buffer_device_address
742     VkDeviceAddress vkGetBufferDeviceAddressKHR(VkDevice device,
743                                                 const VkBufferDeviceAddressInfo* pInfo,
744                                                 uint32_t doLock);
745     uint64_t vkGetBufferOpaqueCaptureAddressKHR(VkDevice device,
746                                                 const VkBufferDeviceAddressInfo* pInfo,
747                                                 uint32_t doLock);
748     uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR(
749         VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo, uint32_t doLock);
750 #endif
751 #ifdef VK_KHR_pipeline_executable_properties
752     VkResult vkGetPipelineExecutablePropertiesKHR(VkDevice device,
753                                                   const VkPipelineInfoKHR* pPipelineInfo,
754                                                   uint32_t* pExecutableCount,
755                                                   VkPipelineExecutablePropertiesKHR* pProperties,
756                                                   uint32_t doLock);
757     VkResult vkGetPipelineExecutableStatisticsKHR(
758         VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo,
759         uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics, uint32_t doLock);
760     VkResult vkGetPipelineExecutableInternalRepresentationsKHR(
761         VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo,
762         uint32_t* pInternalRepresentationCount,
763         VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations, uint32_t doLock);
764 #endif
765 #ifdef VK_KHR_synchronization2
766     void vkCmdSetEvent2KHR(VkCommandBuffer commandBuffer, VkEvent event,
767                            const VkDependencyInfo* pDependencyInfo, uint32_t doLock);
768     void vkCmdResetEvent2KHR(VkCommandBuffer commandBuffer, VkEvent event,
769                              VkPipelineStageFlags2 stageMask, uint32_t doLock);
770     void vkCmdWaitEvents2KHR(VkCommandBuffer commandBuffer, uint32_t eventCount,
771                              const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos,
772                              uint32_t doLock);
773     void vkCmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,
774                                   const VkDependencyInfo* pDependencyInfo, uint32_t doLock);
775     void vkCmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage,
776                                  VkQueryPool queryPool, uint32_t query, uint32_t doLock);
777     VkResult vkQueueSubmit2KHR(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits,
778                                VkFence fence, uint32_t doLock);
779     void vkCmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage,
780                                     VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker,
781                                     uint32_t doLock);
782     void vkGetQueueCheckpointData2NV(VkQueue queue, uint32_t* pCheckpointDataCount,
783                                      VkCheckpointData2NV* pCheckpointData, uint32_t doLock);
784 #endif
785 #ifdef VK_KHR_copy_commands2
786     void vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,
787                              const VkCopyBufferInfo2* pCopyBufferInfo, uint32_t doLock);
788     void vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo,
789                             uint32_t doLock);
790     void vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,
791                                     const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo,
792                                     uint32_t doLock);
793     void vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,
794                                     const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo,
795                                     uint32_t doLock);
796     void vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo,
797                             uint32_t doLock);
798     void vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer,
799                                const VkResolveImageInfo2* pResolveImageInfo, uint32_t doLock);
800 #endif
801 #ifdef VK_KHR_maintenance4
802     void vkGetDeviceBufferMemoryRequirementsKHR(VkDevice device,
803                                                 const VkDeviceBufferMemoryRequirements* pInfo,
804                                                 VkMemoryRequirements2* pMemoryRequirements,
805                                                 uint32_t doLock);
806     void vkGetDeviceImageMemoryRequirementsKHR(VkDevice device,
807                                                const VkDeviceImageMemoryRequirements* pInfo,
808                                                VkMemoryRequirements2* pMemoryRequirements,
809                                                uint32_t doLock);
810     void vkGetDeviceImageSparseMemoryRequirementsKHR(
811         VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
812         uint32_t* pSparseMemoryRequirementCount,
813         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements, uint32_t doLock);
814 #endif
815 #ifdef VK_KHR_maintenance5
816     void vkCmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer, VkBuffer buffer,
817                                   VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType,
818                                   uint32_t doLock);
819     void vkGetRenderingAreaGranularityKHR(VkDevice device,
820                                           const VkRenderingAreaInfoKHR* pRenderingAreaInfo,
821                                           VkExtent2D* pGranularity, uint32_t doLock);
822     void vkGetDeviceImageSubresourceLayoutKHR(VkDevice device,
823                                               const VkDeviceImageSubresourceInfoKHR* pInfo,
824                                               VkSubresourceLayout2KHR* pLayout, uint32_t doLock);
825     void vkGetImageSubresourceLayout2KHR(VkDevice device, VkImage image,
826                                          const VkImageSubresource2KHR* pSubresource,
827                                          VkSubresourceLayout2KHR* pLayout, uint32_t doLock);
828 #endif
829 #ifdef VK_KHR_line_rasterization
830     void vkCmdSetLineStippleKHR(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor,
831                                 uint16_t lineStipplePattern, uint32_t doLock);
832 #endif
833 #ifdef VK_ANDROID_native_buffer
834     VkResult vkGetSwapchainGrallocUsageANDROID(VkDevice device, VkFormat format,
835                                                VkImageUsageFlags imageUsage, int* grallocUsage,
836                                                uint32_t doLock);
837     VkResult vkAcquireImageANDROID(VkDevice device, VkImage image, int nativeFenceFd,
838                                    VkSemaphore semaphore, VkFence fence, uint32_t doLock);
839     VkResult vkQueueSignalReleaseImageANDROID(VkQueue queue, uint32_t waitSemaphoreCount,
840                                               const VkSemaphore* pWaitSemaphores, VkImage image,
841                                               int* pNativeFenceFd, uint32_t doLock);
842     VkResult vkGetSwapchainGrallocUsage2ANDROID(
843         VkDevice device, VkFormat format, VkImageUsageFlags imageUsage,
844         VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, uint64_t* grallocConsumerUsage,
845         uint64_t* grallocProducerUsage, uint32_t doLock);
846 #endif
847 #ifdef VK_EXT_transform_feedback
848     void vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer, uint32_t firstBinding,
849                                               uint32_t bindingCount, const VkBuffer* pBuffers,
850                                               const VkDeviceSize* pOffsets,
851                                               const VkDeviceSize* pSizes, uint32_t doLock);
852     void vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer,
853                                         uint32_t counterBufferCount,
854                                         const VkBuffer* pCounterBuffers,
855                                         const VkDeviceSize* pCounterBufferOffsets, uint32_t doLock);
856     void vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer,
857                                       uint32_t counterBufferCount, const VkBuffer* pCounterBuffers,
858                                       const VkDeviceSize* pCounterBufferOffsets, uint32_t doLock);
859     void vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
860                                    uint32_t query, VkQueryControlFlags flags, uint32_t index,
861                                    uint32_t doLock);
862     void vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
863                                  uint32_t query, uint32_t index, uint32_t doLock);
864     void vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
865                                        uint32_t firstInstance, VkBuffer counterBuffer,
866                                        VkDeviceSize counterBufferOffset, uint32_t counterOffset,
867                                        uint32_t vertexStride, uint32_t doLock);
868 #endif
869 #ifdef VK_EXT_image_drm_format_modifier
870     VkResult vkGetImageDrmFormatModifierPropertiesEXT(
871         VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties,
872         uint32_t doLock);
873 #endif
874 #ifdef VK_EXT_tooling_info
875     VkResult vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,
876                                                   uint32_t* pToolCount,
877                                                   VkPhysicalDeviceToolProperties* pToolProperties,
878                                                   uint32_t doLock);
879 #endif
880 #ifdef VK_EXT_line_rasterization
881     void vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor,
882                                 uint16_t lineStipplePattern, uint32_t doLock);
883 #endif
884 #ifdef VK_EXT_extended_dynamic_state
885     void vkCmdSetCullModeEXT(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode,
886                              uint32_t doLock);
887     void vkCmdSetFrontFaceEXT(VkCommandBuffer commandBuffer, VkFrontFace frontFace,
888                               uint32_t doLock);
889     void vkCmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,
890                                       VkPrimitiveTopology primitiveTopology, uint32_t doLock);
891     void vkCmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer, uint32_t viewportCount,
892                                       const VkViewport* pViewports, uint32_t doLock);
893     void vkCmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer, uint32_t scissorCount,
894                                      const VkRect2D* pScissors, uint32_t doLock);
895     void vkCmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer, uint32_t firstBinding,
896                                     uint32_t bindingCount, const VkBuffer* pBuffers,
897                                     const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes,
898                                     const VkDeviceSize* pStrides, uint32_t doLock);
899     void vkCmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable,
900                                     uint32_t doLock);
901     void vkCmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable,
902                                      uint32_t doLock);
903     void vkCmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp,
904                                    uint32_t doLock);
905     void vkCmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,
906                                           VkBool32 depthBoundsTestEnable, uint32_t doLock);
907     void vkCmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable,
908                                       uint32_t doLock);
909     void vkCmdSetStencilOpEXT(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
910                               VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp,
911                               VkCompareOp compareOp, uint32_t doLock);
912 #endif
913 #ifdef VK_EXT_host_image_copy
914     VkResult vkCopyMemoryToImageEXT(VkDevice device,
915                                     const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo,
916                                     uint32_t doLock);
917     VkResult vkCopyImageToMemoryEXT(VkDevice device,
918                                     const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo,
919                                     uint32_t doLock);
920     VkResult vkCopyImageToImageEXT(VkDevice device,
921                                    const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo,
922                                    uint32_t doLock);
923     VkResult vkTransitionImageLayoutEXT(VkDevice device, uint32_t transitionCount,
924                                         const VkHostImageLayoutTransitionInfoEXT* pTransitions,
925                                         uint32_t doLock);
926     void vkGetImageSubresourceLayout2EXT(VkDevice device, VkImage image,
927                                          const VkImageSubresource2KHR* pSubresource,
928                                          VkSubresourceLayout2KHR* pLayout, uint32_t doLock);
929 #endif
930 #ifdef VK_EXT_private_data
931     VkResult vkCreatePrivateDataSlotEXT(VkDevice device,
932                                         const VkPrivateDataSlotCreateInfo* pCreateInfo,
933                                         const VkAllocationCallbacks* pAllocator,
934                                         VkPrivateDataSlot* pPrivateDataSlot, uint32_t doLock);
935     void vkDestroyPrivateDataSlotEXT(VkDevice device, VkPrivateDataSlot privateDataSlot,
936                                      const VkAllocationCallbacks* pAllocator, uint32_t doLock);
937     VkResult vkSetPrivateDataEXT(VkDevice device, VkObjectType objectType, uint64_t objectHandle,
938                                  VkPrivateDataSlot privateDataSlot, uint64_t data, uint32_t doLock);
939     void vkGetPrivateDataEXT(VkDevice device, VkObjectType objectType, uint64_t objectHandle,
940                              VkPrivateDataSlot privateDataSlot, uint64_t* pData, uint32_t doLock);
941 #endif
942 #ifdef VK_EXT_extended_dynamic_state2
943     void vkCmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer, uint32_t patchControlPoints,
944                                        uint32_t doLock);
945     void vkCmdSetRasterizerDiscardEnableEXT(VkCommandBuffer commandBuffer,
946                                             VkBool32 rasterizerDiscardEnable, uint32_t doLock);
947     void vkCmdSetDepthBiasEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable,
948                                     uint32_t doLock);
949     void vkCmdSetLogicOpEXT(VkCommandBuffer commandBuffer, VkLogicOp logicOp, uint32_t doLock);
950     void vkCmdSetPrimitiveRestartEnableEXT(VkCommandBuffer commandBuffer,
951                                            VkBool32 primitiveRestartEnable, uint32_t doLock);
952 #endif
953 #ifdef VK_EXT_color_write_enable
954     void vkCmdSetColorWriteEnableEXT(VkCommandBuffer commandBuffer, uint32_t attachmentCount,
955                                      const VkBool32* pColorWriteEnables, uint32_t doLock);
956 #endif
957 #ifdef VK_GOOGLE_gfxstream
958     VkResult vkMapMemoryIntoAddressSpaceGOOGLE(VkDevice device, VkDeviceMemory memory,
959                                                uint64_t* pAddress, uint32_t doLock);
960     void vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
961         VkDevice device, VkDescriptorSet descriptorSet,
962         VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
963         uint32_t bufferInfoCount, uint32_t bufferViewCount, const uint32_t* pImageInfoEntryIndices,
964         const uint32_t* pBufferInfoEntryIndices, const uint32_t* pBufferViewEntryIndices,
965         const VkDescriptorImageInfo* pImageInfos, const VkDescriptorBufferInfo* pBufferInfos,
966         const VkBufferView* pBufferViews, uint32_t doLock);
967     void vkBeginCommandBufferAsyncGOOGLE(VkCommandBuffer commandBuffer,
968                                          const VkCommandBufferBeginInfo* pBeginInfo,
969                                          uint32_t doLock);
970     void vkEndCommandBufferAsyncGOOGLE(VkCommandBuffer commandBuffer, uint32_t doLock);
971     void vkResetCommandBufferAsyncGOOGLE(VkCommandBuffer commandBuffer,
972                                          VkCommandBufferResetFlags flags, uint32_t doLock);
973     void vkCommandBufferHostSyncGOOGLE(VkCommandBuffer commandBuffer, uint32_t needHostSync,
974                                        uint32_t sequenceNumber, uint32_t doLock);
975     VkResult vkCreateImageWithRequirementsGOOGLE(VkDevice device,
976                                                  const VkImageCreateInfo* pCreateInfo,
977                                                  const VkAllocationCallbacks* pAllocator,
978                                                  VkImage* pImage,
979                                                  VkMemoryRequirements* pMemoryRequirements,
980                                                  uint32_t doLock);
981     VkResult vkCreateBufferWithRequirementsGOOGLE(VkDevice device,
982                                                   const VkBufferCreateInfo* pCreateInfo,
983                                                   const VkAllocationCallbacks* pAllocator,
984                                                   VkBuffer* pBuffer,
985                                                   VkMemoryRequirements* pMemoryRequirements,
986                                                   uint32_t doLock);
987     VkResult vkGetMemoryHostAddressInfoGOOGLE(VkDevice device, VkDeviceMemory memory,
988                                               uint64_t* pAddress, uint64_t* pSize,
989                                               uint64_t* pHostmemId, uint32_t doLock);
990     VkResult vkFreeMemorySyncGOOGLE(VkDevice device, VkDeviceMemory memory,
991                                     const VkAllocationCallbacks* pAllocator, uint32_t doLock);
992     void vkQueueHostSyncGOOGLE(VkQueue queue, uint32_t needHostSync, uint32_t sequenceNumber,
993                                uint32_t doLock);
994     void vkQueueSubmitAsyncGOOGLE(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits,
995                                   VkFence fence, uint32_t doLock);
996     void vkQueueWaitIdleAsyncGOOGLE(VkQueue queue, uint32_t doLock);
997     void vkQueueBindSparseAsyncGOOGLE(VkQueue queue, uint32_t bindInfoCount,
998                                       const VkBindSparseInfo* pBindInfo, VkFence fence,
999                                       uint32_t doLock);
1000     void vkGetLinearImageLayoutGOOGLE(VkDevice device, VkFormat format, VkDeviceSize* pOffset,
1001                                       VkDeviceSize* pRowPitchAlignment, uint32_t doLock);
1002     void vkGetLinearImageLayout2GOOGLE(VkDevice device, const VkImageCreateInfo* pCreateInfo,
1003                                        VkDeviceSize* pOffset, VkDeviceSize* pRowPitchAlignment,
1004                                        uint32_t doLock);
1005     void vkQueueFlushCommandsGOOGLE(VkQueue queue, VkCommandBuffer commandBuffer,
1006                                     VkDeviceSize dataSize, const void* pData, uint32_t doLock);
1007     void vkQueueCommitDescriptorSetUpdatesGOOGLE(
1008         VkQueue queue, uint32_t descriptorPoolCount, const VkDescriptorPool* pDescriptorPools,
1009         uint32_t descriptorSetCount, const VkDescriptorSetLayout* pSetLayouts,
1010         const uint64_t* pDescriptorSetPoolIds, const uint32_t* pDescriptorSetWhichPool,
1011         const uint32_t* pDescriptorSetPendingAllocation,
1012         const uint32_t* pDescriptorWriteStartingIndices, uint32_t pendingDescriptorWriteCount,
1013         const VkWriteDescriptorSet* pPendingDescriptorWrites, uint32_t doLock);
1014     void vkCollectDescriptorPoolIdsGOOGLE(VkDevice device, VkDescriptorPool descriptorPool,
1015                                           uint32_t* pPoolIdCount, uint64_t* pPoolIds,
1016                                           uint32_t doLock);
1017     void vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(VkQueue queue, uint32_t waitSemaphoreCount,
1018                                                      const VkSemaphore* pWaitSemaphores,
1019                                                      VkImage image, uint32_t doLock);
1020     void vkQueueFlushCommandsFromAuxMemoryGOOGLE(VkQueue queue, VkCommandBuffer commandBuffer,
1021                                                  VkDeviceMemory deviceMemory,
1022                                                  VkDeviceSize dataOffset, VkDeviceSize dataSize,
1023                                                  uint32_t doLock);
1024     VkResult vkGetBlobGOOGLE(VkDevice device, VkDeviceMemory memory, uint32_t doLock);
1025     void vkUpdateDescriptorSetWithTemplateSized2GOOGLE(
1026         VkDevice device, VkDescriptorSet descriptorSet,
1027         VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
1028         uint32_t bufferInfoCount, uint32_t bufferViewCount, uint32_t inlineUniformBlockCount,
1029         const uint32_t* pImageInfoEntryIndices, const uint32_t* pBufferInfoEntryIndices,
1030         const uint32_t* pBufferViewEntryIndices, const VkDescriptorImageInfo* pImageInfos,
1031         const VkDescriptorBufferInfo* pBufferInfos, const VkBufferView* pBufferViews,
1032         const uint8_t* pInlineUniformBlockData, uint32_t doLock);
1033     void vkQueueSubmitAsync2GOOGLE(VkQueue queue, uint32_t submitCount,
1034                                    const VkSubmitInfo2* pSubmits, VkFence fence, uint32_t doLock);
1035     VkResult vkGetSemaphoreGOOGLE(VkDevice device, VkSemaphore semaphore, uint64_t syncId,
1036                                   uint32_t doLock);
1037 #endif
1038    private:
1039     class Impl;
1040     std::unique_ptr<Impl> mImpl;
1041 };
1042 
1043 }  // namespace vk
1044 }  // namespace gfxstream
1045