• 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 // (header) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
18 // Please do not modify directly;
19 // re-run android/scripts/generate-vulkan-sources.sh,
20 // or directly from Python by defining:
21 // VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
23 // python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24 
25 #pragma once
26 
27 #include <vulkan/vulkan.h>
28 
29 
30 #include "goldfish_vk_private_defs.h"
31 #include <memory>
32 class IOStream;
33 
34 
35 namespace goldfish_vk {
36 
37 
38 class VkEncoder {
39 public:
40     VkEncoder(IOStream* stream);
41     ~VkEncoder();
42 #ifdef VK_VERSION_1_0
43     VkResult vkCreateInstance(
44     const VkInstanceCreateInfo* pCreateInfo,
45         const VkAllocationCallbacks* pAllocator,
46         VkInstance* pInstance);
47     void vkDestroyInstance(
48     VkInstance instance,
49         const VkAllocationCallbacks* pAllocator);
50     VkResult vkEnumeratePhysicalDevices(
51     VkInstance instance,
52         uint32_t* pPhysicalDeviceCount,
53         VkPhysicalDevice* pPhysicalDevices);
54     void vkGetPhysicalDeviceFeatures(
55     VkPhysicalDevice physicalDevice,
56         VkPhysicalDeviceFeatures* pFeatures);
57     void vkGetPhysicalDeviceFormatProperties(
58     VkPhysicalDevice physicalDevice,
59         VkFormat format,
60         VkFormatProperties* pFormatProperties);
61     VkResult vkGetPhysicalDeviceImageFormatProperties(
62     VkPhysicalDevice physicalDevice,
63         VkFormat format,
64         VkImageType type,
65         VkImageTiling tiling,
66         VkImageUsageFlags usage,
67         VkImageCreateFlags flags,
68         VkImageFormatProperties* pImageFormatProperties);
69     void vkGetPhysicalDeviceProperties(
70     VkPhysicalDevice physicalDevice,
71         VkPhysicalDeviceProperties* pProperties);
72     void vkGetPhysicalDeviceQueueFamilyProperties(
73     VkPhysicalDevice physicalDevice,
74         uint32_t* pQueueFamilyPropertyCount,
75         VkQueueFamilyProperties* pQueueFamilyProperties);
76     void vkGetPhysicalDeviceMemoryProperties(
77     VkPhysicalDevice physicalDevice,
78         VkPhysicalDeviceMemoryProperties* pMemoryProperties);
79     PFN_vkVoidFunction vkGetInstanceProcAddr(
80     VkInstance instance,
81         const char* pName);
82     PFN_vkVoidFunction vkGetDeviceProcAddr(
83     VkDevice device,
84         const char* pName);
85     VkResult vkCreateDevice(
86     VkPhysicalDevice physicalDevice,
87         const VkDeviceCreateInfo* pCreateInfo,
88         const VkAllocationCallbacks* pAllocator,
89         VkDevice* pDevice);
90     void vkDestroyDevice(
91     VkDevice device,
92         const VkAllocationCallbacks* pAllocator);
93     VkResult vkEnumerateInstanceExtensionProperties(
94     const char* pLayerName,
95         uint32_t* pPropertyCount,
96         VkExtensionProperties* pProperties);
97     VkResult vkEnumerateDeviceExtensionProperties(
98     VkPhysicalDevice physicalDevice,
99         const char* pLayerName,
100         uint32_t* pPropertyCount,
101         VkExtensionProperties* pProperties);
102     VkResult vkEnumerateInstanceLayerProperties(
103     uint32_t* pPropertyCount,
104         VkLayerProperties* pProperties);
105     VkResult vkEnumerateDeviceLayerProperties(
106     VkPhysicalDevice physicalDevice,
107         uint32_t* pPropertyCount,
108         VkLayerProperties* pProperties);
109     void vkGetDeviceQueue(
110     VkDevice device,
111         uint32_t queueFamilyIndex,
112         uint32_t queueIndex,
113         VkQueue* pQueue);
114     VkResult vkQueueSubmit(
115     VkQueue queue,
116         uint32_t submitCount,
117         const VkSubmitInfo* pSubmits,
118         VkFence fence);
119     VkResult vkQueueWaitIdle(
120     VkQueue queue);
121     VkResult vkDeviceWaitIdle(
122     VkDevice device);
123     VkResult vkAllocateMemory(
124     VkDevice device,
125         const VkMemoryAllocateInfo* pAllocateInfo,
126         const VkAllocationCallbacks* pAllocator,
127         VkDeviceMemory* pMemory);
128     void vkFreeMemory(
129     VkDevice device,
130         VkDeviceMemory memory,
131         const VkAllocationCallbacks* pAllocator);
132     VkResult vkMapMemory(
133     VkDevice device,
134         VkDeviceMemory memory,
135         VkDeviceSize offset,
136         VkDeviceSize size,
137         VkMemoryMapFlags flags,
138         void** ppData);
139     void vkUnmapMemory(
140     VkDevice device,
141         VkDeviceMemory memory);
142     VkResult vkFlushMappedMemoryRanges(
143     VkDevice device,
144         uint32_t memoryRangeCount,
145         const VkMappedMemoryRange* pMemoryRanges);
146     VkResult vkInvalidateMappedMemoryRanges(
147     VkDevice device,
148         uint32_t memoryRangeCount,
149         const VkMappedMemoryRange* pMemoryRanges);
150     void vkGetDeviceMemoryCommitment(
151     VkDevice device,
152         VkDeviceMemory memory,
153         VkDeviceSize* pCommittedMemoryInBytes);
154     VkResult vkBindBufferMemory(
155     VkDevice device,
156         VkBuffer buffer,
157         VkDeviceMemory memory,
158         VkDeviceSize memoryOffset);
159     VkResult vkBindImageMemory(
160     VkDevice device,
161         VkImage image,
162         VkDeviceMemory memory,
163         VkDeviceSize memoryOffset);
164     void vkGetBufferMemoryRequirements(
165     VkDevice device,
166         VkBuffer buffer,
167         VkMemoryRequirements* pMemoryRequirements);
168     void vkGetImageMemoryRequirements(
169     VkDevice device,
170         VkImage image,
171         VkMemoryRequirements* pMemoryRequirements);
172     void vkGetImageSparseMemoryRequirements(
173     VkDevice device,
174         VkImage image,
175         uint32_t* pSparseMemoryRequirementCount,
176         VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
177     void vkGetPhysicalDeviceSparseImageFormatProperties(
178     VkPhysicalDevice physicalDevice,
179         VkFormat format,
180         VkImageType type,
181         VkSampleCountFlagBits samples,
182         VkImageUsageFlags usage,
183         VkImageTiling tiling,
184         uint32_t* pPropertyCount,
185         VkSparseImageFormatProperties* pProperties);
186     VkResult vkQueueBindSparse(
187     VkQueue queue,
188         uint32_t bindInfoCount,
189         const VkBindSparseInfo* pBindInfo,
190         VkFence fence);
191     VkResult vkCreateFence(
192     VkDevice device,
193         const VkFenceCreateInfo* pCreateInfo,
194         const VkAllocationCallbacks* pAllocator,
195         VkFence* pFence);
196     void vkDestroyFence(
197     VkDevice device,
198         VkFence fence,
199         const VkAllocationCallbacks* pAllocator);
200     VkResult vkResetFences(
201     VkDevice device,
202         uint32_t fenceCount,
203         const VkFence* pFences);
204     VkResult vkGetFenceStatus(
205     VkDevice device,
206         VkFence fence);
207     VkResult vkWaitForFences(
208     VkDevice device,
209         uint32_t fenceCount,
210         const VkFence* pFences,
211         VkBool32 waitAll,
212         uint64_t timeout);
213     VkResult vkCreateSemaphore(
214     VkDevice device,
215         const VkSemaphoreCreateInfo* pCreateInfo,
216         const VkAllocationCallbacks* pAllocator,
217         VkSemaphore* pSemaphore);
218     void vkDestroySemaphore(
219     VkDevice device,
220         VkSemaphore semaphore,
221         const VkAllocationCallbacks* pAllocator);
222     VkResult vkCreateEvent(
223     VkDevice device,
224         const VkEventCreateInfo* pCreateInfo,
225         const VkAllocationCallbacks* pAllocator,
226         VkEvent* pEvent);
227     void vkDestroyEvent(
228     VkDevice device,
229         VkEvent event,
230         const VkAllocationCallbacks* pAllocator);
231     VkResult vkGetEventStatus(
232     VkDevice device,
233         VkEvent event);
234     VkResult vkSetEvent(
235     VkDevice device,
236         VkEvent event);
237     VkResult vkResetEvent(
238     VkDevice device,
239         VkEvent event);
240     VkResult vkCreateQueryPool(
241     VkDevice device,
242         const VkQueryPoolCreateInfo* pCreateInfo,
243         const VkAllocationCallbacks* pAllocator,
244         VkQueryPool* pQueryPool);
245     void vkDestroyQueryPool(
246     VkDevice device,
247         VkQueryPool queryPool,
248         const VkAllocationCallbacks* pAllocator);
249     VkResult vkGetQueryPoolResults(
250     VkDevice device,
251         VkQueryPool queryPool,
252         uint32_t firstQuery,
253         uint32_t queryCount,
254         size_t dataSize,
255         void* pData,
256         VkDeviceSize stride,
257         VkQueryResultFlags flags);
258     VkResult vkCreateBuffer(
259     VkDevice device,
260         const VkBufferCreateInfo* pCreateInfo,
261         const VkAllocationCallbacks* pAllocator,
262         VkBuffer* pBuffer);
263     void vkDestroyBuffer(
264     VkDevice device,
265         VkBuffer buffer,
266         const VkAllocationCallbacks* pAllocator);
267     VkResult vkCreateBufferView(
268     VkDevice device,
269         const VkBufferViewCreateInfo* pCreateInfo,
270         const VkAllocationCallbacks* pAllocator,
271         VkBufferView* pView);
272     void vkDestroyBufferView(
273     VkDevice device,
274         VkBufferView bufferView,
275         const VkAllocationCallbacks* pAllocator);
276     VkResult vkCreateImage(
277     VkDevice device,
278         const VkImageCreateInfo* pCreateInfo,
279         const VkAllocationCallbacks* pAllocator,
280         VkImage* pImage);
281     void vkDestroyImage(
282     VkDevice device,
283         VkImage image,
284         const VkAllocationCallbacks* pAllocator);
285     void vkGetImageSubresourceLayout(
286     VkDevice device,
287         VkImage image,
288         const VkImageSubresource* pSubresource,
289         VkSubresourceLayout* pLayout);
290     VkResult vkCreateImageView(
291     VkDevice device,
292         const VkImageViewCreateInfo* pCreateInfo,
293         const VkAllocationCallbacks* pAllocator,
294         VkImageView* pView);
295     void vkDestroyImageView(
296     VkDevice device,
297         VkImageView imageView,
298         const VkAllocationCallbacks* pAllocator);
299     VkResult vkCreateShaderModule(
300     VkDevice device,
301         const VkShaderModuleCreateInfo* pCreateInfo,
302         const VkAllocationCallbacks* pAllocator,
303         VkShaderModule* pShaderModule);
304     void vkDestroyShaderModule(
305     VkDevice device,
306         VkShaderModule shaderModule,
307         const VkAllocationCallbacks* pAllocator);
308     VkResult vkCreatePipelineCache(
309     VkDevice device,
310         const VkPipelineCacheCreateInfo* pCreateInfo,
311         const VkAllocationCallbacks* pAllocator,
312         VkPipelineCache* pPipelineCache);
313     void vkDestroyPipelineCache(
314     VkDevice device,
315         VkPipelineCache pipelineCache,
316         const VkAllocationCallbacks* pAllocator);
317     VkResult vkGetPipelineCacheData(
318     VkDevice device,
319         VkPipelineCache pipelineCache,
320         size_t* pDataSize,
321         void* pData);
322     VkResult vkMergePipelineCaches(
323     VkDevice device,
324         VkPipelineCache dstCache,
325         uint32_t srcCacheCount,
326         const VkPipelineCache* pSrcCaches);
327     VkResult vkCreateGraphicsPipelines(
328     VkDevice device,
329         VkPipelineCache pipelineCache,
330         uint32_t createInfoCount,
331         const VkGraphicsPipelineCreateInfo* pCreateInfos,
332         const VkAllocationCallbacks* pAllocator,
333         VkPipeline* pPipelines);
334     VkResult vkCreateComputePipelines(
335     VkDevice device,
336         VkPipelineCache pipelineCache,
337         uint32_t createInfoCount,
338         const VkComputePipelineCreateInfo* pCreateInfos,
339         const VkAllocationCallbacks* pAllocator,
340         VkPipeline* pPipelines);
341     void vkDestroyPipeline(
342     VkDevice device,
343         VkPipeline pipeline,
344         const VkAllocationCallbacks* pAllocator);
345     VkResult vkCreatePipelineLayout(
346     VkDevice device,
347         const VkPipelineLayoutCreateInfo* pCreateInfo,
348         const VkAllocationCallbacks* pAllocator,
349         VkPipelineLayout* pPipelineLayout);
350     void vkDestroyPipelineLayout(
351     VkDevice device,
352         VkPipelineLayout pipelineLayout,
353         const VkAllocationCallbacks* pAllocator);
354     VkResult vkCreateSampler(
355     VkDevice device,
356         const VkSamplerCreateInfo* pCreateInfo,
357         const VkAllocationCallbacks* pAllocator,
358         VkSampler* pSampler);
359     void vkDestroySampler(
360     VkDevice device,
361         VkSampler sampler,
362         const VkAllocationCallbacks* pAllocator);
363     VkResult vkCreateDescriptorSetLayout(
364     VkDevice device,
365         const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
366         const VkAllocationCallbacks* pAllocator,
367         VkDescriptorSetLayout* pSetLayout);
368     void vkDestroyDescriptorSetLayout(
369     VkDevice device,
370         VkDescriptorSetLayout descriptorSetLayout,
371         const VkAllocationCallbacks* pAllocator);
372     VkResult vkCreateDescriptorPool(
373     VkDevice device,
374         const VkDescriptorPoolCreateInfo* pCreateInfo,
375         const VkAllocationCallbacks* pAllocator,
376         VkDescriptorPool* pDescriptorPool);
377     void vkDestroyDescriptorPool(
378     VkDevice device,
379         VkDescriptorPool descriptorPool,
380         const VkAllocationCallbacks* pAllocator);
381     VkResult vkResetDescriptorPool(
382     VkDevice device,
383         VkDescriptorPool descriptorPool,
384         VkDescriptorPoolResetFlags flags);
385     VkResult vkAllocateDescriptorSets(
386     VkDevice device,
387         const VkDescriptorSetAllocateInfo* pAllocateInfo,
388         VkDescriptorSet* pDescriptorSets);
389     VkResult vkFreeDescriptorSets(
390     VkDevice device,
391         VkDescriptorPool descriptorPool,
392         uint32_t descriptorSetCount,
393         const VkDescriptorSet* pDescriptorSets);
394     void vkUpdateDescriptorSets(
395     VkDevice device,
396         uint32_t descriptorWriteCount,
397         const VkWriteDescriptorSet* pDescriptorWrites,
398         uint32_t descriptorCopyCount,
399         const VkCopyDescriptorSet* pDescriptorCopies);
400     VkResult vkCreateFramebuffer(
401     VkDevice device,
402         const VkFramebufferCreateInfo* pCreateInfo,
403         const VkAllocationCallbacks* pAllocator,
404         VkFramebuffer* pFramebuffer);
405     void vkDestroyFramebuffer(
406     VkDevice device,
407         VkFramebuffer framebuffer,
408         const VkAllocationCallbacks* pAllocator);
409     VkResult vkCreateRenderPass(
410     VkDevice device,
411         const VkRenderPassCreateInfo* pCreateInfo,
412         const VkAllocationCallbacks* pAllocator,
413         VkRenderPass* pRenderPass);
414     void vkDestroyRenderPass(
415     VkDevice device,
416         VkRenderPass renderPass,
417         const VkAllocationCallbacks* pAllocator);
418     void vkGetRenderAreaGranularity(
419     VkDevice device,
420         VkRenderPass renderPass,
421         VkExtent2D* pGranularity);
422     VkResult vkCreateCommandPool(
423     VkDevice device,
424         const VkCommandPoolCreateInfo* pCreateInfo,
425         const VkAllocationCallbacks* pAllocator,
426         VkCommandPool* pCommandPool);
427     void vkDestroyCommandPool(
428     VkDevice device,
429         VkCommandPool commandPool,
430         const VkAllocationCallbacks* pAllocator);
431     VkResult vkResetCommandPool(
432     VkDevice device,
433         VkCommandPool commandPool,
434         VkCommandPoolResetFlags flags);
435     VkResult vkAllocateCommandBuffers(
436     VkDevice device,
437         const VkCommandBufferAllocateInfo* pAllocateInfo,
438         VkCommandBuffer* pCommandBuffers);
439     void vkFreeCommandBuffers(
440     VkDevice device,
441         VkCommandPool commandPool,
442         uint32_t commandBufferCount,
443         const VkCommandBuffer* pCommandBuffers);
444     VkResult vkBeginCommandBuffer(
445     VkCommandBuffer commandBuffer,
446         const VkCommandBufferBeginInfo* pBeginInfo);
447     VkResult vkEndCommandBuffer(
448     VkCommandBuffer commandBuffer);
449     VkResult vkResetCommandBuffer(
450     VkCommandBuffer commandBuffer,
451         VkCommandBufferResetFlags flags);
452     void vkCmdBindPipeline(
453     VkCommandBuffer commandBuffer,
454         VkPipelineBindPoint pipelineBindPoint,
455         VkPipeline pipeline);
456     void vkCmdSetViewport(
457     VkCommandBuffer commandBuffer,
458         uint32_t firstViewport,
459         uint32_t viewportCount,
460         const VkViewport* pViewports);
461     void vkCmdSetScissor(
462     VkCommandBuffer commandBuffer,
463         uint32_t firstScissor,
464         uint32_t scissorCount,
465         const VkRect2D* pScissors);
466     void vkCmdSetLineWidth(
467     VkCommandBuffer commandBuffer,
468         float lineWidth);
469     void vkCmdSetDepthBias(
470     VkCommandBuffer commandBuffer,
471         float depthBiasConstantFactor,
472         float depthBiasClamp,
473         float depthBiasSlopeFactor);
474     void vkCmdSetBlendConstants(
475     VkCommandBuffer commandBuffer,
476         const float blendConstants[4]);
477     void vkCmdSetDepthBounds(
478     VkCommandBuffer commandBuffer,
479         float minDepthBounds,
480         float maxDepthBounds);
481     void vkCmdSetStencilCompareMask(
482     VkCommandBuffer commandBuffer,
483         VkStencilFaceFlags faceMask,
484         uint32_t compareMask);
485     void vkCmdSetStencilWriteMask(
486     VkCommandBuffer commandBuffer,
487         VkStencilFaceFlags faceMask,
488         uint32_t writeMask);
489     void vkCmdSetStencilReference(
490     VkCommandBuffer commandBuffer,
491         VkStencilFaceFlags faceMask,
492         uint32_t reference);
493     void vkCmdBindDescriptorSets(
494     VkCommandBuffer commandBuffer,
495         VkPipelineBindPoint pipelineBindPoint,
496         VkPipelineLayout layout,
497         uint32_t firstSet,
498         uint32_t descriptorSetCount,
499         const VkDescriptorSet* pDescriptorSets,
500         uint32_t dynamicOffsetCount,
501         const uint32_t* pDynamicOffsets);
502     void vkCmdBindIndexBuffer(
503     VkCommandBuffer commandBuffer,
504         VkBuffer buffer,
505         VkDeviceSize offset,
506         VkIndexType indexType);
507     void vkCmdBindVertexBuffers(
508     VkCommandBuffer commandBuffer,
509         uint32_t firstBinding,
510         uint32_t bindingCount,
511         const VkBuffer* pBuffers,
512         const VkDeviceSize* pOffsets);
513     void vkCmdDraw(
514     VkCommandBuffer commandBuffer,
515         uint32_t vertexCount,
516         uint32_t instanceCount,
517         uint32_t firstVertex,
518         uint32_t firstInstance);
519     void vkCmdDrawIndexed(
520     VkCommandBuffer commandBuffer,
521         uint32_t indexCount,
522         uint32_t instanceCount,
523         uint32_t firstIndex,
524         int32_t vertexOffset,
525         uint32_t firstInstance);
526     void vkCmdDrawIndirect(
527     VkCommandBuffer commandBuffer,
528         VkBuffer buffer,
529         VkDeviceSize offset,
530         uint32_t drawCount,
531         uint32_t stride);
532     void vkCmdDrawIndexedIndirect(
533     VkCommandBuffer commandBuffer,
534         VkBuffer buffer,
535         VkDeviceSize offset,
536         uint32_t drawCount,
537         uint32_t stride);
538     void vkCmdDispatch(
539     VkCommandBuffer commandBuffer,
540         uint32_t groupCountX,
541         uint32_t groupCountY,
542         uint32_t groupCountZ);
543     void vkCmdDispatchIndirect(
544     VkCommandBuffer commandBuffer,
545         VkBuffer buffer,
546         VkDeviceSize offset);
547     void vkCmdCopyBuffer(
548     VkCommandBuffer commandBuffer,
549         VkBuffer srcBuffer,
550         VkBuffer dstBuffer,
551         uint32_t regionCount,
552         const VkBufferCopy* pRegions);
553     void vkCmdCopyImage(
554     VkCommandBuffer commandBuffer,
555         VkImage srcImage,
556         VkImageLayout srcImageLayout,
557         VkImage dstImage,
558         VkImageLayout dstImageLayout,
559         uint32_t regionCount,
560         const VkImageCopy* pRegions);
561     void vkCmdBlitImage(
562     VkCommandBuffer commandBuffer,
563         VkImage srcImage,
564         VkImageLayout srcImageLayout,
565         VkImage dstImage,
566         VkImageLayout dstImageLayout,
567         uint32_t regionCount,
568         const VkImageBlit* pRegions,
569         VkFilter filter);
570     void vkCmdCopyBufferToImage(
571     VkCommandBuffer commandBuffer,
572         VkBuffer srcBuffer,
573         VkImage dstImage,
574         VkImageLayout dstImageLayout,
575         uint32_t regionCount,
576         const VkBufferImageCopy* pRegions);
577     void vkCmdCopyImageToBuffer(
578     VkCommandBuffer commandBuffer,
579         VkImage srcImage,
580         VkImageLayout srcImageLayout,
581         VkBuffer dstBuffer,
582         uint32_t regionCount,
583         const VkBufferImageCopy* pRegions);
584     void vkCmdUpdateBuffer(
585     VkCommandBuffer commandBuffer,
586         VkBuffer dstBuffer,
587         VkDeviceSize dstOffset,
588         VkDeviceSize dataSize,
589         const void* pData);
590     void vkCmdFillBuffer(
591     VkCommandBuffer commandBuffer,
592         VkBuffer dstBuffer,
593         VkDeviceSize dstOffset,
594         VkDeviceSize size,
595         uint32_t data);
596     void vkCmdClearColorImage(
597     VkCommandBuffer commandBuffer,
598         VkImage image,
599         VkImageLayout imageLayout,
600         const VkClearColorValue* pColor,
601         uint32_t rangeCount,
602         const VkImageSubresourceRange* pRanges);
603     void vkCmdClearDepthStencilImage(
604     VkCommandBuffer commandBuffer,
605         VkImage image,
606         VkImageLayout imageLayout,
607         const VkClearDepthStencilValue* pDepthStencil,
608         uint32_t rangeCount,
609         const VkImageSubresourceRange* pRanges);
610     void vkCmdClearAttachments(
611     VkCommandBuffer commandBuffer,
612         uint32_t attachmentCount,
613         const VkClearAttachment* pAttachments,
614         uint32_t rectCount,
615         const VkClearRect* pRects);
616     void vkCmdResolveImage(
617     VkCommandBuffer commandBuffer,
618         VkImage srcImage,
619         VkImageLayout srcImageLayout,
620         VkImage dstImage,
621         VkImageLayout dstImageLayout,
622         uint32_t regionCount,
623         const VkImageResolve* pRegions);
624     void vkCmdSetEvent(
625     VkCommandBuffer commandBuffer,
626         VkEvent event,
627         VkPipelineStageFlags stageMask);
628     void vkCmdResetEvent(
629     VkCommandBuffer commandBuffer,
630         VkEvent event,
631         VkPipelineStageFlags stageMask);
632     void vkCmdWaitEvents(
633     VkCommandBuffer commandBuffer,
634         uint32_t eventCount,
635         const VkEvent* pEvents,
636         VkPipelineStageFlags srcStageMask,
637         VkPipelineStageFlags dstStageMask,
638         uint32_t memoryBarrierCount,
639         const VkMemoryBarrier* pMemoryBarriers,
640         uint32_t bufferMemoryBarrierCount,
641         const VkBufferMemoryBarrier* pBufferMemoryBarriers,
642         uint32_t imageMemoryBarrierCount,
643         const VkImageMemoryBarrier* pImageMemoryBarriers);
644     void vkCmdPipelineBarrier(
645     VkCommandBuffer commandBuffer,
646         VkPipelineStageFlags srcStageMask,
647         VkPipelineStageFlags dstStageMask,
648         VkDependencyFlags dependencyFlags,
649         uint32_t memoryBarrierCount,
650         const VkMemoryBarrier* pMemoryBarriers,
651         uint32_t bufferMemoryBarrierCount,
652         const VkBufferMemoryBarrier* pBufferMemoryBarriers,
653         uint32_t imageMemoryBarrierCount,
654         const VkImageMemoryBarrier* pImageMemoryBarriers);
655     void vkCmdBeginQuery(
656     VkCommandBuffer commandBuffer,
657         VkQueryPool queryPool,
658         uint32_t query,
659         VkQueryControlFlags flags);
660     void vkCmdEndQuery(
661     VkCommandBuffer commandBuffer,
662         VkQueryPool queryPool,
663         uint32_t query);
664     void vkCmdResetQueryPool(
665     VkCommandBuffer commandBuffer,
666         VkQueryPool queryPool,
667         uint32_t firstQuery,
668         uint32_t queryCount);
669     void vkCmdWriteTimestamp(
670     VkCommandBuffer commandBuffer,
671         VkPipelineStageFlagBits pipelineStage,
672         VkQueryPool queryPool,
673         uint32_t query);
674     void vkCmdCopyQueryPoolResults(
675     VkCommandBuffer commandBuffer,
676         VkQueryPool queryPool,
677         uint32_t firstQuery,
678         uint32_t queryCount,
679         VkBuffer dstBuffer,
680         VkDeviceSize dstOffset,
681         VkDeviceSize stride,
682         VkQueryResultFlags flags);
683     void vkCmdPushConstants(
684     VkCommandBuffer commandBuffer,
685         VkPipelineLayout layout,
686         VkShaderStageFlags stageFlags,
687         uint32_t offset,
688         uint32_t size,
689         const void* pValues);
690     void vkCmdBeginRenderPass(
691     VkCommandBuffer commandBuffer,
692         const VkRenderPassBeginInfo* pRenderPassBegin,
693         VkSubpassContents contents);
694     void vkCmdNextSubpass(
695     VkCommandBuffer commandBuffer,
696         VkSubpassContents contents);
697     void vkCmdEndRenderPass(
698     VkCommandBuffer commandBuffer);
699     void vkCmdExecuteCommands(
700     VkCommandBuffer commandBuffer,
701         uint32_t commandBufferCount,
702         const VkCommandBuffer* pCommandBuffers);
703 #endif
704 #ifdef VK_VERSION_1_1
705     VkResult vkEnumerateInstanceVersion(
706     uint32_t* pApiVersion);
707     VkResult vkBindBufferMemory2(
708     VkDevice device,
709         uint32_t bindInfoCount,
710         const VkBindBufferMemoryInfo* pBindInfos);
711     VkResult vkBindImageMemory2(
712     VkDevice device,
713         uint32_t bindInfoCount,
714         const VkBindImageMemoryInfo* pBindInfos);
715     void vkGetDeviceGroupPeerMemoryFeatures(
716     VkDevice device,
717         uint32_t heapIndex,
718         uint32_t localDeviceIndex,
719         uint32_t remoteDeviceIndex,
720         VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
721     void vkCmdSetDeviceMask(
722     VkCommandBuffer commandBuffer,
723         uint32_t deviceMask);
724     void vkCmdDispatchBase(
725     VkCommandBuffer commandBuffer,
726         uint32_t baseGroupX,
727         uint32_t baseGroupY,
728         uint32_t baseGroupZ,
729         uint32_t groupCountX,
730         uint32_t groupCountY,
731         uint32_t groupCountZ);
732     VkResult vkEnumeratePhysicalDeviceGroups(
733     VkInstance instance,
734         uint32_t* pPhysicalDeviceGroupCount,
735         VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
736     void vkGetImageMemoryRequirements2(
737     VkDevice device,
738         const VkImageMemoryRequirementsInfo2* pInfo,
739         VkMemoryRequirements2* pMemoryRequirements);
740     void vkGetBufferMemoryRequirements2(
741     VkDevice device,
742         const VkBufferMemoryRequirementsInfo2* pInfo,
743         VkMemoryRequirements2* pMemoryRequirements);
744     void vkGetImageSparseMemoryRequirements2(
745     VkDevice device,
746         const VkImageSparseMemoryRequirementsInfo2* pInfo,
747         uint32_t* pSparseMemoryRequirementCount,
748         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
749     void vkGetPhysicalDeviceFeatures2(
750     VkPhysicalDevice physicalDevice,
751         VkPhysicalDeviceFeatures2* pFeatures);
752     void vkGetPhysicalDeviceProperties2(
753     VkPhysicalDevice physicalDevice,
754         VkPhysicalDeviceProperties2* pProperties);
755     void vkGetPhysicalDeviceFormatProperties2(
756     VkPhysicalDevice physicalDevice,
757         VkFormat format,
758         VkFormatProperties2* pFormatProperties);
759     VkResult vkGetPhysicalDeviceImageFormatProperties2(
760     VkPhysicalDevice physicalDevice,
761         const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
762         VkImageFormatProperties2* pImageFormatProperties);
763     void vkGetPhysicalDeviceQueueFamilyProperties2(
764     VkPhysicalDevice physicalDevice,
765         uint32_t* pQueueFamilyPropertyCount,
766         VkQueueFamilyProperties2* pQueueFamilyProperties);
767     void vkGetPhysicalDeviceMemoryProperties2(
768     VkPhysicalDevice physicalDevice,
769         VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
770     void vkGetPhysicalDeviceSparseImageFormatProperties2(
771     VkPhysicalDevice physicalDevice,
772         const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
773         uint32_t* pPropertyCount,
774         VkSparseImageFormatProperties2* pProperties);
775     void vkTrimCommandPool(
776     VkDevice device,
777         VkCommandPool commandPool,
778         VkCommandPoolTrimFlags flags);
779     void vkGetDeviceQueue2(
780     VkDevice device,
781         const VkDeviceQueueInfo2* pQueueInfo,
782         VkQueue* pQueue);
783     VkResult vkCreateSamplerYcbcrConversion(
784     VkDevice device,
785         const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
786         const VkAllocationCallbacks* pAllocator,
787         VkSamplerYcbcrConversion* pYcbcrConversion);
788     void vkDestroySamplerYcbcrConversion(
789     VkDevice device,
790         VkSamplerYcbcrConversion ycbcrConversion,
791         const VkAllocationCallbacks* pAllocator);
792     VkResult vkCreateDescriptorUpdateTemplate(
793     VkDevice device,
794         const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
795         const VkAllocationCallbacks* pAllocator,
796         VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
797     void vkDestroyDescriptorUpdateTemplate(
798     VkDevice device,
799         VkDescriptorUpdateTemplate descriptorUpdateTemplate,
800         const VkAllocationCallbacks* pAllocator);
801     void vkUpdateDescriptorSetWithTemplate(
802     VkDevice device,
803         VkDescriptorSet descriptorSet,
804         VkDescriptorUpdateTemplate descriptorUpdateTemplate,
805         const void* pData);
806     void vkGetPhysicalDeviceExternalBufferProperties(
807     VkPhysicalDevice physicalDevice,
808         const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
809         VkExternalBufferProperties* pExternalBufferProperties);
810     void vkGetPhysicalDeviceExternalFenceProperties(
811     VkPhysicalDevice physicalDevice,
812         const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
813         VkExternalFenceProperties* pExternalFenceProperties);
814     void vkGetPhysicalDeviceExternalSemaphoreProperties(
815     VkPhysicalDevice physicalDevice,
816         const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
817         VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
818     void vkGetDescriptorSetLayoutSupport(
819     VkDevice device,
820         const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
821         VkDescriptorSetLayoutSupport* pSupport);
822 #endif
823 #ifdef VK_KHR_surface
824     void vkDestroySurfaceKHR(
825     VkInstance instance,
826         VkSurfaceKHR surface,
827         const VkAllocationCallbacks* pAllocator);
828     VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
829     VkPhysicalDevice physicalDevice,
830         uint32_t queueFamilyIndex,
831         VkSurfaceKHR surface,
832         VkBool32* pSupported);
833     VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
834     VkPhysicalDevice physicalDevice,
835         VkSurfaceKHR surface,
836         VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
837     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
838     VkPhysicalDevice physicalDevice,
839         VkSurfaceKHR surface,
840         uint32_t* pSurfaceFormatCount,
841         VkSurfaceFormatKHR* pSurfaceFormats);
842     VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
843     VkPhysicalDevice physicalDevice,
844         VkSurfaceKHR surface,
845         uint32_t* pPresentModeCount,
846         VkPresentModeKHR* pPresentModes);
847 #endif
848 #ifdef VK_KHR_swapchain
849     VkResult vkCreateSwapchainKHR(
850     VkDevice device,
851         const VkSwapchainCreateInfoKHR* pCreateInfo,
852         const VkAllocationCallbacks* pAllocator,
853         VkSwapchainKHR* pSwapchain);
854     void vkDestroySwapchainKHR(
855     VkDevice device,
856         VkSwapchainKHR swapchain,
857         const VkAllocationCallbacks* pAllocator);
858     VkResult vkGetSwapchainImagesKHR(
859     VkDevice device,
860         VkSwapchainKHR swapchain,
861         uint32_t* pSwapchainImageCount,
862         VkImage* pSwapchainImages);
863     VkResult vkAcquireNextImageKHR(
864     VkDevice device,
865         VkSwapchainKHR swapchain,
866         uint64_t timeout,
867         VkSemaphore semaphore,
868         VkFence fence,
869         uint32_t* pImageIndex);
870     VkResult vkQueuePresentKHR(
871     VkQueue queue,
872         const VkPresentInfoKHR* pPresentInfo);
873     VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
874     VkDevice device,
875         VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
876     VkResult vkGetDeviceGroupSurfacePresentModesKHR(
877     VkDevice device,
878         VkSurfaceKHR surface,
879         VkDeviceGroupPresentModeFlagsKHR* pModes);
880     VkResult vkGetPhysicalDevicePresentRectanglesKHR(
881     VkPhysicalDevice physicalDevice,
882         VkSurfaceKHR surface,
883         uint32_t* pRectCount,
884         VkRect2D* pRects);
885     VkResult vkAcquireNextImage2KHR(
886     VkDevice device,
887         const VkAcquireNextImageInfoKHR* pAcquireInfo,
888         uint32_t* pImageIndex);
889 #endif
890 #ifdef VK_KHR_display
891     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
892     VkPhysicalDevice physicalDevice,
893         uint32_t* pPropertyCount,
894         VkDisplayPropertiesKHR* pProperties);
895     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
896     VkPhysicalDevice physicalDevice,
897         uint32_t* pPropertyCount,
898         VkDisplayPlanePropertiesKHR* pProperties);
899     VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
900     VkPhysicalDevice physicalDevice,
901         uint32_t planeIndex,
902         uint32_t* pDisplayCount,
903         VkDisplayKHR* pDisplays);
904     VkResult vkGetDisplayModePropertiesKHR(
905     VkPhysicalDevice physicalDevice,
906         VkDisplayKHR display,
907         uint32_t* pPropertyCount,
908         VkDisplayModePropertiesKHR* pProperties);
909     VkResult vkCreateDisplayModeKHR(
910     VkPhysicalDevice physicalDevice,
911         VkDisplayKHR display,
912         const VkDisplayModeCreateInfoKHR* pCreateInfo,
913         const VkAllocationCallbacks* pAllocator,
914         VkDisplayModeKHR* pMode);
915     VkResult vkGetDisplayPlaneCapabilitiesKHR(
916     VkPhysicalDevice physicalDevice,
917         VkDisplayModeKHR mode,
918         uint32_t planeIndex,
919         VkDisplayPlaneCapabilitiesKHR* pCapabilities);
920     VkResult vkCreateDisplayPlaneSurfaceKHR(
921     VkInstance instance,
922         const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
923         const VkAllocationCallbacks* pAllocator,
924         VkSurfaceKHR* pSurface);
925 #endif
926 #ifdef VK_KHR_display_swapchain
927     VkResult vkCreateSharedSwapchainsKHR(
928     VkDevice device,
929         uint32_t swapchainCount,
930         const VkSwapchainCreateInfoKHR* pCreateInfos,
931         const VkAllocationCallbacks* pAllocator,
932         VkSwapchainKHR* pSwapchains);
933 #endif
934 #ifdef VK_KHR_xlib_surface
935     VkResult vkCreateXlibSurfaceKHR(
936     VkInstance instance,
937         const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
938         const VkAllocationCallbacks* pAllocator,
939         VkSurfaceKHR* pSurface);
940     VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
941     VkPhysicalDevice physicalDevice,
942         uint32_t queueFamilyIndex,
943         Display* dpy,
944         VisualID visualID);
945 #endif
946 #ifdef VK_KHR_xcb_surface
947     VkResult vkCreateXcbSurfaceKHR(
948     VkInstance instance,
949         const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
950         const VkAllocationCallbacks* pAllocator,
951         VkSurfaceKHR* pSurface);
952     VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
953     VkPhysicalDevice physicalDevice,
954         uint32_t queueFamilyIndex,
955         xcb_connection_t* connection,
956         xcb_visualid_t visual_id);
957 #endif
958 #ifdef VK_KHR_wayland_surface
959     VkResult vkCreateWaylandSurfaceKHR(
960     VkInstance instance,
961         const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
962         const VkAllocationCallbacks* pAllocator,
963         VkSurfaceKHR* pSurface);
964     VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
965     VkPhysicalDevice physicalDevice,
966         uint32_t queueFamilyIndex,
967         wl_display* display);
968 #endif
969 #ifdef VK_KHR_mir_surface
970     VkResult vkCreateMirSurfaceKHR(
971     VkInstance instance,
972         const VkMirSurfaceCreateInfoKHR* pCreateInfo,
973         const VkAllocationCallbacks* pAllocator,
974         VkSurfaceKHR* pSurface);
975     VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
976     VkPhysicalDevice physicalDevice,
977         uint32_t queueFamilyIndex,
978         MirConnection* connection);
979 #endif
980 #ifdef VK_KHR_android_surface
981     VkResult vkCreateAndroidSurfaceKHR(
982     VkInstance instance,
983         const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
984         const VkAllocationCallbacks* pAllocator,
985         VkSurfaceKHR* pSurface);
986 #endif
987 #ifdef VK_KHR_win32_surface
988     VkResult vkCreateWin32SurfaceKHR(
989     VkInstance instance,
990         const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
991         const VkAllocationCallbacks* pAllocator,
992         VkSurfaceKHR* pSurface);
993     VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR(
994     VkPhysicalDevice physicalDevice,
995         uint32_t queueFamilyIndex);
996 #endif
997 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
998 #endif
999 #ifdef VK_KHR_multiview
1000 #endif
1001 #ifdef VK_KHR_get_physical_device_properties2
1002     void vkGetPhysicalDeviceFeatures2KHR(
1003     VkPhysicalDevice physicalDevice,
1004         VkPhysicalDeviceFeatures2* pFeatures);
1005     void vkGetPhysicalDeviceProperties2KHR(
1006     VkPhysicalDevice physicalDevice,
1007         VkPhysicalDeviceProperties2* pProperties);
1008     void vkGetPhysicalDeviceFormatProperties2KHR(
1009     VkPhysicalDevice physicalDevice,
1010         VkFormat format,
1011         VkFormatProperties2* pFormatProperties);
1012     VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
1013     VkPhysicalDevice physicalDevice,
1014         const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1015         VkImageFormatProperties2* pImageFormatProperties);
1016     void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
1017     VkPhysicalDevice physicalDevice,
1018         uint32_t* pQueueFamilyPropertyCount,
1019         VkQueueFamilyProperties2* pQueueFamilyProperties);
1020     void vkGetPhysicalDeviceMemoryProperties2KHR(
1021     VkPhysicalDevice physicalDevice,
1022         VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
1023     void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
1024     VkPhysicalDevice physicalDevice,
1025         const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1026         uint32_t* pPropertyCount,
1027         VkSparseImageFormatProperties2* pProperties);
1028 #endif
1029 #ifdef VK_KHR_device_group
1030     void vkGetDeviceGroupPeerMemoryFeaturesKHR(
1031     VkDevice device,
1032         uint32_t heapIndex,
1033         uint32_t localDeviceIndex,
1034         uint32_t remoteDeviceIndex,
1035         VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
1036     void vkCmdSetDeviceMaskKHR(
1037     VkCommandBuffer commandBuffer,
1038         uint32_t deviceMask);
1039     void vkCmdDispatchBaseKHR(
1040     VkCommandBuffer commandBuffer,
1041         uint32_t baseGroupX,
1042         uint32_t baseGroupY,
1043         uint32_t baseGroupZ,
1044         uint32_t groupCountX,
1045         uint32_t groupCountY,
1046         uint32_t groupCountZ);
1047 #endif
1048 #ifdef VK_KHR_shader_draw_parameters
1049 #endif
1050 #ifdef VK_KHR_maintenance1
1051     void vkTrimCommandPoolKHR(
1052     VkDevice device,
1053         VkCommandPool commandPool,
1054         VkCommandPoolTrimFlags flags);
1055 #endif
1056 #ifdef VK_KHR_device_group_creation
1057     VkResult vkEnumeratePhysicalDeviceGroupsKHR(
1058     VkInstance instance,
1059         uint32_t* pPhysicalDeviceGroupCount,
1060         VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
1061 #endif
1062 #ifdef VK_KHR_external_memory_capabilities
1063     void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
1064     VkPhysicalDevice physicalDevice,
1065         const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1066         VkExternalBufferProperties* pExternalBufferProperties);
1067 #endif
1068 #ifdef VK_KHR_external_memory
1069 #endif
1070 #ifdef VK_KHR_external_memory_win32
1071     VkResult vkGetMemoryWin32HandleKHR(
1072     VkDevice device,
1073         const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
1074         HANDLE* pHandle);
1075     VkResult vkGetMemoryWin32HandlePropertiesKHR(
1076     VkDevice device,
1077         VkExternalMemoryHandleTypeFlagBits handleType,
1078         HANDLE handle,
1079         VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
1080 #endif
1081 #ifdef VK_KHR_external_memory_fd
1082     VkResult vkGetMemoryFdKHR(
1083     VkDevice device,
1084         const VkMemoryGetFdInfoKHR* pGetFdInfo,
1085         int* pFd);
1086     VkResult vkGetMemoryFdPropertiesKHR(
1087     VkDevice device,
1088         VkExternalMemoryHandleTypeFlagBits handleType,
1089         int fd,
1090         VkMemoryFdPropertiesKHR* pMemoryFdProperties);
1091 #endif
1092 #ifdef VK_KHR_win32_keyed_mutex
1093 #endif
1094 #ifdef VK_KHR_external_semaphore_capabilities
1095     void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
1096     VkPhysicalDevice physicalDevice,
1097         const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1098         VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
1099 #endif
1100 #ifdef VK_KHR_external_semaphore
1101 #endif
1102 #ifdef VK_KHR_external_semaphore_win32
1103     VkResult vkImportSemaphoreWin32HandleKHR(
1104     VkDevice device,
1105         const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
1106     VkResult vkGetSemaphoreWin32HandleKHR(
1107     VkDevice device,
1108         const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
1109         HANDLE* pHandle);
1110 #endif
1111 #ifdef VK_KHR_external_semaphore_fd
1112     VkResult vkImportSemaphoreFdKHR(
1113     VkDevice device,
1114         const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
1115     VkResult vkGetSemaphoreFdKHR(
1116     VkDevice device,
1117         const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
1118         int* pFd);
1119 #endif
1120 #ifdef VK_KHR_push_descriptor
1121     void vkCmdPushDescriptorSetKHR(
1122     VkCommandBuffer commandBuffer,
1123         VkPipelineBindPoint pipelineBindPoint,
1124         VkPipelineLayout layout,
1125         uint32_t set,
1126         uint32_t descriptorWriteCount,
1127         const VkWriteDescriptorSet* pDescriptorWrites);
1128     void vkCmdPushDescriptorSetWithTemplateKHR(
1129     VkCommandBuffer commandBuffer,
1130         VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1131         VkPipelineLayout layout,
1132         uint32_t set,
1133         const void* pData);
1134 #endif
1135 #ifdef VK_KHR_16bit_storage
1136 #endif
1137 #ifdef VK_KHR_incremental_present
1138 #endif
1139 #ifdef VK_KHR_descriptor_update_template
1140     VkResult vkCreateDescriptorUpdateTemplateKHR(
1141     VkDevice device,
1142         const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1143         const VkAllocationCallbacks* pAllocator,
1144         VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
1145     void vkDestroyDescriptorUpdateTemplateKHR(
1146     VkDevice device,
1147         VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1148         const VkAllocationCallbacks* pAllocator);
1149     void vkUpdateDescriptorSetWithTemplateKHR(
1150     VkDevice device,
1151         VkDescriptorSet descriptorSet,
1152         VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1153         const void* pData);
1154 #endif
1155 #ifdef VK_KHR_create_renderpass2
1156     VkResult vkCreateRenderPass2KHR(
1157     VkDevice device,
1158         const VkRenderPassCreateInfo2KHR* pCreateInfo,
1159         const VkAllocationCallbacks* pAllocator,
1160         VkRenderPass* pRenderPass);
1161     void vkCmdBeginRenderPass2KHR(
1162     VkCommandBuffer commandBuffer,
1163         const VkRenderPassBeginInfo* pRenderPassBegin,
1164         const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
1165     void vkCmdNextSubpass2KHR(
1166     VkCommandBuffer commandBuffer,
1167         const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
1168         const VkSubpassEndInfoKHR* pSubpassEndInfo);
1169     void vkCmdEndRenderPass2KHR(
1170     VkCommandBuffer commandBuffer,
1171         const VkSubpassEndInfoKHR* pSubpassEndInfo);
1172 #endif
1173 #ifdef VK_KHR_shared_presentable_image
1174     VkResult vkGetSwapchainStatusKHR(
1175     VkDevice device,
1176         VkSwapchainKHR swapchain);
1177 #endif
1178 #ifdef VK_KHR_external_fence_capabilities
1179     void vkGetPhysicalDeviceExternalFencePropertiesKHR(
1180     VkPhysicalDevice physicalDevice,
1181         const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1182         VkExternalFenceProperties* pExternalFenceProperties);
1183 #endif
1184 #ifdef VK_KHR_external_fence
1185 #endif
1186 #ifdef VK_KHR_external_fence_win32
1187     VkResult vkImportFenceWin32HandleKHR(
1188     VkDevice device,
1189         const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
1190     VkResult vkGetFenceWin32HandleKHR(
1191     VkDevice device,
1192         const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
1193         HANDLE* pHandle);
1194 #endif
1195 #ifdef VK_KHR_external_fence_fd
1196     VkResult vkImportFenceFdKHR(
1197     VkDevice device,
1198         const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
1199     VkResult vkGetFenceFdKHR(
1200     VkDevice device,
1201         const VkFenceGetFdInfoKHR* pGetFdInfo,
1202         int* pFd);
1203 #endif
1204 #ifdef VK_KHR_maintenance2
1205 #endif
1206 #ifdef VK_KHR_get_surface_capabilities2
1207     VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
1208     VkPhysicalDevice physicalDevice,
1209         const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
1210         VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
1211     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
1212     VkPhysicalDevice physicalDevice,
1213         const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
1214         uint32_t* pSurfaceFormatCount,
1215         VkSurfaceFormat2KHR* pSurfaceFormats);
1216 #endif
1217 #ifdef VK_KHR_variable_pointers
1218 #endif
1219 #ifdef VK_KHR_get_display_properties2
1220     VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
1221     VkPhysicalDevice physicalDevice,
1222         uint32_t* pPropertyCount,
1223         VkDisplayProperties2KHR* pProperties);
1224     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
1225     VkPhysicalDevice physicalDevice,
1226         uint32_t* pPropertyCount,
1227         VkDisplayPlaneProperties2KHR* pProperties);
1228     VkResult vkGetDisplayModeProperties2KHR(
1229     VkPhysicalDevice physicalDevice,
1230         VkDisplayKHR display,
1231         uint32_t* pPropertyCount,
1232         VkDisplayModeProperties2KHR* pProperties);
1233     VkResult vkGetDisplayPlaneCapabilities2KHR(
1234     VkPhysicalDevice physicalDevice,
1235         const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
1236         VkDisplayPlaneCapabilities2KHR* pCapabilities);
1237 #endif
1238 #ifdef VK_KHR_dedicated_allocation
1239 #endif
1240 #ifdef VK_KHR_storage_buffer_storage_class
1241 #endif
1242 #ifdef VK_KHR_relaxed_block_layout
1243 #endif
1244 #ifdef VK_KHR_get_memory_requirements2
1245     void vkGetImageMemoryRequirements2KHR(
1246     VkDevice device,
1247         const VkImageMemoryRequirementsInfo2* pInfo,
1248         VkMemoryRequirements2* pMemoryRequirements);
1249     void vkGetBufferMemoryRequirements2KHR(
1250     VkDevice device,
1251         const VkBufferMemoryRequirementsInfo2* pInfo,
1252         VkMemoryRequirements2* pMemoryRequirements);
1253     void vkGetImageSparseMemoryRequirements2KHR(
1254     VkDevice device,
1255         const VkImageSparseMemoryRequirementsInfo2* pInfo,
1256         uint32_t* pSparseMemoryRequirementCount,
1257         VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
1258 #endif
1259 #ifdef VK_KHR_image_format_list
1260 #endif
1261 #ifdef VK_KHR_sampler_ycbcr_conversion
1262     VkResult vkCreateSamplerYcbcrConversionKHR(
1263     VkDevice device,
1264         const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1265         const VkAllocationCallbacks* pAllocator,
1266         VkSamplerYcbcrConversion* pYcbcrConversion);
1267     void vkDestroySamplerYcbcrConversionKHR(
1268     VkDevice device,
1269         VkSamplerYcbcrConversion ycbcrConversion,
1270         const VkAllocationCallbacks* pAllocator);
1271 #endif
1272 #ifdef VK_KHR_bind_memory2
1273     VkResult vkBindBufferMemory2KHR(
1274     VkDevice device,
1275         uint32_t bindInfoCount,
1276         const VkBindBufferMemoryInfo* pBindInfos);
1277     VkResult vkBindImageMemory2KHR(
1278     VkDevice device,
1279         uint32_t bindInfoCount,
1280         const VkBindImageMemoryInfo* pBindInfos);
1281 #endif
1282 #ifdef VK_KHR_maintenance3
1283     void vkGetDescriptorSetLayoutSupportKHR(
1284     VkDevice device,
1285         const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1286         VkDescriptorSetLayoutSupport* pSupport);
1287 #endif
1288 #ifdef VK_KHR_draw_indirect_count
1289     void vkCmdDrawIndirectCountKHR(
1290     VkCommandBuffer commandBuffer,
1291         VkBuffer buffer,
1292         VkDeviceSize offset,
1293         VkBuffer countBuffer,
1294         VkDeviceSize countBufferOffset,
1295         uint32_t maxDrawCount,
1296         uint32_t stride);
1297     void vkCmdDrawIndexedIndirectCountKHR(
1298     VkCommandBuffer commandBuffer,
1299         VkBuffer buffer,
1300         VkDeviceSize offset,
1301         VkBuffer countBuffer,
1302         VkDeviceSize countBufferOffset,
1303         uint32_t maxDrawCount,
1304         uint32_t stride);
1305 #endif
1306 #ifdef VK_KHR_8bit_storage
1307 #endif
1308 #ifdef VK_ANDROID_native_buffer
1309     VkResult vkGetSwapchainGrallocUsageANDROID(
1310     VkDevice device,
1311         VkFormat format,
1312         VkImageUsageFlags imageUsage,
1313         int* grallocUsage);
1314     VkResult vkAcquireImageANDROID(
1315     VkDevice device,
1316         VkImage image,
1317         int nativeFenceFd,
1318         VkSemaphore semaphore,
1319         VkFence fence);
1320     VkResult vkQueueSignalReleaseImageANDROID(
1321     VkQueue queue,
1322         uint32_t waitSemaphoreCount,
1323         const VkSemaphore* pWaitSemaphores,
1324         VkImage image,
1325         int* pNativeFenceFd);
1326 #endif
1327 #ifdef VK_EXT_debug_report
1328     VkResult vkCreateDebugReportCallbackEXT(
1329     VkInstance instance,
1330         const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
1331         const VkAllocationCallbacks* pAllocator,
1332         VkDebugReportCallbackEXT* pCallback);
1333     void vkDestroyDebugReportCallbackEXT(
1334     VkInstance instance,
1335         VkDebugReportCallbackEXT callback,
1336         const VkAllocationCallbacks* pAllocator);
1337     void vkDebugReportMessageEXT(
1338     VkInstance instance,
1339         VkDebugReportFlagsEXT flags,
1340         VkDebugReportObjectTypeEXT objectType,
1341         uint64_t object,
1342         size_t location,
1343         int32_t messageCode,
1344         const char* pLayerPrefix,
1345         const char* pMessage);
1346 #endif
1347 #ifdef VK_NV_glsl_shader
1348 #endif
1349 #ifdef VK_EXT_depth_range_unrestricted
1350 #endif
1351 #ifdef VK_IMG_filter_cubic
1352 #endif
1353 #ifdef VK_AMD_rasterization_order
1354 #endif
1355 #ifdef VK_AMD_shader_trinary_minmax
1356 #endif
1357 #ifdef VK_AMD_shader_explicit_vertex_parameter
1358 #endif
1359 #ifdef VK_EXT_debug_marker
1360     VkResult vkDebugMarkerSetObjectTagEXT(
1361     VkDevice device,
1362         const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
1363     VkResult vkDebugMarkerSetObjectNameEXT(
1364     VkDevice device,
1365         const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
1366     void vkCmdDebugMarkerBeginEXT(
1367     VkCommandBuffer commandBuffer,
1368         const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
1369     void vkCmdDebugMarkerEndEXT(
1370     VkCommandBuffer commandBuffer);
1371     void vkCmdDebugMarkerInsertEXT(
1372     VkCommandBuffer commandBuffer,
1373         const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
1374 #endif
1375 #ifdef VK_AMD_gcn_shader
1376 #endif
1377 #ifdef VK_NV_dedicated_allocation
1378 #endif
1379 #ifdef VK_AMD_draw_indirect_count
1380     void vkCmdDrawIndirectCountAMD(
1381     VkCommandBuffer commandBuffer,
1382         VkBuffer buffer,
1383         VkDeviceSize offset,
1384         VkBuffer countBuffer,
1385         VkDeviceSize countBufferOffset,
1386         uint32_t maxDrawCount,
1387         uint32_t stride);
1388     void vkCmdDrawIndexedIndirectCountAMD(
1389     VkCommandBuffer commandBuffer,
1390         VkBuffer buffer,
1391         VkDeviceSize offset,
1392         VkBuffer countBuffer,
1393         VkDeviceSize countBufferOffset,
1394         uint32_t maxDrawCount,
1395         uint32_t stride);
1396 #endif
1397 #ifdef VK_AMD_negative_viewport_height
1398 #endif
1399 #ifdef VK_AMD_gpu_shader_half_float
1400 #endif
1401 #ifdef VK_AMD_shader_ballot
1402 #endif
1403 #ifdef VK_AMD_texture_gather_bias_lod
1404 #endif
1405 #ifdef VK_AMD_shader_info
1406     VkResult vkGetShaderInfoAMD(
1407     VkDevice device,
1408         VkPipeline pipeline,
1409         VkShaderStageFlagBits shaderStage,
1410         VkShaderInfoTypeAMD infoType,
1411         size_t* pInfoSize,
1412         void* pInfo);
1413 #endif
1414 #ifdef VK_AMD_shader_image_load_store_lod
1415 #endif
1416 #ifdef VK_IMG_format_pvrtc
1417 #endif
1418 #ifdef VK_NV_external_memory_capabilities
1419     VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
1420     VkPhysicalDevice physicalDevice,
1421         VkFormat format,
1422         VkImageType type,
1423         VkImageTiling tiling,
1424         VkImageUsageFlags usage,
1425         VkImageCreateFlags flags,
1426         VkExternalMemoryHandleTypeFlagsNV externalHandleType,
1427         VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
1428 #endif
1429 #ifdef VK_NV_external_memory
1430 #endif
1431 #ifdef VK_NV_external_memory_win32
1432     VkResult vkGetMemoryWin32HandleNV(
1433     VkDevice device,
1434         VkDeviceMemory memory,
1435         VkExternalMemoryHandleTypeFlagsNV handleType,
1436         HANDLE* pHandle);
1437 #endif
1438 #ifdef VK_NV_win32_keyed_mutex
1439 #endif
1440 #ifdef VK_EXT_validation_flags
1441 #endif
1442 #ifdef VK_NN_vi_surface
1443     VkResult vkCreateViSurfaceNN(
1444     VkInstance instance,
1445         const VkViSurfaceCreateInfoNN* pCreateInfo,
1446         const VkAllocationCallbacks* pAllocator,
1447         VkSurfaceKHR* pSurface);
1448 #endif
1449 #ifdef VK_EXT_shader_subgroup_ballot
1450 #endif
1451 #ifdef VK_EXT_shader_subgroup_vote
1452 #endif
1453 #ifdef VK_EXT_conditional_rendering
1454     void vkCmdBeginConditionalRenderingEXT(
1455     VkCommandBuffer commandBuffer,
1456         const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
1457     void vkCmdEndConditionalRenderingEXT(
1458     VkCommandBuffer commandBuffer);
1459 #endif
1460 #ifdef VK_NVX_device_generated_commands
1461     void vkCmdProcessCommandsNVX(
1462     VkCommandBuffer commandBuffer,
1463         const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
1464     void vkCmdReserveSpaceForCommandsNVX(
1465     VkCommandBuffer commandBuffer,
1466         const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
1467     VkResult vkCreateIndirectCommandsLayoutNVX(
1468     VkDevice device,
1469         const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
1470         const VkAllocationCallbacks* pAllocator,
1471         VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
1472     void vkDestroyIndirectCommandsLayoutNVX(
1473     VkDevice device,
1474         VkIndirectCommandsLayoutNVX indirectCommandsLayout,
1475         const VkAllocationCallbacks* pAllocator);
1476     VkResult vkCreateObjectTableNVX(
1477     VkDevice device,
1478         const VkObjectTableCreateInfoNVX* pCreateInfo,
1479         const VkAllocationCallbacks* pAllocator,
1480         VkObjectTableNVX* pObjectTable);
1481     void vkDestroyObjectTableNVX(
1482     VkDevice device,
1483         VkObjectTableNVX objectTable,
1484         const VkAllocationCallbacks* pAllocator);
1485     VkResult vkRegisterObjectsNVX(
1486     VkDevice device,
1487         VkObjectTableNVX objectTable,
1488         uint32_t objectCount,
1489         const VkObjectTableEntryNVX* const* ppObjectTableEntries,
1490         const uint32_t* pObjectIndices);
1491     VkResult vkUnregisterObjectsNVX(
1492     VkDevice device,
1493         VkObjectTableNVX objectTable,
1494         uint32_t objectCount,
1495         const VkObjectEntryTypeNVX* pObjectEntryTypes,
1496         const uint32_t* pObjectIndices);
1497     void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
1498     VkPhysicalDevice physicalDevice,
1499         VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
1500         VkDeviceGeneratedCommandsLimitsNVX* pLimits);
1501 #endif
1502 #ifdef VK_NV_clip_space_w_scaling
1503     void vkCmdSetViewportWScalingNV(
1504     VkCommandBuffer commandBuffer,
1505         uint32_t firstViewport,
1506         uint32_t viewportCount,
1507         const VkViewportWScalingNV* pViewportWScalings);
1508 #endif
1509 #ifdef VK_EXT_direct_mode_display
1510     VkResult vkReleaseDisplayEXT(
1511     VkPhysicalDevice physicalDevice,
1512         VkDisplayKHR display);
1513 #endif
1514 #ifdef VK_EXT_acquire_xlib_display
1515     VkResult vkAcquireXlibDisplayEXT(
1516     VkPhysicalDevice physicalDevice,
1517         Display* dpy,
1518         VkDisplayKHR display);
1519     VkResult vkGetRandROutputDisplayEXT(
1520     VkPhysicalDevice physicalDevice,
1521         Display* dpy,
1522         RROutput rrOutput,
1523         VkDisplayKHR* pDisplay);
1524 #endif
1525 #ifdef VK_EXT_display_surface_counter
1526     VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
1527     VkPhysicalDevice physicalDevice,
1528         VkSurfaceKHR surface,
1529         VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
1530 #endif
1531 #ifdef VK_EXT_display_control
1532     VkResult vkDisplayPowerControlEXT(
1533     VkDevice device,
1534         VkDisplayKHR display,
1535         const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
1536     VkResult vkRegisterDeviceEventEXT(
1537     VkDevice device,
1538         const VkDeviceEventInfoEXT* pDeviceEventInfo,
1539         const VkAllocationCallbacks* pAllocator,
1540         VkFence* pFence);
1541     VkResult vkRegisterDisplayEventEXT(
1542     VkDevice device,
1543         VkDisplayKHR display,
1544         const VkDisplayEventInfoEXT* pDisplayEventInfo,
1545         const VkAllocationCallbacks* pAllocator,
1546         VkFence* pFence);
1547     VkResult vkGetSwapchainCounterEXT(
1548     VkDevice device,
1549         VkSwapchainKHR swapchain,
1550         VkSurfaceCounterFlagBitsEXT counter,
1551         uint64_t* pCounterValue);
1552 #endif
1553 #ifdef VK_GOOGLE_display_timing
1554     VkResult vkGetRefreshCycleDurationGOOGLE(
1555     VkDevice device,
1556         VkSwapchainKHR swapchain,
1557         VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
1558     VkResult vkGetPastPresentationTimingGOOGLE(
1559     VkDevice device,
1560         VkSwapchainKHR swapchain,
1561         uint32_t* pPresentationTimingCount,
1562         VkPastPresentationTimingGOOGLE* pPresentationTimings);
1563 #endif
1564 #ifdef VK_NV_sample_mask_override_coverage
1565 #endif
1566 #ifdef VK_NV_geometry_shader_passthrough
1567 #endif
1568 #ifdef VK_NV_viewport_array2
1569 #endif
1570 #ifdef VK_NVX_multiview_per_view_attributes
1571 #endif
1572 #ifdef VK_NV_viewport_swizzle
1573 #endif
1574 #ifdef VK_EXT_discard_rectangles
1575     void vkCmdSetDiscardRectangleEXT(
1576     VkCommandBuffer commandBuffer,
1577         uint32_t firstDiscardRectangle,
1578         uint32_t discardRectangleCount,
1579         const VkRect2D* pDiscardRectangles);
1580 #endif
1581 #ifdef VK_EXT_conservative_rasterization
1582 #endif
1583 #ifdef VK_EXT_swapchain_colorspace
1584 #endif
1585 #ifdef VK_EXT_hdr_metadata
1586     void vkSetHdrMetadataEXT(
1587     VkDevice device,
1588         uint32_t swapchainCount,
1589         const VkSwapchainKHR* pSwapchains,
1590         const VkHdrMetadataEXT* pMetadata);
1591 #endif
1592 #ifdef VK_MVK_ios_surface
1593     VkResult vkCreateIOSSurfaceMVK(
1594     VkInstance instance,
1595         const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
1596         const VkAllocationCallbacks* pAllocator,
1597         VkSurfaceKHR* pSurface);
1598 #endif
1599 #ifdef VK_MVK_macos_surface
1600     VkResult vkCreateMacOSSurfaceMVK(
1601     VkInstance instance,
1602         const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
1603         const VkAllocationCallbacks* pAllocator,
1604         VkSurfaceKHR* pSurface);
1605 #endif
1606 #ifdef VK_EXT_external_memory_dma_buf
1607 #endif
1608 #ifdef VK_EXT_queue_family_foreign
1609 #endif
1610 #ifdef VK_EXT_debug_utils
1611     VkResult vkSetDebugUtilsObjectNameEXT(
1612     VkDevice device,
1613         const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
1614     VkResult vkSetDebugUtilsObjectTagEXT(
1615     VkDevice device,
1616         const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
1617     void vkQueueBeginDebugUtilsLabelEXT(
1618     VkQueue queue,
1619         const VkDebugUtilsLabelEXT* pLabelInfo);
1620     void vkQueueEndDebugUtilsLabelEXT(
1621     VkQueue queue);
1622     void vkQueueInsertDebugUtilsLabelEXT(
1623     VkQueue queue,
1624         const VkDebugUtilsLabelEXT* pLabelInfo);
1625     void vkCmdBeginDebugUtilsLabelEXT(
1626     VkCommandBuffer commandBuffer,
1627         const VkDebugUtilsLabelEXT* pLabelInfo);
1628     void vkCmdEndDebugUtilsLabelEXT(
1629     VkCommandBuffer commandBuffer);
1630     void vkCmdInsertDebugUtilsLabelEXT(
1631     VkCommandBuffer commandBuffer,
1632         const VkDebugUtilsLabelEXT* pLabelInfo);
1633     VkResult vkCreateDebugUtilsMessengerEXT(
1634     VkInstance instance,
1635         const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
1636         const VkAllocationCallbacks* pAllocator,
1637         VkDebugUtilsMessengerEXT* pMessenger);
1638     void vkDestroyDebugUtilsMessengerEXT(
1639     VkInstance instance,
1640         VkDebugUtilsMessengerEXT messenger,
1641         const VkAllocationCallbacks* pAllocator);
1642     void vkSubmitDebugUtilsMessageEXT(
1643     VkInstance instance,
1644         VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
1645         VkDebugUtilsMessageTypeFlagsEXT messageTypes,
1646         const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
1647 #endif
1648 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
1649     VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
1650     VkDevice device,
1651         const AHardwareBuffer* buffer,
1652         VkAndroidHardwareBufferPropertiesANDROID* pProperties);
1653     VkResult vkGetMemoryAndroidHardwareBufferANDROID(
1654     VkDevice device,
1655         const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
1656         AHardwareBuffer** pBuffer);
1657 #endif
1658 #ifdef VK_EXT_sampler_filter_minmax
1659 #endif
1660 #ifdef VK_AMD_gpu_shader_int16
1661 #endif
1662 #ifdef VK_AMD_mixed_attachment_samples
1663 #endif
1664 #ifdef VK_AMD_shader_fragment_mask
1665 #endif
1666 #ifdef VK_EXT_shader_stencil_export
1667 #endif
1668 #ifdef VK_EXT_sample_locations
1669     void vkCmdSetSampleLocationsEXT(
1670     VkCommandBuffer commandBuffer,
1671         const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
1672     void vkGetPhysicalDeviceMultisamplePropertiesEXT(
1673     VkPhysicalDevice physicalDevice,
1674         VkSampleCountFlagBits samples,
1675         VkMultisamplePropertiesEXT* pMultisampleProperties);
1676 #endif
1677 #ifdef VK_EXT_blend_operation_advanced
1678 #endif
1679 #ifdef VK_NV_fragment_coverage_to_color
1680 #endif
1681 #ifdef VK_NV_framebuffer_mixed_samples
1682 #endif
1683 #ifdef VK_NV_fill_rectangle
1684 #endif
1685 #ifdef VK_EXT_post_depth_coverage
1686 #endif
1687 #ifdef VK_EXT_validation_cache
1688     VkResult vkCreateValidationCacheEXT(
1689     VkDevice device,
1690         const VkValidationCacheCreateInfoEXT* pCreateInfo,
1691         const VkAllocationCallbacks* pAllocator,
1692         VkValidationCacheEXT* pValidationCache);
1693     void vkDestroyValidationCacheEXT(
1694     VkDevice device,
1695         VkValidationCacheEXT validationCache,
1696         const VkAllocationCallbacks* pAllocator);
1697     VkResult vkMergeValidationCachesEXT(
1698     VkDevice device,
1699         VkValidationCacheEXT dstCache,
1700         uint32_t srcCacheCount,
1701         const VkValidationCacheEXT* pSrcCaches);
1702     VkResult vkGetValidationCacheDataEXT(
1703     VkDevice device,
1704         VkValidationCacheEXT validationCache,
1705         size_t* pDataSize,
1706         void* pData);
1707 #endif
1708 #ifdef VK_EXT_descriptor_indexing
1709 #endif
1710 #ifdef VK_EXT_shader_viewport_index_layer
1711 #endif
1712 #ifdef VK_EXT_global_priority
1713 #endif
1714 #ifdef VK_EXT_external_memory_host
1715     VkResult vkGetMemoryHostPointerPropertiesEXT(
1716     VkDevice device,
1717         VkExternalMemoryHandleTypeFlagBits handleType,
1718         const void* pHostPointer,
1719         VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
1720 #endif
1721 #ifdef VK_AMD_buffer_marker
1722     void vkCmdWriteBufferMarkerAMD(
1723     VkCommandBuffer commandBuffer,
1724         VkPipelineStageFlagBits pipelineStage,
1725         VkBuffer dstBuffer,
1726         VkDeviceSize dstOffset,
1727         uint32_t marker);
1728 #endif
1729 #ifdef VK_AMD_shader_core_properties
1730 #endif
1731 #ifdef VK_EXT_vertex_attribute_divisor
1732 #endif
1733 #ifdef VK_NV_shader_subgroup_partitioned
1734 #endif
1735 #ifdef VK_NV_device_diagnostic_checkpoints
1736     void vkCmdSetCheckpointNV(
1737     VkCommandBuffer commandBuffer,
1738         const void* pCheckpointMarker);
1739     void vkGetQueueCheckpointDataNV(
1740     VkQueue queue,
1741         uint32_t* pCheckpointDataCount,
1742         VkCheckpointDataNV* pCheckpointData);
1743 #endif
1744 #ifdef VK_GOOGLE_address_space
1745     VkResult vkMapMemoryIntoAddressSpaceGOOGLE(
1746     VkDevice device,
1747         VkDeviceMemory memory,
1748         uint64_t* pAddress);
1749 #endif
1750 #ifdef VK_GOOGLE_color_buffer
1751     VkResult vkRegisterImageColorBufferGOOGLE(
1752     VkDevice device,
1753         VkImage image,
1754         uint32_t colorBuffer);
1755     VkResult vkRegisterBufferColorBufferGOOGLE(
1756     VkDevice device,
1757         VkBuffer buffer,
1758         uint32_t colorBuffer);
1759 #endif
1760 #ifdef VK_GOOGLE_sized_descriptor_update_template
1761     void vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
1762     VkDevice device,
1763         VkDescriptorSet descriptorSet,
1764         VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1765         uint32_t imageInfoCount,
1766         uint32_t bufferInfoCount,
1767         uint32_t bufferViewCount,
1768         const uint32_t* pImageInfoEntryIndices,
1769         const uint32_t* pBufferInfoEntryIndices,
1770         const uint32_t* pBufferViewEntryIndices,
1771         const VkDescriptorImageInfo* pImageInfos,
1772         const VkDescriptorBufferInfo* pBufferInfos,
1773         const VkBufferView* pBufferViews);
1774 #endif
1775 #ifdef VK_GOOGLE_async_command_buffers
1776     void vkBeginCommandBufferAsyncGOOGLE(
1777     VkCommandBuffer commandBuffer,
1778         const VkCommandBufferBeginInfo* pBeginInfo);
1779     void vkEndCommandBufferAsyncGOOGLE(
1780     VkCommandBuffer commandBuffer);
1781     void vkResetCommandBufferAsyncGOOGLE(
1782     VkCommandBuffer commandBuffer,
1783         VkCommandBufferResetFlags flags);
1784 #endif
1785 
1786 private:
1787     class Impl;
1788     std::unique_ptr<Impl> mImpl;
1789 };
1790 
1791 } // namespace goldfish_vk
1792