• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_VERSION_1_4
618     void vkCmdSetLineStipple(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor,
619                              uint16_t lineStipplePattern, uint32_t doLock);
620     VkResult vkMapMemory2(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData,
621                           uint32_t doLock);
622     VkResult vkUnmapMemory2(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo,
623                             uint32_t doLock);
624     void vkCmdBindIndexBuffer2(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
625                                VkDeviceSize size, VkIndexType indexType, uint32_t doLock);
626     void vkGetRenderingAreaGranularity(VkDevice device,
627                                        const VkRenderingAreaInfo* pRenderingAreaInfo,
628                                        VkExtent2D* pGranularity, uint32_t doLock);
629     void vkGetDeviceImageSubresourceLayout(VkDevice device,
630                                            const VkDeviceImageSubresourceInfo* pInfo,
631                                            VkSubresourceLayout2* pLayout, uint32_t doLock);
632     void vkGetImageSubresourceLayout2(VkDevice device, VkImage image,
633                                       const VkImageSubresource2* pSubresource,
634                                       VkSubresourceLayout2* pLayout, uint32_t doLock);
635     void vkCmdPushDescriptorSet(VkCommandBuffer commandBuffer,
636                                 VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout,
637                                 uint32_t set, uint32_t descriptorWriteCount,
638                                 const VkWriteDescriptorSet* pDescriptorWrites, uint32_t doLock);
639     void vkCmdPushDescriptorSetWithTemplate(VkCommandBuffer commandBuffer,
640                                             VkDescriptorUpdateTemplate descriptorUpdateTemplate,
641                                             VkPipelineLayout layout, uint32_t set,
642                                             const void* pData, uint32_t doLock);
643     void vkCmdSetRenderingAttachmentLocations(
644         VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo,
645         uint32_t doLock);
646     void vkCmdSetRenderingInputAttachmentIndices(
647         VkCommandBuffer commandBuffer,
648         const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo, uint32_t doLock);
649     void vkCmdBindDescriptorSets2(VkCommandBuffer commandBuffer,
650                                   const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo,
651                                   uint32_t doLock);
652     void vkCmdPushConstants2(VkCommandBuffer commandBuffer,
653                              const VkPushConstantsInfo* pPushConstantsInfo, uint32_t doLock);
654     void vkCmdPushDescriptorSet2(VkCommandBuffer commandBuffer,
655                                  const VkPushDescriptorSetInfo* pPushDescriptorSetInfo,
656                                  uint32_t doLock);
657     void vkCmdPushDescriptorSetWithTemplate2(
658         VkCommandBuffer commandBuffer,
659         const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo,
660         uint32_t doLock);
661     VkResult vkCopyMemoryToImage(VkDevice device,
662                                  const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo,
663                                  uint32_t doLock);
664     VkResult vkCopyImageToMemory(VkDevice device,
665                                  const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo,
666                                  uint32_t doLock);
667     VkResult vkCopyImageToImage(VkDevice device,
668                                 const VkCopyImageToImageInfo* pCopyImageToImageInfo,
669                                 uint32_t doLock);
670     VkResult vkTransitionImageLayout(VkDevice device, uint32_t transitionCount,
671                                      const VkHostImageLayoutTransitionInfo* pTransitions,
672                                      uint32_t doLock);
673 #endif
674 #ifdef VK_KHR_dynamic_rendering
675     void vkCmdBeginRenderingKHR(VkCommandBuffer commandBuffer,
676                                 const VkRenderingInfo* pRenderingInfo, uint32_t doLock);
677     void vkCmdEndRenderingKHR(VkCommandBuffer commandBuffer, uint32_t doLock);
678 #endif
679 #ifdef VK_KHR_get_physical_device_properties2
680     void vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,
681                                          VkPhysicalDeviceFeatures2* pFeatures, uint32_t doLock);
682     void vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,
683                                            VkPhysicalDeviceProperties2* pProperties,
684                                            uint32_t doLock);
685     void vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format,
686                                                  VkFormatProperties2* pFormatProperties,
687                                                  uint32_t doLock);
688     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
689         VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
690         VkImageFormatProperties2* pImageFormatProperties, uint32_t doLock);
691     void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
692         VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
693         VkQueueFamilyProperties2* pQueueFamilyProperties, uint32_t doLock);
694     void vkGetPhysicalDeviceMemoryProperties2KHR(
695         VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties,
696         uint32_t doLock);
697     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
698         VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
699         uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties, uint32_t doLock);
700 #endif
701 #ifdef VK_KHR_maintenance1
702     void vkTrimCommandPoolKHR(VkDevice device, VkCommandPool commandPool,
703                               VkCommandPoolTrimFlags flags, uint32_t doLock);
704 #endif
705 #ifdef VK_KHR_external_memory_capabilities
706     void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
707         VkPhysicalDevice physicalDevice,
708         const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
709         VkExternalBufferProperties* pExternalBufferProperties, uint32_t doLock);
710 #endif
711 #ifdef VK_KHR_external_semaphore_capabilities
712     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
713         VkPhysicalDevice physicalDevice,
714         const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
715         VkExternalSemaphoreProperties* pExternalSemaphoreProperties, uint32_t doLock);
716 #endif
717 #ifdef VK_KHR_external_semaphore_fd
718     VkResult vkImportSemaphoreFdKHR(VkDevice device,
719                                     const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo,
720                                     uint32_t doLock);
721     VkResult vkGetSemaphoreFdKHR(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
722                                  int* pFd, uint32_t doLock);
723 #endif
724 #ifdef VK_KHR_descriptor_update_template
725     VkResult vkCreateDescriptorUpdateTemplateKHR(
726         VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
727         const VkAllocationCallbacks* pAllocator,
728         VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate, uint32_t doLock);
729     void vkDestroyDescriptorUpdateTemplateKHR(VkDevice device,
730                                               VkDescriptorUpdateTemplate descriptorUpdateTemplate,
731                                               const VkAllocationCallbacks* pAllocator,
732                                               uint32_t doLock);
733     void vkUpdateDescriptorSetWithTemplateKHR(VkDevice device, VkDescriptorSet descriptorSet,
734                                               VkDescriptorUpdateTemplate descriptorUpdateTemplate,
735                                               const void* pData, uint32_t doLock);
736 #endif
737 #ifdef VK_KHR_create_renderpass2
738     VkResult vkCreateRenderPass2KHR(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo,
739                                     const VkAllocationCallbacks* pAllocator,
740                                     VkRenderPass* pRenderPass, uint32_t doLock);
741     void vkCmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,
742                                   const VkRenderPassBeginInfo* pRenderPassBegin,
743                                   const VkSubpassBeginInfo* pSubpassBeginInfo, uint32_t doLock);
744     void vkCmdNextSubpass2KHR(VkCommandBuffer commandBuffer,
745                               const VkSubpassBeginInfo* pSubpassBeginInfo,
746                               const VkSubpassEndInfo* pSubpassEndInfo, uint32_t doLock);
747     void vkCmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,
748                                 const VkSubpassEndInfo* pSubpassEndInfo, uint32_t doLock);
749 #endif
750 #ifdef VK_KHR_external_fence_capabilities
751     void vkGetPhysicalDeviceExternalFencePropertiesKHR(
752         VkPhysicalDevice physicalDevice,
753         const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
754         VkExternalFenceProperties* pExternalFenceProperties, uint32_t doLock);
755 #endif
756 #ifdef VK_KHR_external_fence_fd
757     VkResult vkImportFenceFdKHR(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo,
758                                 uint32_t doLock);
759     VkResult vkGetFenceFdKHR(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd,
760                              uint32_t doLock);
761 #endif
762 #ifdef VK_KHR_get_memory_requirements2
763     void vkGetImageMemoryRequirements2KHR(VkDevice device,
764                                           const VkImageMemoryRequirementsInfo2* pInfo,
765                                           VkMemoryRequirements2* pMemoryRequirements,
766                                           uint32_t doLock);
767     void vkGetBufferMemoryRequirements2KHR(VkDevice device,
768                                            const VkBufferMemoryRequirementsInfo2* pInfo,
769                                            VkMemoryRequirements2* pMemoryRequirements,
770                                            uint32_t doLock);
771     void vkGetImageSparseMemoryRequirements2KHR(
772         VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
773         uint32_t* pSparseMemoryRequirementCount,
774         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements, uint32_t doLock);
775 #endif
776 #ifdef VK_KHR_sampler_ycbcr_conversion
777     VkResult vkCreateSamplerYcbcrConversionKHR(
778         VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
779         const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion,
780         uint32_t doLock);
781     void vkDestroySamplerYcbcrConversionKHR(VkDevice device,
782                                             VkSamplerYcbcrConversion ycbcrConversion,
783                                             const VkAllocationCallbacks* pAllocator,
784                                             uint32_t doLock);
785 #endif
786 #ifdef VK_KHR_bind_memory2
787     VkResult vkBindBufferMemory2KHR(VkDevice device, uint32_t bindInfoCount,
788                                     const VkBindBufferMemoryInfo* pBindInfos, uint32_t doLock);
789     VkResult vkBindImageMemory2KHR(VkDevice device, uint32_t bindInfoCount,
790                                    const VkBindImageMemoryInfo* pBindInfos, uint32_t doLock);
791 #endif
792 #ifdef VK_KHR_maintenance3
793     void vkGetDescriptorSetLayoutSupportKHR(VkDevice device,
794                                             const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
795                                             VkDescriptorSetLayoutSupport* pSupport,
796                                             uint32_t doLock);
797 #endif
798 #ifdef VK_KHR_buffer_device_address
799     VkDeviceAddress vkGetBufferDeviceAddressKHR(VkDevice device,
800                                                 const VkBufferDeviceAddressInfo* pInfo,
801                                                 uint32_t doLock);
802     uint64_t vkGetBufferOpaqueCaptureAddressKHR(VkDevice device,
803                                                 const VkBufferDeviceAddressInfo* pInfo,
804                                                 uint32_t doLock);
805     uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR(
806         VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo, uint32_t doLock);
807 #endif
808 #ifdef VK_KHR_pipeline_executable_properties
809     VkResult vkGetPipelineExecutablePropertiesKHR(VkDevice device,
810                                                   const VkPipelineInfoKHR* pPipelineInfo,
811                                                   uint32_t* pExecutableCount,
812                                                   VkPipelineExecutablePropertiesKHR* pProperties,
813                                                   uint32_t doLock);
814     VkResult vkGetPipelineExecutableStatisticsKHR(
815         VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo,
816         uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics, uint32_t doLock);
817     VkResult vkGetPipelineExecutableInternalRepresentationsKHR(
818         VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo,
819         uint32_t* pInternalRepresentationCount,
820         VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations, uint32_t doLock);
821 #endif
822 #ifdef VK_KHR_synchronization2
823     void vkCmdSetEvent2KHR(VkCommandBuffer commandBuffer, VkEvent event,
824                            const VkDependencyInfo* pDependencyInfo, uint32_t doLock);
825     void vkCmdResetEvent2KHR(VkCommandBuffer commandBuffer, VkEvent event,
826                              VkPipelineStageFlags2 stageMask, uint32_t doLock);
827     void vkCmdWaitEvents2KHR(VkCommandBuffer commandBuffer, uint32_t eventCount,
828                              const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos,
829                              uint32_t doLock);
830     void vkCmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,
831                                   const VkDependencyInfo* pDependencyInfo, uint32_t doLock);
832     void vkCmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage,
833                                  VkQueryPool queryPool, uint32_t query, uint32_t doLock);
834     VkResult vkQueueSubmit2KHR(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits,
835                                VkFence fence, uint32_t doLock);
836 #endif
837 #ifdef VK_KHR_copy_commands2
838     void vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,
839                              const VkCopyBufferInfo2* pCopyBufferInfo, uint32_t doLock);
840     void vkCmdCopyImage2KHR(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo,
841                             uint32_t doLock);
842     void vkCmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,
843                                     const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo,
844                                     uint32_t doLock);
845     void vkCmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,
846                                     const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo,
847                                     uint32_t doLock);
848     void vkCmdBlitImage2KHR(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo,
849                             uint32_t doLock);
850     void vkCmdResolveImage2KHR(VkCommandBuffer commandBuffer,
851                                const VkResolveImageInfo2* pResolveImageInfo, uint32_t doLock);
852 #endif
853 #ifdef VK_KHR_maintenance4
854     void vkGetDeviceBufferMemoryRequirementsKHR(VkDevice device,
855                                                 const VkDeviceBufferMemoryRequirements* pInfo,
856                                                 VkMemoryRequirements2* pMemoryRequirements,
857                                                 uint32_t doLock);
858     void vkGetDeviceImageMemoryRequirementsKHR(VkDevice device,
859                                                const VkDeviceImageMemoryRequirements* pInfo,
860                                                VkMemoryRequirements2* pMemoryRequirements,
861                                                uint32_t doLock);
862     void vkGetDeviceImageSparseMemoryRequirementsKHR(
863         VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
864         uint32_t* pSparseMemoryRequirementCount,
865         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements, uint32_t doLock);
866 #endif
867 #ifdef VK_KHR_maintenance5
868     void vkCmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer, VkBuffer buffer,
869                                   VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType,
870                                   uint32_t doLock);
871     void vkGetRenderingAreaGranularityKHR(VkDevice device,
872                                           const VkRenderingAreaInfo* pRenderingAreaInfo,
873                                           VkExtent2D* pGranularity, uint32_t doLock);
874     void vkGetDeviceImageSubresourceLayoutKHR(VkDevice device,
875                                               const VkDeviceImageSubresourceInfo* pInfo,
876                                               VkSubresourceLayout2* pLayout, uint32_t doLock);
877     void vkGetImageSubresourceLayout2KHR(VkDevice device, VkImage image,
878                                          const VkImageSubresource2* pSubresource,
879                                          VkSubresourceLayout2* pLayout, uint32_t doLock);
880 #endif
881 #ifdef VK_KHR_line_rasterization
882     void vkCmdSetLineStippleKHR(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor,
883                                 uint16_t lineStipplePattern, uint32_t doLock);
884 #endif
885 #ifdef VK_ANDROID_native_buffer
886     VkResult vkGetSwapchainGrallocUsageANDROID(VkDevice device, VkFormat format,
887                                                VkImageUsageFlags imageUsage, int* grallocUsage,
888                                                uint32_t doLock);
889     VkResult vkAcquireImageANDROID(VkDevice device, VkImage image, int nativeFenceFd,
890                                    VkSemaphore semaphore, VkFence fence, uint32_t doLock);
891     VkResult vkQueueSignalReleaseImageANDROID(VkQueue queue, uint32_t waitSemaphoreCount,
892                                               const VkSemaphore* pWaitSemaphores, VkImage image,
893                                               int* pNativeFenceFd, uint32_t doLock);
894     VkResult vkGetSwapchainGrallocUsage2ANDROID(
895         VkDevice device, VkFormat format, VkImageUsageFlags imageUsage,
896         VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, uint64_t* grallocConsumerUsage,
897         uint64_t* grallocProducerUsage, uint32_t doLock);
898 #endif
899 #ifdef VK_EXT_transform_feedback
900     void vkCmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer, uint32_t firstBinding,
901                                               uint32_t bindingCount, const VkBuffer* pBuffers,
902                                               const VkDeviceSize* pOffsets,
903                                               const VkDeviceSize* pSizes, uint32_t doLock);
904     void vkCmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer,
905                                         uint32_t counterBufferCount,
906                                         const VkBuffer* pCounterBuffers,
907                                         const VkDeviceSize* pCounterBufferOffsets, uint32_t doLock);
908     void vkCmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer,
909                                       uint32_t counterBufferCount, const VkBuffer* pCounterBuffers,
910                                       const VkDeviceSize* pCounterBufferOffsets, uint32_t doLock);
911     void vkCmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
912                                    uint32_t query, VkQueryControlFlags flags, uint32_t index,
913                                    uint32_t doLock);
914     void vkCmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
915                                  uint32_t query, uint32_t index, uint32_t doLock);
916     void vkCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
917                                        uint32_t firstInstance, VkBuffer counterBuffer,
918                                        VkDeviceSize counterBufferOffset, uint32_t counterOffset,
919                                        uint32_t vertexStride, uint32_t doLock);
920 #endif
921 #ifdef VK_EXT_image_drm_format_modifier
922     VkResult vkGetImageDrmFormatModifierPropertiesEXT(
923         VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties,
924         uint32_t doLock);
925 #endif
926 #ifdef VK_EXT_tooling_info
927     VkResult vkGetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice,
928                                                   uint32_t* pToolCount,
929                                                   VkPhysicalDeviceToolProperties* pToolProperties,
930                                                   uint32_t doLock);
931 #endif
932 #ifdef VK_EXT_line_rasterization
933     void vkCmdSetLineStippleEXT(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor,
934                                 uint16_t lineStipplePattern, uint32_t doLock);
935 #endif
936 #ifdef VK_EXT_extended_dynamic_state
937     void vkCmdSetCullModeEXT(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode,
938                              uint32_t doLock);
939     void vkCmdSetFrontFaceEXT(VkCommandBuffer commandBuffer, VkFrontFace frontFace,
940                               uint32_t doLock);
941     void vkCmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,
942                                       VkPrimitiveTopology primitiveTopology, uint32_t doLock);
943     void vkCmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer, uint32_t viewportCount,
944                                       const VkViewport* pViewports, uint32_t doLock);
945     void vkCmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer, uint32_t scissorCount,
946                                      const VkRect2D* pScissors, uint32_t doLock);
947     void vkCmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer, uint32_t firstBinding,
948                                     uint32_t bindingCount, const VkBuffer* pBuffers,
949                                     const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes,
950                                     const VkDeviceSize* pStrides, uint32_t doLock);
951     void vkCmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable,
952                                     uint32_t doLock);
953     void vkCmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable,
954                                      uint32_t doLock);
955     void vkCmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp,
956                                    uint32_t doLock);
957     void vkCmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,
958                                           VkBool32 depthBoundsTestEnable, uint32_t doLock);
959     void vkCmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable,
960                                       uint32_t doLock);
961     void vkCmdSetStencilOpEXT(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
962                               VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp,
963                               VkCompareOp compareOp, uint32_t doLock);
964 #endif
965 #ifdef VK_EXT_host_image_copy
966     VkResult vkCopyMemoryToImageEXT(VkDevice device,
967                                     const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo,
968                                     uint32_t doLock);
969     VkResult vkCopyImageToMemoryEXT(VkDevice device,
970                                     const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo,
971                                     uint32_t doLock);
972     VkResult vkCopyImageToImageEXT(VkDevice device,
973                                    const VkCopyImageToImageInfo* pCopyImageToImageInfo,
974                                    uint32_t doLock);
975     VkResult vkTransitionImageLayoutEXT(VkDevice device, uint32_t transitionCount,
976                                         const VkHostImageLayoutTransitionInfo* pTransitions,
977                                         uint32_t doLock);
978     void vkGetImageSubresourceLayout2EXT(VkDevice device, VkImage image,
979                                          const VkImageSubresource2* pSubresource,
980                                          VkSubresourceLayout2* pLayout, uint32_t doLock);
981 #endif
982 #ifdef VK_EXT_private_data
983     VkResult vkCreatePrivateDataSlotEXT(VkDevice device,
984                                         const VkPrivateDataSlotCreateInfo* pCreateInfo,
985                                         const VkAllocationCallbacks* pAllocator,
986                                         VkPrivateDataSlot* pPrivateDataSlot, uint32_t doLock);
987     void vkDestroyPrivateDataSlotEXT(VkDevice device, VkPrivateDataSlot privateDataSlot,
988                                      const VkAllocationCallbacks* pAllocator, uint32_t doLock);
989     VkResult vkSetPrivateDataEXT(VkDevice device, VkObjectType objectType, uint64_t objectHandle,
990                                  VkPrivateDataSlot privateDataSlot, uint64_t data, uint32_t doLock);
991     void vkGetPrivateDataEXT(VkDevice device, VkObjectType objectType, uint64_t objectHandle,
992                              VkPrivateDataSlot privateDataSlot, uint64_t* pData, uint32_t doLock);
993 #endif
994 #ifdef VK_EXT_extended_dynamic_state2
995     void vkCmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer, uint32_t patchControlPoints,
996                                        uint32_t doLock);
997     void vkCmdSetRasterizerDiscardEnableEXT(VkCommandBuffer commandBuffer,
998                                             VkBool32 rasterizerDiscardEnable, uint32_t doLock);
999     void vkCmdSetDepthBiasEnableEXT(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable,
1000                                     uint32_t doLock);
1001     void vkCmdSetLogicOpEXT(VkCommandBuffer commandBuffer, VkLogicOp logicOp, uint32_t doLock);
1002     void vkCmdSetPrimitiveRestartEnableEXT(VkCommandBuffer commandBuffer,
1003                                            VkBool32 primitiveRestartEnable, uint32_t doLock);
1004 #endif
1005 #ifdef VK_EXT_color_write_enable
1006     void vkCmdSetColorWriteEnableEXT(VkCommandBuffer commandBuffer, uint32_t attachmentCount,
1007                                      const VkBool32* pColorWriteEnables, uint32_t doLock);
1008 #endif
1009 #ifdef VK_GOOGLE_gfxstream
1010     VkResult vkMapMemoryIntoAddressSpaceGOOGLE(VkDevice device, VkDeviceMemory memory,
1011                                                uint64_t* pAddress, uint32_t doLock);
1012     void vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
1013         VkDevice device, VkDescriptorSet descriptorSet,
1014         VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
1015         uint32_t bufferInfoCount, uint32_t bufferViewCount, const uint32_t* pImageInfoEntryIndices,
1016         const uint32_t* pBufferInfoEntryIndices, const uint32_t* pBufferViewEntryIndices,
1017         const VkDescriptorImageInfo* pImageInfos, const VkDescriptorBufferInfo* pBufferInfos,
1018         const VkBufferView* pBufferViews, uint32_t doLock);
1019     void vkBeginCommandBufferAsyncGOOGLE(VkCommandBuffer commandBuffer,
1020                                          const VkCommandBufferBeginInfo* pBeginInfo,
1021                                          uint32_t doLock);
1022     void vkEndCommandBufferAsyncGOOGLE(VkCommandBuffer commandBuffer, uint32_t doLock);
1023     void vkResetCommandBufferAsyncGOOGLE(VkCommandBuffer commandBuffer,
1024                                          VkCommandBufferResetFlags flags, uint32_t doLock);
1025     void vkCommandBufferHostSyncGOOGLE(VkCommandBuffer commandBuffer, uint32_t needHostSync,
1026                                        uint32_t sequenceNumber, uint32_t doLock);
1027     VkResult vkCreateImageWithRequirementsGOOGLE(VkDevice device,
1028                                                  const VkImageCreateInfo* pCreateInfo,
1029                                                  const VkAllocationCallbacks* pAllocator,
1030                                                  VkImage* pImage,
1031                                                  VkMemoryRequirements* pMemoryRequirements,
1032                                                  uint32_t doLock);
1033     VkResult vkCreateBufferWithRequirementsGOOGLE(VkDevice device,
1034                                                   const VkBufferCreateInfo* pCreateInfo,
1035                                                   const VkAllocationCallbacks* pAllocator,
1036                                                   VkBuffer* pBuffer,
1037                                                   VkMemoryRequirements* pMemoryRequirements,
1038                                                   uint32_t doLock);
1039     VkResult vkGetMemoryHostAddressInfoGOOGLE(VkDevice device, VkDeviceMemory memory,
1040                                               uint64_t* pAddress, uint64_t* pSize,
1041                                               uint64_t* pHostmemId, uint32_t doLock);
1042     VkResult vkFreeMemorySyncGOOGLE(VkDevice device, VkDeviceMemory memory,
1043                                     const VkAllocationCallbacks* pAllocator, uint32_t doLock);
1044     void vkQueueHostSyncGOOGLE(VkQueue queue, uint32_t needHostSync, uint32_t sequenceNumber,
1045                                uint32_t doLock);
1046     void vkQueueSubmitAsyncGOOGLE(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits,
1047                                   VkFence fence, uint32_t doLock);
1048     void vkQueueWaitIdleAsyncGOOGLE(VkQueue queue, uint32_t doLock);
1049     void vkQueueBindSparseAsyncGOOGLE(VkQueue queue, uint32_t bindInfoCount,
1050                                       const VkBindSparseInfo* pBindInfo, VkFence fence,
1051                                       uint32_t doLock);
1052     void vkGetLinearImageLayoutGOOGLE(VkDevice device, VkFormat format, VkDeviceSize* pOffset,
1053                                       VkDeviceSize* pRowPitchAlignment, uint32_t doLock);
1054     void vkGetLinearImageLayout2GOOGLE(VkDevice device, const VkImageCreateInfo* pCreateInfo,
1055                                        VkDeviceSize* pOffset, VkDeviceSize* pRowPitchAlignment,
1056                                        uint32_t doLock);
1057     void vkQueueFlushCommandsGOOGLE(VkQueue queue, VkCommandBuffer commandBuffer,
1058                                     VkDeviceSize dataSize, const void* pData, uint32_t doLock);
1059     void vkQueueCommitDescriptorSetUpdatesGOOGLE(
1060         VkQueue queue, uint32_t descriptorPoolCount, const VkDescriptorPool* pDescriptorPools,
1061         uint32_t descriptorSetCount, const VkDescriptorSetLayout* pSetLayouts,
1062         const uint64_t* pDescriptorSetPoolIds, const uint32_t* pDescriptorSetWhichPool,
1063         const uint32_t* pDescriptorSetPendingAllocation,
1064         const uint32_t* pDescriptorWriteStartingIndices, uint32_t pendingDescriptorWriteCount,
1065         const VkWriteDescriptorSet* pPendingDescriptorWrites, uint32_t doLock);
1066     void vkCollectDescriptorPoolIdsGOOGLE(VkDevice device, VkDescriptorPool descriptorPool,
1067                                           uint32_t* pPoolIdCount, uint64_t* pPoolIds,
1068                                           uint32_t doLock);
1069     void vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(VkQueue queue, uint32_t waitSemaphoreCount,
1070                                                      const VkSemaphore* pWaitSemaphores,
1071                                                      VkImage image, uint32_t doLock);
1072     void vkQueueFlushCommandsFromAuxMemoryGOOGLE(VkQueue queue, VkCommandBuffer commandBuffer,
1073                                                  VkDeviceMemory deviceMemory,
1074                                                  VkDeviceSize dataOffset, VkDeviceSize dataSize,
1075                                                  uint32_t doLock);
1076     VkResult vkGetBlobGOOGLE(VkDevice device, VkDeviceMemory memory, uint32_t doLock);
1077     void vkUpdateDescriptorSetWithTemplateSized2GOOGLE(
1078         VkDevice device, VkDescriptorSet descriptorSet,
1079         VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
1080         uint32_t bufferInfoCount, uint32_t bufferViewCount, uint32_t inlineUniformBlockCount,
1081         const uint32_t* pImageInfoEntryIndices, const uint32_t* pBufferInfoEntryIndices,
1082         const uint32_t* pBufferViewEntryIndices, const VkDescriptorImageInfo* pImageInfos,
1083         const VkDescriptorBufferInfo* pBufferInfos, const VkBufferView* pBufferViews,
1084         const uint8_t* pInlineUniformBlockData, uint32_t doLock);
1085     void vkQueueSubmitAsync2GOOGLE(VkQueue queue, uint32_t submitCount,
1086                                    const VkSubmitInfo2* pSubmits, VkFence fence, uint32_t doLock);
1087     VkResult vkGetSemaphoreGOOGLE(VkDevice device, VkSemaphore semaphore, uint64_t syncId,
1088                                   uint32_t doLock);
1089 #endif
1090    private:
1091     class Impl;
1092     std::unique_ptr<Impl> mImpl;
1093 };
1094 
1095 }  // namespace vk
1096 }  // namespace gfxstream
1097