Add AHardwareBuffer support to external memory tests
authorKhushal <khushalsagar@google.com>
Fri, 23 Mar 2018 23:57:18 +0000 (16:57 -0700)
committerKhushal Sagar <khushalsagar@google.com>
Mon, 26 Mar 2018 16:38:24 +0000 (16:38 +0000)
Added tests:
* dEQP-VK.api.external.memory.android_hardware_buffer.*

Components: Vulkan
VK-GL-CTS issue: 109
Test: Adds tests.
BUG: 75981905

Cherry-picked from: https://gerrit.khronos.org/#/c/1455/

Change-Id: Ibb6016eb932500c36309bf0937306ce84a4bae0c
(cherry picked from commit 0da925f6b91802440c735b3c6bc8f97b03268c32)

25 files changed:
android/cts/master/vk-master.txt
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
external/vulkancts/framework/vulkan/vkNullDriver.cpp
external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp
external/vulkancts/modules/vulkan/vktExternalMemoryUtil.cpp
external/vulkancts/modules/vulkan/vktExternalMemoryUtil.hpp
external/vulkancts/mustpass/1.1.0/vk-default-no-waivers.txt
external/vulkancts/mustpass/1.1.0/vk-default.txt
external/vulkancts/scripts/src/vulkan.h.in

index 70dbfa9..f976783 100755 (executable)
@@ -71336,6 +71336,30 @@ dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.info
 dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.bind_export_import_bind
 dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.export_bind_import_bind
 dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.device_only.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.device_only.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.host_visible.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.host_visible.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.info
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.info
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.device_only.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.device_only.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.host_visible.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.host_visible.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.info
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.info
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.export_import_bind_bind
 dEQP-VK.api.external.fence.sync_fd.info
 dEQP-VK.api.external.fence.sync_fd.import_twice_temporary
 dEQP-VK.api.external.fence.sync_fd.reimport_temporary
index 62941e4..80b13b2 100644 (file)
@@ -150,13 +150,6 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES                                                = 1000083000,
        VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS                                                                 = 1000127000,
        VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO                                                                = 1000127001,
-       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                  = 1000129000,
-       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID                                                 = 1000129001,
-       VK_STRUCTURE_TYPE_MEMORY_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID                             = 1000129002,
-       VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                                   = 1000129003,
-       VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                               = 1000129004,
-       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID    = 1000129005,
-       VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID                                                                               = 1000129006,
        VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO                                                                    = 1000060000,
        VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO                                                   = 1000060003,
        VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO                                                = 1000060004,
@@ -299,6 +292,12 @@ enum VkStructureType
        VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR                                                              = 1000121004,
        VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK                                                                   = 1000122000,
        VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK                                                                 = 1000123000,
+       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID                                                 = 1000129000,
+       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID                                    = 1000129001,
+       VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID                             = 1000129002,
+       VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                                   = 1000129003,
+       VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID                               = 1000129004,
+       VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID                                                                               = 1000129005,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT                  = 1000130000,
        VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT                                                = 1000130001,
        VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT                                                                             = 1000143000,
@@ -1226,6 +1225,9 @@ enum VkValidationCacheHeaderVersionEXT
 
 
 
+
+
+
 enum VkFormatFeatureFlagBits
 {
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT                                                                                                                             = 0x00000001,
@@ -1613,7 +1615,7 @@ enum VkExternalMemoryHandleTypeFlagBits
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT                            = 0x00000010,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT                                           = 0x00000020,
        VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT                                       = 0x00000040,
-       VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID      = 0x00000080,
+       VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID      = 0x00000400,
 };
 typedef deUint32 VkExternalMemoryHandleTypeFlags;
 
index 325746f..79b448a 100644 (file)
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-virtual void           destroyDevice                                                                   (VkDevice device, const VkAllocationCallbacks* pAllocator) const;
-virtual void           getDeviceQueue                                                                  (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue) const;
-virtual VkResult       queueSubmit                                                                             (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const;
-virtual VkResult       queueWaitIdle                                                                   (VkQueue queue) const;
-virtual VkResult       deviceWaitIdle                                                                  (VkDevice device) const;
-virtual VkResult       allocateMemory                                                                  (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const;
-virtual void           freeMemory                                                                              (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       mapMemory                                                                               (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const;
-virtual void           unmapMemory                                                                             (VkDevice device, VkDeviceMemory memory) const;
-virtual VkResult       flushMappedMemoryRanges                                                 (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
-virtual VkResult       invalidateMappedMemoryRanges                                    (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
-virtual void           getDeviceMemoryCommitment                                               (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const;
-virtual VkResult       bindBufferMemory                                                                (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
-virtual VkResult       bindImageMemory                                                                 (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
-virtual void           getBufferMemoryRequirements                                             (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const;
-virtual void           getImageMemoryRequirements                                              (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const;
-virtual void           getImageSparseMemoryRequirements                                (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const;
-virtual VkResult       queueBindSparse                                                                 (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const;
-virtual VkResult       createFence                                                                             (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
-virtual void           destroyFence                                                                    (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       resetFences                                                                             (VkDevice device, deUint32 fenceCount, const VkFence* pFences) const;
-virtual VkResult       getFenceStatus                                                                  (VkDevice device, VkFence fence) const;
-virtual VkResult       waitForFences                                                                   (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout) const;
-virtual VkResult       createSemaphore                                                                 (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const;
-virtual void           destroySemaphore                                                                (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createEvent                                                                             (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const;
-virtual void           destroyEvent                                                                    (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       getEventStatus                                                                  (VkDevice device, VkEvent event) const;
-virtual VkResult       setEvent                                                                                (VkDevice device, VkEvent event) const;
-virtual VkResult       resetEvent                                                                              (VkDevice device, VkEvent event) const;
-virtual VkResult       createQueryPool                                                                 (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const;
-virtual void           destroyQueryPool                                                                (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       getQueryPoolResults                                                             (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const;
-virtual VkResult       createBuffer                                                                    (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const;
-virtual void           destroyBuffer                                                                   (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createBufferView                                                                (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const;
-virtual void           destroyBufferView                                                               (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createImage                                                                             (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const;
-virtual void           destroyImage                                                                    (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const;
-virtual void           getImageSubresourceLayout                                               (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const;
-virtual VkResult       createImageView                                                                 (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const;
-virtual void           destroyImageView                                                                (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createShaderModule                                                              (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) const;
-virtual void           destroyShaderModule                                                             (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createPipelineCache                                                             (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const;
-virtual void           destroyPipelineCache                                                    (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       getPipelineCacheData                                                    (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData) const;
-virtual VkResult       mergePipelineCaches                                                             (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches) const;
-virtual VkResult       createGraphicsPipelines                                                 (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
-virtual VkResult       createComputePipelines                                                  (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
-virtual void           destroyPipeline                                                                 (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createPipelineLayout                                                    (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const;
-virtual void           destroyPipelineLayout                                                   (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createSampler                                                                   (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const;
-virtual void           destroySampler                                                                  (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createDescriptorSetLayout                                               (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const;
-virtual void           destroyDescriptorSetLayout                                              (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createDescriptorPool                                                    (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const;
-virtual void           destroyDescriptorPool                                                   (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       resetDescriptorPool                                                             (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const;
-virtual VkResult       allocateDescriptorSets                                                  (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const;
-virtual VkResult       freeDescriptorSets                                                              (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const;
-virtual void           updateDescriptorSets                                                    (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const;
-virtual VkResult       createFramebuffer                                                               (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const;
-virtual void           destroyFramebuffer                                                              (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createRenderPass                                                                (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const;
-virtual void           destroyRenderPass                                                               (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const;
-virtual void           getRenderAreaGranularity                                                (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const;
-virtual VkResult       createCommandPool                                                               (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const;
-virtual void           destroyCommandPool                                                              (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       resetCommandPool                                                                (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const;
-virtual VkResult       allocateCommandBuffers                                                  (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const;
-virtual void           freeCommandBuffers                                                              (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const;
-virtual VkResult       beginCommandBuffer                                                              (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const;
-virtual VkResult       endCommandBuffer                                                                (VkCommandBuffer commandBuffer) const;
-virtual VkResult       resetCommandBuffer                                                              (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const;
-virtual void           cmdBindPipeline                                                                 (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const;
-virtual void           cmdSetViewport                                                                  (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports) const;
-virtual void           cmdSetScissor                                                                   (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors) const;
-virtual void           cmdSetLineWidth                                                                 (VkCommandBuffer commandBuffer, float lineWidth) const;
-virtual void           cmdSetDepthBias                                                                 (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const;
-virtual void           cmdSetBlendConstants                                                    (VkCommandBuffer commandBuffer, const float blendConstants[4]) const;
-virtual void           cmdSetDepthBounds                                                               (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const;
-virtual void           cmdSetStencilCompareMask                                                (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask) const;
-virtual void           cmdSetStencilWriteMask                                                  (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask) const;
-virtual void           cmdSetStencilReference                                                  (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference) const;
-virtual void           cmdBindDescriptorSets                                                   (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets) const;
-virtual void           cmdBindIndexBuffer                                                              (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const;
-virtual void           cmdBindVertexBuffers                                                    (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const;
-virtual void           cmdDraw                                                                                 (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance) const;
-virtual void           cmdDrawIndexed                                                                  (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance) const;
-virtual void           cmdDrawIndirect                                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const;
-virtual void           cmdDrawIndexedIndirect                                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const;
-virtual void           cmdDispatch                                                                             (VkCommandBuffer commandBuffer, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const;
-virtual void           cmdDispatchIndirect                                                             (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const;
-virtual void           cmdCopyBuffer                                                                   (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions) const;
-virtual void           cmdCopyImage                                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions) const;
-virtual void           cmdBlitImage                                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter) const;
-virtual void           cmdCopyBufferToImage                                                    (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions) const;
-virtual void           cmdCopyImageToBuffer                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions) const;
-virtual void           cmdUpdateBuffer                                                                 (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const;
-virtual void           cmdFillBuffer                                                                   (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data) const;
-virtual void           cmdClearColorImage                                                              (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const;
-virtual void           cmdClearDepthStencilImage                                               (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const;
-virtual void           cmdClearAttachments                                                             (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects) const;
-virtual void           cmdResolveImage                                                                 (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions) const;
-virtual void           cmdSetEvent                                                                             (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const;
-virtual void           cmdResetEvent                                                                   (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const;
-virtual void           cmdWaitEvents                                                                   (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const;
-virtual void           cmdPipelineBarrier                                                              (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const;
-virtual void           cmdBeginQuery                                                                   (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags) const;
-virtual void           cmdEndQuery                                                                             (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query) const;
-virtual void           cmdResetQueryPool                                                               (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount) const;
-virtual void           cmdWriteTimestamp                                                               (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query) const;
-virtual void           cmdCopyQueryPoolResults                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const;
-virtual void           cmdPushConstants                                                                (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues) const;
-virtual void           cmdBeginRenderPass                                                              (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const;
-virtual void           cmdNextSubpass                                                                  (VkCommandBuffer commandBuffer, VkSubpassContents contents) const;
-virtual void           cmdEndRenderPass                                                                (VkCommandBuffer commandBuffer) const;
-virtual void           cmdExecuteCommands                                                              (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const;
-virtual VkResult       bindBufferMemory2                                                               (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const;
-virtual VkResult       bindImageMemory2                                                                (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const;
-virtual void           getDeviceGroupPeerMemoryFeatures                                (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const;
-virtual void           cmdSetDeviceMask                                                                (VkCommandBuffer commandBuffer, deUint32 deviceMask) const;
-virtual void           cmdDispatchBase                                                                 (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const;
-virtual void           getImageMemoryRequirements2                                             (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
-virtual void           getBufferMemoryRequirements2                                    (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
-virtual void           getImageSparseMemoryRequirements2                               (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const;
-virtual void           trimCommandPool                                                                 (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const;
-virtual void           getDeviceQueue2                                                                 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const;
-virtual VkResult       createSamplerYcbcrConversion                                    (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const;
-virtual void           destroySamplerYcbcrConversion                                   (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createDescriptorUpdateTemplate                                  (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const;
-virtual void           destroyDescriptorUpdateTemplate                                 (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const;
-virtual void           updateDescriptorSetWithTemplate                                 (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const;
-virtual void           getDescriptorSetLayoutSupport                                   (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const;
-virtual VkResult       createSwapchainKHR                                                              (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const;
-virtual void           destroySwapchainKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       getSwapchainImagesKHR                                                   (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages) const;
-virtual VkResult       acquireNextImageKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const;
-virtual VkResult       queuePresentKHR                                                                 (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const;
-virtual VkResult       getDeviceGroupPresentCapabilitiesKHR                    (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const;
-virtual VkResult       getDeviceGroupSurfacePresentModesKHR                    (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const;
-virtual VkResult       acquireNextImage2KHR                                                    (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex) const;
-virtual VkResult       createSharedSwapchainsKHR                                               (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const;
-virtual VkResult       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
-virtual VkResult       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const;
-virtual VkResult       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const;
-virtual VkResult       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const;
-virtual VkResult       importSemaphoreWin32HandleKHR                                   (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const;
-virtual VkResult       getSemaphoreWin32HandleKHR                                              (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
-virtual VkResult       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const;
-virtual VkResult       getSemaphoreFdKHR                                                               (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const;
-virtual void           cmdPushDescriptorSetKHR                                                 (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const;
-virtual void           cmdPushDescriptorSetWithTemplateKHR                             (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, deUint32 set, const void* pData) const;
-virtual VkResult       getSwapchainStatusKHR                                                   (VkDevice device, VkSwapchainKHR swapchain) const;
-virtual VkResult       importFenceWin32HandleKHR                                               (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const;
-virtual VkResult       getFenceWin32HandleKHR                                                  (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
-virtual VkResult       importFenceFdKHR                                                                (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const;
-virtual VkResult       getFenceFdKHR                                                                   (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const;
-virtual VkResult       debugMarkerSetObjectTagEXT                                              (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const;
-virtual VkResult       debugMarkerSetObjectNameEXT                                             (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const;
-virtual void           cmdDebugMarkerBeginEXT                                                  (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
-virtual void           cmdDebugMarkerEndEXT                                                    (VkCommandBuffer commandBuffer) const;
-virtual void           cmdDebugMarkerInsertEXT                                                 (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
-virtual void           cmdDrawIndirectCountAMD                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
-virtual void           cmdDrawIndexedIndirectCountAMD                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
-virtual VkResult       getMemoryWin32HandleNV                                                  (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const;
-virtual void           cmdProcessCommandsNVX                                                   (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const;
-virtual void           cmdReserveSpaceForCommandsNVX                                   (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const;
-virtual VkResult       createIndirectCommandsLayoutNVX                                 (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const;
-virtual void           destroyIndirectCommandsLayoutNVX                                (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       createObjectTableNVX                                                    (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const;
-virtual void           destroyObjectTableNVX                                                   (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       registerObjectsNVX                                                              (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const;
-virtual VkResult       unregisterObjectsNVX                                                    (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const;
-virtual void           cmdSetViewportWScalingNV                                                (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings) const;
-virtual VkResult       displayPowerControlEXT                                                  (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const;
-virtual VkResult       registerDeviceEventEXT                                                  (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
-virtual VkResult       registerDisplayEventEXT                                                 (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
-virtual VkResult       getSwapchainCounterEXT                                                  (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue) const;
-virtual VkResult       getRefreshCycleDurationGOOGLE                                   (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const;
-virtual VkResult       getPastPresentationTimingGOOGLE                                 (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const;
-virtual void           cmdSetDiscardRectangleEXT                                               (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles) const;
-virtual void           setHdrMetadataEXT                                                               (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const;
-virtual void           cmdSetSampleLocationsEXT                                                (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const;
-virtual VkResult       createValidationCacheEXT                                                (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const;
-virtual void           destroyValidationCacheEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult       mergeValidationCachesEXT                                                (VkDevice device, VkValidationCacheEXT dstCache, deUint32 srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const;
-virtual VkResult       getValidationCacheDataEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, deUintptr* pDataSize, void* pData) const;
-virtual VkResult       getMemoryAndroidHardwareBufferPropertiesANDROID (VkDevice device, const pt::AndroidHardwareBufferPtr buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties) const;
-virtual VkResult       getMemoryAndroidHardwareBufferANDROID                   (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, pt::AndroidHardwareBufferPtr* pBuffer) const;
+virtual void           destroyDevice                                                           (VkDevice device, const VkAllocationCallbacks* pAllocator) const;
+virtual void           getDeviceQueue                                                          (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue) const;
+virtual VkResult       queueSubmit                                                                     (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const;
+virtual VkResult       queueWaitIdle                                                           (VkQueue queue) const;
+virtual VkResult       deviceWaitIdle                                                          (VkDevice device) const;
+virtual VkResult       allocateMemory                                                          (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const;
+virtual void           freeMemory                                                                      (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       mapMemory                                                                       (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const;
+virtual void           unmapMemory                                                                     (VkDevice device, VkDeviceMemory memory) const;
+virtual VkResult       flushMappedMemoryRanges                                         (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
+virtual VkResult       invalidateMappedMemoryRanges                            (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const;
+virtual void           getDeviceMemoryCommitment                                       (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const;
+virtual VkResult       bindBufferMemory                                                        (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
+virtual VkResult       bindImageMemory                                                         (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const;
+virtual void           getBufferMemoryRequirements                                     (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const;
+virtual void           getImageMemoryRequirements                                      (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const;
+virtual void           getImageSparseMemoryRequirements                        (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const;
+virtual VkResult       queueBindSparse                                                         (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const;
+virtual VkResult       createFence                                                                     (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
+virtual void           destroyFence                                                            (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       resetFences                                                                     (VkDevice device, deUint32 fenceCount, const VkFence* pFences) const;
+virtual VkResult       getFenceStatus                                                          (VkDevice device, VkFence fence) const;
+virtual VkResult       waitForFences                                                           (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout) const;
+virtual VkResult       createSemaphore                                                         (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const;
+virtual void           destroySemaphore                                                        (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createEvent                                                                     (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const;
+virtual void           destroyEvent                                                            (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       getEventStatus                                                          (VkDevice device, VkEvent event) const;
+virtual VkResult       setEvent                                                                        (VkDevice device, VkEvent event) const;
+virtual VkResult       resetEvent                                                                      (VkDevice device, VkEvent event) const;
+virtual VkResult       createQueryPool                                                         (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const;
+virtual void           destroyQueryPool                                                        (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       getQueryPoolResults                                                     (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const;
+virtual VkResult       createBuffer                                                            (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const;
+virtual void           destroyBuffer                                                           (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createBufferView                                                        (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const;
+virtual void           destroyBufferView                                                       (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createImage                                                                     (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const;
+virtual void           destroyImage                                                            (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const;
+virtual void           getImageSubresourceLayout                                       (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const;
+virtual VkResult       createImageView                                                         (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const;
+virtual void           destroyImageView                                                        (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createShaderModule                                                      (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) const;
+virtual void           destroyShaderModule                                                     (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createPipelineCache                                                     (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const;
+virtual void           destroyPipelineCache                                            (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       getPipelineCacheData                                            (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData) const;
+virtual VkResult       mergePipelineCaches                                                     (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches) const;
+virtual VkResult       createGraphicsPipelines                                         (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
+virtual VkResult       createComputePipelines                                          (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
+virtual void           destroyPipeline                                                         (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createPipelineLayout                                            (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const;
+virtual void           destroyPipelineLayout                                           (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createSampler                                                           (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const;
+virtual void           destroySampler                                                          (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createDescriptorSetLayout                                       (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const;
+virtual void           destroyDescriptorSetLayout                                      (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createDescriptorPool                                            (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const;
+virtual void           destroyDescriptorPool                                           (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       resetDescriptorPool                                                     (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const;
+virtual VkResult       allocateDescriptorSets                                          (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const;
+virtual VkResult       freeDescriptorSets                                                      (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const;
+virtual void           updateDescriptorSets                                            (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const;
+virtual VkResult       createFramebuffer                                                       (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const;
+virtual void           destroyFramebuffer                                                      (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createRenderPass                                                        (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const;
+virtual void           destroyRenderPass                                                       (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const;
+virtual void           getRenderAreaGranularity                                        (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const;
+virtual VkResult       createCommandPool                                                       (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const;
+virtual void           destroyCommandPool                                                      (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       resetCommandPool                                                        (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const;
+virtual VkResult       allocateCommandBuffers                                          (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const;
+virtual void           freeCommandBuffers                                                      (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const;
+virtual VkResult       beginCommandBuffer                                                      (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const;
+virtual VkResult       endCommandBuffer                                                        (VkCommandBuffer commandBuffer) const;
+virtual VkResult       resetCommandBuffer                                                      (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const;
+virtual void           cmdBindPipeline                                                         (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const;
+virtual void           cmdSetViewport                                                          (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports) const;
+virtual void           cmdSetScissor                                                           (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors) const;
+virtual void           cmdSetLineWidth                                                         (VkCommandBuffer commandBuffer, float lineWidth) const;
+virtual void           cmdSetDepthBias                                                         (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const;
+virtual void           cmdSetBlendConstants                                            (VkCommandBuffer commandBuffer, const float blendConstants[4]) const;
+virtual void           cmdSetDepthBounds                                                       (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const;
+virtual void           cmdSetStencilCompareMask                                        (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask) const;
+virtual void           cmdSetStencilWriteMask                                          (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask) const;
+virtual void           cmdSetStencilReference                                          (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference) const;
+virtual void           cmdBindDescriptorSets                                           (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets) const;
+virtual void           cmdBindIndexBuffer                                                      (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const;
+virtual void           cmdBindVertexBuffers                                            (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const;
+virtual void           cmdDraw                                                                         (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance) const;
+virtual void           cmdDrawIndexed                                                          (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance) const;
+virtual void           cmdDrawIndirect                                                         (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const;
+virtual void           cmdDrawIndexedIndirect                                          (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const;
+virtual void           cmdDispatch                                                                     (VkCommandBuffer commandBuffer, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const;
+virtual void           cmdDispatchIndirect                                                     (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const;
+virtual void           cmdCopyBuffer                                                           (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions) const;
+virtual void           cmdCopyImage                                                            (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions) const;
+virtual void           cmdBlitImage                                                            (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter) const;
+virtual void           cmdCopyBufferToImage                                            (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions) const;
+virtual void           cmdCopyImageToBuffer                                            (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions) const;
+virtual void           cmdUpdateBuffer                                                         (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const;
+virtual void           cmdFillBuffer                                                           (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data) const;
+virtual void           cmdClearColorImage                                                      (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const;
+virtual void           cmdClearDepthStencilImage                                       (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const;
+virtual void           cmdClearAttachments                                                     (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects) const;
+virtual void           cmdResolveImage                                                         (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions) const;
+virtual void           cmdSetEvent                                                                     (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const;
+virtual void           cmdResetEvent                                                           (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const;
+virtual void           cmdWaitEvents                                                           (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const;
+virtual void           cmdPipelineBarrier                                                      (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const;
+virtual void           cmdBeginQuery                                                           (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags) const;
+virtual void           cmdEndQuery                                                                     (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query) const;
+virtual void           cmdResetQueryPool                                                       (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount) const;
+virtual void           cmdWriteTimestamp                                                       (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query) const;
+virtual void           cmdCopyQueryPoolResults                                         (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const;
+virtual void           cmdPushConstants                                                        (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues) const;
+virtual void           cmdBeginRenderPass                                                      (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const;
+virtual void           cmdNextSubpass                                                          (VkCommandBuffer commandBuffer, VkSubpassContents contents) const;
+virtual void           cmdEndRenderPass                                                        (VkCommandBuffer commandBuffer) const;
+virtual void           cmdExecuteCommands                                                      (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const;
+virtual VkResult       bindBufferMemory2                                                       (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const;
+virtual VkResult       bindImageMemory2                                                        (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const;
+virtual void           getDeviceGroupPeerMemoryFeatures                        (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const;
+virtual void           cmdSetDeviceMask                                                        (VkCommandBuffer commandBuffer, deUint32 deviceMask) const;
+virtual void           cmdDispatchBase                                                         (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const;
+virtual void           getImageMemoryRequirements2                                     (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
+virtual void           getBufferMemoryRequirements2                            (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
+virtual void           getImageSparseMemoryRequirements2                       (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const;
+virtual void           trimCommandPool                                                         (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const;
+virtual void           getDeviceQueue2                                                         (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const;
+virtual VkResult       createSamplerYcbcrConversion                            (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const;
+virtual void           destroySamplerYcbcrConversion                           (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createDescriptorUpdateTemplate                          (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const;
+virtual void           destroyDescriptorUpdateTemplate                         (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const;
+virtual void           updateDescriptorSetWithTemplate                         (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const;
+virtual void           getDescriptorSetLayoutSupport                           (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const;
+virtual VkResult       createSwapchainKHR                                                      (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const;
+virtual void           destroySwapchainKHR                                                     (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       getSwapchainImagesKHR                                           (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages) const;
+virtual VkResult       acquireNextImageKHR                                                     (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const;
+virtual VkResult       queuePresentKHR                                                         (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const;
+virtual VkResult       getDeviceGroupPresentCapabilitiesKHR            (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const;
+virtual VkResult       getDeviceGroupSurfacePresentModesKHR            (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const;
+virtual VkResult       acquireNextImage2KHR                                            (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex) const;
+virtual VkResult       createSharedSwapchainsKHR                                       (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const;
+virtual VkResult       getMemoryWin32HandleKHR                                         (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
+virtual VkResult       getMemoryWin32HandlePropertiesKHR                       (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const;
+virtual VkResult       getMemoryFdKHR                                                          (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const;
+virtual VkResult       getMemoryFdPropertiesKHR                                        (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const;
+virtual VkResult       importSemaphoreWin32HandleKHR                           (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const;
+virtual VkResult       getSemaphoreWin32HandleKHR                                      (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
+virtual VkResult       importSemaphoreFdKHR                                            (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const;
+virtual VkResult       getSemaphoreFdKHR                                                       (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const;
+virtual void           cmdPushDescriptorSetKHR                                         (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const;
+virtual void           cmdPushDescriptorSetWithTemplateKHR                     (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, deUint32 set, const void* pData) const;
+virtual VkResult       getSwapchainStatusKHR                                           (VkDevice device, VkSwapchainKHR swapchain) const;
+virtual VkResult       importFenceWin32HandleKHR                                       (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const;
+virtual VkResult       getFenceWin32HandleKHR                                          (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
+virtual VkResult       importFenceFdKHR                                                        (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const;
+virtual VkResult       getFenceFdKHR                                                           (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const;
+virtual VkResult       debugMarkerSetObjectTagEXT                                      (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const;
+virtual VkResult       debugMarkerSetObjectNameEXT                                     (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const;
+virtual void           cmdDebugMarkerBeginEXT                                          (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
+virtual void           cmdDebugMarkerEndEXT                                            (VkCommandBuffer commandBuffer) const;
+virtual void           cmdDebugMarkerInsertEXT                                         (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const;
+virtual void           cmdDrawIndirectCountAMD                                         (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
+virtual void           cmdDrawIndexedIndirectCountAMD                          (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
+virtual VkResult       getMemoryWin32HandleNV                                          (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const;
+virtual void           cmdProcessCommandsNVX                                           (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const;
+virtual void           cmdReserveSpaceForCommandsNVX                           (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const;
+virtual VkResult       createIndirectCommandsLayoutNVX                         (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const;
+virtual void           destroyIndirectCommandsLayoutNVX                        (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       createObjectTableNVX                                            (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const;
+virtual void           destroyObjectTableNVX                                           (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       registerObjectsNVX                                                      (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const;
+virtual VkResult       unregisterObjectsNVX                                            (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const;
+virtual void           cmdSetViewportWScalingNV                                        (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings) const;
+virtual VkResult       displayPowerControlEXT                                          (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const;
+virtual VkResult       registerDeviceEventEXT                                          (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
+virtual VkResult       registerDisplayEventEXT                                         (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
+virtual VkResult       getSwapchainCounterEXT                                          (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue) const;
+virtual VkResult       getRefreshCycleDurationGOOGLE                           (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const;
+virtual VkResult       getPastPresentationTimingGOOGLE                         (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const;
+virtual void           cmdSetDiscardRectangleEXT                                       (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles) const;
+virtual void           setHdrMetadataEXT                                                       (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const;
+virtual void           cmdSetSampleLocationsEXT                                        (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const;
+virtual VkResult       createValidationCacheEXT                                        (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const;
+virtual void           destroyValidationCacheEXT                                       (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult       mergeValidationCachesEXT                                        (VkDevice device, VkValidationCacheEXT dstCache, deUint32 srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const;
+virtual VkResult       getValidationCacheDataEXT                                       (VkDevice device, VkValidationCacheEXT validationCache, deUintptr* pDataSize, void* pData) const;
+virtual VkResult       getAndroidHardwareBufferPropertiesANDROID       (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const;
+virtual VkResult       getMemoryAndroidHardwareBufferANDROID           (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const;
index c6bfbc1..08d7a0a 100644 (file)
@@ -64,4 +64,3 @@ virtual VkResult                      getPhysicalDeviceSurfaceCapabilities2EXT                        (VkPhysicalDevice
 virtual VkResult                       createIOSSurfaceMVK                                                                     (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
 virtual VkResult                       createMacOSSurfaceMVK                                                           (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const;
 virtual void                           getPhysicalDeviceMultisamplePropertiesEXT                       (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const;
-virtual void                           getPhysicalDeviceAndroidHardwareBufferUsageANDROID      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage) const;
index 38e716e..0a7842a 100644 (file)
@@ -952,12 +952,12 @@ VkResult DeviceDriver::getValidationCacheDataEXT (VkDevice device, VkValidationC
        return m_vk.getValidationCacheDataEXT(device, validationCache, pDataSize, pData);
 }
 
-VkResult DeviceDriver::getMemoryAndroidHardwareBufferPropertiesANDROID (VkDevice device, const pt::AndroidHardwareBufferPtr buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties) const
+VkResult DeviceDriver::getAndroidHardwareBufferPropertiesANDROID (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const
 {
-       return m_vk.getMemoryAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
+       return m_vk.getAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
 }
 
-VkResult DeviceDriver::getMemoryAndroidHardwareBufferANDROID (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, pt::AndroidHardwareBufferPtr* pBuffer) const
+VkResult DeviceDriver::getMemoryAndroidHardwareBufferANDROID (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const
 {
        return m_vk.getMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
 }
index 331aa7b..ae069e2 100644 (file)
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-DestroyDeviceFunc                                                                      destroyDevice;
-GetDeviceQueueFunc                                                                     getDeviceQueue;
-QueueSubmitFunc                                                                                queueSubmit;
-QueueWaitIdleFunc                                                                      queueWaitIdle;
-DeviceWaitIdleFunc                                                                     deviceWaitIdle;
-AllocateMemoryFunc                                                                     allocateMemory;
-FreeMemoryFunc                                                                         freeMemory;
-MapMemoryFunc                                                                          mapMemory;
-UnmapMemoryFunc                                                                                unmapMemory;
-FlushMappedMemoryRangesFunc                                                    flushMappedMemoryRanges;
-InvalidateMappedMemoryRangesFunc                                       invalidateMappedMemoryRanges;
-GetDeviceMemoryCommitmentFunc                                          getDeviceMemoryCommitment;
-BindBufferMemoryFunc                                                           bindBufferMemory;
-BindImageMemoryFunc                                                                    bindImageMemory;
-GetBufferMemoryRequirementsFunc                                                getBufferMemoryRequirements;
-GetImageMemoryRequirementsFunc                                         getImageMemoryRequirements;
-GetImageSparseMemoryRequirementsFunc                           getImageSparseMemoryRequirements;
-QueueBindSparseFunc                                                                    queueBindSparse;
-CreateFenceFunc                                                                                createFence;
-DestroyFenceFunc                                                                       destroyFence;
-ResetFencesFunc                                                                                resetFences;
-GetFenceStatusFunc                                                                     getFenceStatus;
-WaitForFencesFunc                                                                      waitForFences;
-CreateSemaphoreFunc                                                                    createSemaphore;
-DestroySemaphoreFunc                                                           destroySemaphore;
-CreateEventFunc                                                                                createEvent;
-DestroyEventFunc                                                                       destroyEvent;
-GetEventStatusFunc                                                                     getEventStatus;
-SetEventFunc                                                                           setEvent;
-ResetEventFunc                                                                         resetEvent;
-CreateQueryPoolFunc                                                                    createQueryPool;
-DestroyQueryPoolFunc                                                           destroyQueryPool;
-GetQueryPoolResultsFunc                                                                getQueryPoolResults;
-CreateBufferFunc                                                                       createBuffer;
-DestroyBufferFunc                                                                      destroyBuffer;
-CreateBufferViewFunc                                                           createBufferView;
-DestroyBufferViewFunc                                                          destroyBufferView;
-CreateImageFunc                                                                                createImage;
-DestroyImageFunc                                                                       destroyImage;
-GetImageSubresourceLayoutFunc                                          getImageSubresourceLayout;
-CreateImageViewFunc                                                                    createImageView;
-DestroyImageViewFunc                                                           destroyImageView;
-CreateShaderModuleFunc                                                         createShaderModule;
-DestroyShaderModuleFunc                                                                destroyShaderModule;
-CreatePipelineCacheFunc                                                                createPipelineCache;
-DestroyPipelineCacheFunc                                                       destroyPipelineCache;
-GetPipelineCacheDataFunc                                                       getPipelineCacheData;
-MergePipelineCachesFunc                                                                mergePipelineCaches;
-CreateGraphicsPipelinesFunc                                                    createGraphicsPipelines;
-CreateComputePipelinesFunc                                                     createComputePipelines;
-DestroyPipelineFunc                                                                    destroyPipeline;
-CreatePipelineLayoutFunc                                                       createPipelineLayout;
-DestroyPipelineLayoutFunc                                                      destroyPipelineLayout;
-CreateSamplerFunc                                                                      createSampler;
-DestroySamplerFunc                                                                     destroySampler;
-CreateDescriptorSetLayoutFunc                                          createDescriptorSetLayout;
-DestroyDescriptorSetLayoutFunc                                         destroyDescriptorSetLayout;
-CreateDescriptorPoolFunc                                                       createDescriptorPool;
-DestroyDescriptorPoolFunc                                                      destroyDescriptorPool;
-ResetDescriptorPoolFunc                                                                resetDescriptorPool;
-AllocateDescriptorSetsFunc                                                     allocateDescriptorSets;
-FreeDescriptorSetsFunc                                                         freeDescriptorSets;
-UpdateDescriptorSetsFunc                                                       updateDescriptorSets;
-CreateFramebufferFunc                                                          createFramebuffer;
-DestroyFramebufferFunc                                                         destroyFramebuffer;
-CreateRenderPassFunc                                                           createRenderPass;
-DestroyRenderPassFunc                                                          destroyRenderPass;
-GetRenderAreaGranularityFunc                                           getRenderAreaGranularity;
-CreateCommandPoolFunc                                                          createCommandPool;
-DestroyCommandPoolFunc                                                         destroyCommandPool;
-ResetCommandPoolFunc                                                           resetCommandPool;
-AllocateCommandBuffersFunc                                                     allocateCommandBuffers;
-FreeCommandBuffersFunc                                                         freeCommandBuffers;
-BeginCommandBufferFunc                                                         beginCommandBuffer;
-EndCommandBufferFunc                                                           endCommandBuffer;
-ResetCommandBufferFunc                                                         resetCommandBuffer;
-CmdBindPipelineFunc                                                                    cmdBindPipeline;
-CmdSetViewportFunc                                                                     cmdSetViewport;
-CmdSetScissorFunc                                                                      cmdSetScissor;
-CmdSetLineWidthFunc                                                                    cmdSetLineWidth;
-CmdSetDepthBiasFunc                                                                    cmdSetDepthBias;
-CmdSetBlendConstantsFunc                                                       cmdSetBlendConstants;
-CmdSetDepthBoundsFunc                                                          cmdSetDepthBounds;
-CmdSetStencilCompareMaskFunc                                           cmdSetStencilCompareMask;
-CmdSetStencilWriteMaskFunc                                                     cmdSetStencilWriteMask;
-CmdSetStencilReferenceFunc                                                     cmdSetStencilReference;
-CmdBindDescriptorSetsFunc                                                      cmdBindDescriptorSets;
-CmdBindIndexBufferFunc                                                         cmdBindIndexBuffer;
-CmdBindVertexBuffersFunc                                                       cmdBindVertexBuffers;
-CmdDrawFunc                                                                                    cmdDraw;
-CmdDrawIndexedFunc                                                                     cmdDrawIndexed;
-CmdDrawIndirectFunc                                                                    cmdDrawIndirect;
-CmdDrawIndexedIndirectFunc                                                     cmdDrawIndexedIndirect;
-CmdDispatchFunc                                                                                cmdDispatch;
-CmdDispatchIndirectFunc                                                                cmdDispatchIndirect;
-CmdCopyBufferFunc                                                                      cmdCopyBuffer;
-CmdCopyImageFunc                                                                       cmdCopyImage;
-CmdBlitImageFunc                                                                       cmdBlitImage;
-CmdCopyBufferToImageFunc                                                       cmdCopyBufferToImage;
-CmdCopyImageToBufferFunc                                                       cmdCopyImageToBuffer;
-CmdUpdateBufferFunc                                                                    cmdUpdateBuffer;
-CmdFillBufferFunc                                                                      cmdFillBuffer;
-CmdClearColorImageFunc                                                         cmdClearColorImage;
-CmdClearDepthStencilImageFunc                                          cmdClearDepthStencilImage;
-CmdClearAttachmentsFunc                                                                cmdClearAttachments;
-CmdResolveImageFunc                                                                    cmdResolveImage;
-CmdSetEventFunc                                                                                cmdSetEvent;
-CmdResetEventFunc                                                                      cmdResetEvent;
-CmdWaitEventsFunc                                                                      cmdWaitEvents;
-CmdPipelineBarrierFunc                                                         cmdPipelineBarrier;
-CmdBeginQueryFunc                                                                      cmdBeginQuery;
-CmdEndQueryFunc                                                                                cmdEndQuery;
-CmdResetQueryPoolFunc                                                          cmdResetQueryPool;
-CmdWriteTimestampFunc                                                          cmdWriteTimestamp;
-CmdCopyQueryPoolResultsFunc                                                    cmdCopyQueryPoolResults;
-CmdPushConstantsFunc                                                           cmdPushConstants;
-CmdBeginRenderPassFunc                                                         cmdBeginRenderPass;
-CmdNextSubpassFunc                                                                     cmdNextSubpass;
-CmdEndRenderPassFunc                                                           cmdEndRenderPass;
-CmdExecuteCommandsFunc                                                         cmdExecuteCommands;
-BindBufferMemory2Func                                                          bindBufferMemory2;
-BindImageMemory2Func                                                           bindImageMemory2;
-GetDeviceGroupPeerMemoryFeaturesFunc                           getDeviceGroupPeerMemoryFeatures;
-CmdSetDeviceMaskFunc                                                           cmdSetDeviceMask;
-CmdDispatchBaseFunc                                                                    cmdDispatchBase;
-GetImageMemoryRequirements2Func                                                getImageMemoryRequirements2;
-GetBufferMemoryRequirements2Func                                       getBufferMemoryRequirements2;
-GetImageSparseMemoryRequirements2Func                          getImageSparseMemoryRequirements2;
-TrimCommandPoolFunc                                                                    trimCommandPool;
-GetDeviceQueue2Func                                                                    getDeviceQueue2;
-CreateSamplerYcbcrConversionFunc                                       createSamplerYcbcrConversion;
-DestroySamplerYcbcrConversionFunc                                      destroySamplerYcbcrConversion;
-CreateDescriptorUpdateTemplateFunc                                     createDescriptorUpdateTemplate;
-DestroyDescriptorUpdateTemplateFunc                                    destroyDescriptorUpdateTemplate;
-UpdateDescriptorSetWithTemplateFunc                                    updateDescriptorSetWithTemplate;
-GetDescriptorSetLayoutSupportFunc                                      getDescriptorSetLayoutSupport;
-CreateSwapchainKHRFunc                                                         createSwapchainKHR;
-DestroySwapchainKHRFunc                                                                destroySwapchainKHR;
-GetSwapchainImagesKHRFunc                                                      getSwapchainImagesKHR;
-AcquireNextImageKHRFunc                                                                acquireNextImageKHR;
-QueuePresentKHRFunc                                                                    queuePresentKHR;
-GetDeviceGroupPresentCapabilitiesKHRFunc                       getDeviceGroupPresentCapabilitiesKHR;
-GetDeviceGroupSurfacePresentModesKHRFunc                       getDeviceGroupSurfacePresentModesKHR;
-AcquireNextImage2KHRFunc                                                       acquireNextImage2KHR;
-CreateSharedSwapchainsKHRFunc                                          createSharedSwapchainsKHR;
-GetMemoryWin32HandleKHRFunc                                                    getMemoryWin32HandleKHR;
-GetMemoryWin32HandlePropertiesKHRFunc                          getMemoryWin32HandlePropertiesKHR;
-GetMemoryFdKHRFunc                                                                     getMemoryFdKHR;
-GetMemoryFdPropertiesKHRFunc                                           getMemoryFdPropertiesKHR;
-ImportSemaphoreWin32HandleKHRFunc                                      importSemaphoreWin32HandleKHR;
-GetSemaphoreWin32HandleKHRFunc                                         getSemaphoreWin32HandleKHR;
-ImportSemaphoreFdKHRFunc                                                       importSemaphoreFdKHR;
-GetSemaphoreFdKHRFunc                                                          getSemaphoreFdKHR;
-CmdPushDescriptorSetKHRFunc                                                    cmdPushDescriptorSetKHR;
-CmdPushDescriptorSetWithTemplateKHRFunc                                cmdPushDescriptorSetWithTemplateKHR;
-GetSwapchainStatusKHRFunc                                                      getSwapchainStatusKHR;
-ImportFenceWin32HandleKHRFunc                                          importFenceWin32HandleKHR;
-GetFenceWin32HandleKHRFunc                                                     getFenceWin32HandleKHR;
-ImportFenceFdKHRFunc                                                           importFenceFdKHR;
-GetFenceFdKHRFunc                                                                      getFenceFdKHR;
-DebugMarkerSetObjectTagEXTFunc                                         debugMarkerSetObjectTagEXT;
-DebugMarkerSetObjectNameEXTFunc                                                debugMarkerSetObjectNameEXT;
-CmdDebugMarkerBeginEXTFunc                                                     cmdDebugMarkerBeginEXT;
-CmdDebugMarkerEndEXTFunc                                                       cmdDebugMarkerEndEXT;
-CmdDebugMarkerInsertEXTFunc                                                    cmdDebugMarkerInsertEXT;
-CmdDrawIndirectCountAMDFunc                                                    cmdDrawIndirectCountAMD;
-CmdDrawIndexedIndirectCountAMDFunc                                     cmdDrawIndexedIndirectCountAMD;
-GetMemoryWin32HandleNVFunc                                                     getMemoryWin32HandleNV;
-CmdProcessCommandsNVXFunc                                                      cmdProcessCommandsNVX;
-CmdReserveSpaceForCommandsNVXFunc                                      cmdReserveSpaceForCommandsNVX;
-CreateIndirectCommandsLayoutNVXFunc                                    createIndirectCommandsLayoutNVX;
-DestroyIndirectCommandsLayoutNVXFunc                           destroyIndirectCommandsLayoutNVX;
-CreateObjectTableNVXFunc                                                       createObjectTableNVX;
-DestroyObjectTableNVXFunc                                                      destroyObjectTableNVX;
-RegisterObjectsNVXFunc                                                         registerObjectsNVX;
-UnregisterObjectsNVXFunc                                                       unregisterObjectsNVX;
-CmdSetViewportWScalingNVFunc                                           cmdSetViewportWScalingNV;
-DisplayPowerControlEXTFunc                                                     displayPowerControlEXT;
-RegisterDeviceEventEXTFunc                                                     registerDeviceEventEXT;
-RegisterDisplayEventEXTFunc                                                    registerDisplayEventEXT;
-GetSwapchainCounterEXTFunc                                                     getSwapchainCounterEXT;
-GetRefreshCycleDurationGOOGLEFunc                                      getRefreshCycleDurationGOOGLE;
-GetPastPresentationTimingGOOGLEFunc                                    getPastPresentationTimingGOOGLE;
-CmdSetDiscardRectangleEXTFunc                                          cmdSetDiscardRectangleEXT;
-SetHdrMetadataEXTFunc                                                          setHdrMetadataEXT;
-CmdSetSampleLocationsEXTFunc                                           cmdSetSampleLocationsEXT;
-CreateValidationCacheEXTFunc                                           createValidationCacheEXT;
-DestroyValidationCacheEXTFunc                                          destroyValidationCacheEXT;
-MergeValidationCachesEXTFunc                                           mergeValidationCachesEXT;
-GetValidationCacheDataEXTFunc                                          getValidationCacheDataEXT;
-GetMemoryAndroidHardwareBufferPropertiesANDROIDFunc    getMemoryAndroidHardwareBufferPropertiesANDROID;
-GetMemoryAndroidHardwareBufferANDROIDFunc                      getMemoryAndroidHardwareBufferANDROID;
+DestroyDeviceFunc                                                              destroyDevice;
+GetDeviceQueueFunc                                                             getDeviceQueue;
+QueueSubmitFunc                                                                        queueSubmit;
+QueueWaitIdleFunc                                                              queueWaitIdle;
+DeviceWaitIdleFunc                                                             deviceWaitIdle;
+AllocateMemoryFunc                                                             allocateMemory;
+FreeMemoryFunc                                                                 freeMemory;
+MapMemoryFunc                                                                  mapMemory;
+UnmapMemoryFunc                                                                        unmapMemory;
+FlushMappedMemoryRangesFunc                                            flushMappedMemoryRanges;
+InvalidateMappedMemoryRangesFunc                               invalidateMappedMemoryRanges;
+GetDeviceMemoryCommitmentFunc                                  getDeviceMemoryCommitment;
+BindBufferMemoryFunc                                                   bindBufferMemory;
+BindImageMemoryFunc                                                            bindImageMemory;
+GetBufferMemoryRequirementsFunc                                        getBufferMemoryRequirements;
+GetImageMemoryRequirementsFunc                                 getImageMemoryRequirements;
+GetImageSparseMemoryRequirementsFunc                   getImageSparseMemoryRequirements;
+QueueBindSparseFunc                                                            queueBindSparse;
+CreateFenceFunc                                                                        createFence;
+DestroyFenceFunc                                                               destroyFence;
+ResetFencesFunc                                                                        resetFences;
+GetFenceStatusFunc                                                             getFenceStatus;
+WaitForFencesFunc                                                              waitForFences;
+CreateSemaphoreFunc                                                            createSemaphore;
+DestroySemaphoreFunc                                                   destroySemaphore;
+CreateEventFunc                                                                        createEvent;
+DestroyEventFunc                                                               destroyEvent;
+GetEventStatusFunc                                                             getEventStatus;
+SetEventFunc                                                                   setEvent;
+ResetEventFunc                                                                 resetEvent;
+CreateQueryPoolFunc                                                            createQueryPool;
+DestroyQueryPoolFunc                                                   destroyQueryPool;
+GetQueryPoolResultsFunc                                                        getQueryPoolResults;
+CreateBufferFunc                                                               createBuffer;
+DestroyBufferFunc                                                              destroyBuffer;
+CreateBufferViewFunc                                                   createBufferView;
+DestroyBufferViewFunc                                                  destroyBufferView;
+CreateImageFunc                                                                        createImage;
+DestroyImageFunc                                                               destroyImage;
+GetImageSubresourceLayoutFunc                                  getImageSubresourceLayout;
+CreateImageViewFunc                                                            createImageView;
+DestroyImageViewFunc                                                   destroyImageView;
+CreateShaderModuleFunc                                                 createShaderModule;
+DestroyShaderModuleFunc                                                        destroyShaderModule;
+CreatePipelineCacheFunc                                                        createPipelineCache;
+DestroyPipelineCacheFunc                                               destroyPipelineCache;
+GetPipelineCacheDataFunc                                               getPipelineCacheData;
+MergePipelineCachesFunc                                                        mergePipelineCaches;
+CreateGraphicsPipelinesFunc                                            createGraphicsPipelines;
+CreateComputePipelinesFunc                                             createComputePipelines;
+DestroyPipelineFunc                                                            destroyPipeline;
+CreatePipelineLayoutFunc                                               createPipelineLayout;
+DestroyPipelineLayoutFunc                                              destroyPipelineLayout;
+CreateSamplerFunc                                                              createSampler;
+DestroySamplerFunc                                                             destroySampler;
+CreateDescriptorSetLayoutFunc                                  createDescriptorSetLayout;
+DestroyDescriptorSetLayoutFunc                                 destroyDescriptorSetLayout;
+CreateDescriptorPoolFunc                                               createDescriptorPool;
+DestroyDescriptorPoolFunc                                              destroyDescriptorPool;
+ResetDescriptorPoolFunc                                                        resetDescriptorPool;
+AllocateDescriptorSetsFunc                                             allocateDescriptorSets;
+FreeDescriptorSetsFunc                                                 freeDescriptorSets;
+UpdateDescriptorSetsFunc                                               updateDescriptorSets;
+CreateFramebufferFunc                                                  createFramebuffer;
+DestroyFramebufferFunc                                                 destroyFramebuffer;
+CreateRenderPassFunc                                                   createRenderPass;
+DestroyRenderPassFunc                                                  destroyRenderPass;
+GetRenderAreaGranularityFunc                                   getRenderAreaGranularity;
+CreateCommandPoolFunc                                                  createCommandPool;
+DestroyCommandPoolFunc                                                 destroyCommandPool;
+ResetCommandPoolFunc                                                   resetCommandPool;
+AllocateCommandBuffersFunc                                             allocateCommandBuffers;
+FreeCommandBuffersFunc                                                 freeCommandBuffers;
+BeginCommandBufferFunc                                                 beginCommandBuffer;
+EndCommandBufferFunc                                                   endCommandBuffer;
+ResetCommandBufferFunc                                                 resetCommandBuffer;
+CmdBindPipelineFunc                                                            cmdBindPipeline;
+CmdSetViewportFunc                                                             cmdSetViewport;
+CmdSetScissorFunc                                                              cmdSetScissor;
+CmdSetLineWidthFunc                                                            cmdSetLineWidth;
+CmdSetDepthBiasFunc                                                            cmdSetDepthBias;
+CmdSetBlendConstantsFunc                                               cmdSetBlendConstants;
+CmdSetDepthBoundsFunc                                                  cmdSetDepthBounds;
+CmdSetStencilCompareMaskFunc                                   cmdSetStencilCompareMask;
+CmdSetStencilWriteMaskFunc                                             cmdSetStencilWriteMask;
+CmdSetStencilReferenceFunc                                             cmdSetStencilReference;
+CmdBindDescriptorSetsFunc                                              cmdBindDescriptorSets;
+CmdBindIndexBufferFunc                                                 cmdBindIndexBuffer;
+CmdBindVertexBuffersFunc                                               cmdBindVertexBuffers;
+CmdDrawFunc                                                                            cmdDraw;
+CmdDrawIndexedFunc                                                             cmdDrawIndexed;
+CmdDrawIndirectFunc                                                            cmdDrawIndirect;
+CmdDrawIndexedIndirectFunc                                             cmdDrawIndexedIndirect;
+CmdDispatchFunc                                                                        cmdDispatch;
+CmdDispatchIndirectFunc                                                        cmdDispatchIndirect;
+CmdCopyBufferFunc                                                              cmdCopyBuffer;
+CmdCopyImageFunc                                                               cmdCopyImage;
+CmdBlitImageFunc                                                               cmdBlitImage;
+CmdCopyBufferToImageFunc                                               cmdCopyBufferToImage;
+CmdCopyImageToBufferFunc                                               cmdCopyImageToBuffer;
+CmdUpdateBufferFunc                                                            cmdUpdateBuffer;
+CmdFillBufferFunc                                                              cmdFillBuffer;
+CmdClearColorImageFunc                                                 cmdClearColorImage;
+CmdClearDepthStencilImageFunc                                  cmdClearDepthStencilImage;
+CmdClearAttachmentsFunc                                                        cmdClearAttachments;
+CmdResolveImageFunc                                                            cmdResolveImage;
+CmdSetEventFunc                                                                        cmdSetEvent;
+CmdResetEventFunc                                                              cmdResetEvent;
+CmdWaitEventsFunc                                                              cmdWaitEvents;
+CmdPipelineBarrierFunc                                                 cmdPipelineBarrier;
+CmdBeginQueryFunc                                                              cmdBeginQuery;
+CmdEndQueryFunc                                                                        cmdEndQuery;
+CmdResetQueryPoolFunc                                                  cmdResetQueryPool;
+CmdWriteTimestampFunc                                                  cmdWriteTimestamp;
+CmdCopyQueryPoolResultsFunc                                            cmdCopyQueryPoolResults;
+CmdPushConstantsFunc                                                   cmdPushConstants;
+CmdBeginRenderPassFunc                                                 cmdBeginRenderPass;
+CmdNextSubpassFunc                                                             cmdNextSubpass;
+CmdEndRenderPassFunc                                                   cmdEndRenderPass;
+CmdExecuteCommandsFunc                                                 cmdExecuteCommands;
+BindBufferMemory2Func                                                  bindBufferMemory2;
+BindImageMemory2Func                                                   bindImageMemory2;
+GetDeviceGroupPeerMemoryFeaturesFunc                   getDeviceGroupPeerMemoryFeatures;
+CmdSetDeviceMaskFunc                                                   cmdSetDeviceMask;
+CmdDispatchBaseFunc                                                            cmdDispatchBase;
+GetImageMemoryRequirements2Func                                        getImageMemoryRequirements2;
+GetBufferMemoryRequirements2Func                               getBufferMemoryRequirements2;
+GetImageSparseMemoryRequirements2Func                  getImageSparseMemoryRequirements2;
+TrimCommandPoolFunc                                                            trimCommandPool;
+GetDeviceQueue2Func                                                            getDeviceQueue2;
+CreateSamplerYcbcrConversionFunc                               createSamplerYcbcrConversion;
+DestroySamplerYcbcrConversionFunc                              destroySamplerYcbcrConversion;
+CreateDescriptorUpdateTemplateFunc                             createDescriptorUpdateTemplate;
+DestroyDescriptorUpdateTemplateFunc                            destroyDescriptorUpdateTemplate;
+UpdateDescriptorSetWithTemplateFunc                            updateDescriptorSetWithTemplate;
+GetDescriptorSetLayoutSupportFunc                              getDescriptorSetLayoutSupport;
+CreateSwapchainKHRFunc                                                 createSwapchainKHR;
+DestroySwapchainKHRFunc                                                        destroySwapchainKHR;
+GetSwapchainImagesKHRFunc                                              getSwapchainImagesKHR;
+AcquireNextImageKHRFunc                                                        acquireNextImageKHR;
+QueuePresentKHRFunc                                                            queuePresentKHR;
+GetDeviceGroupPresentCapabilitiesKHRFunc               getDeviceGroupPresentCapabilitiesKHR;
+GetDeviceGroupSurfacePresentModesKHRFunc               getDeviceGroupSurfacePresentModesKHR;
+AcquireNextImage2KHRFunc                                               acquireNextImage2KHR;
+CreateSharedSwapchainsKHRFunc                                  createSharedSwapchainsKHR;
+GetMemoryWin32HandleKHRFunc                                            getMemoryWin32HandleKHR;
+GetMemoryWin32HandlePropertiesKHRFunc                  getMemoryWin32HandlePropertiesKHR;
+GetMemoryFdKHRFunc                                                             getMemoryFdKHR;
+GetMemoryFdPropertiesKHRFunc                                   getMemoryFdPropertiesKHR;
+ImportSemaphoreWin32HandleKHRFunc                              importSemaphoreWin32HandleKHR;
+GetSemaphoreWin32HandleKHRFunc                                 getSemaphoreWin32HandleKHR;
+ImportSemaphoreFdKHRFunc                                               importSemaphoreFdKHR;
+GetSemaphoreFdKHRFunc                                                  getSemaphoreFdKHR;
+CmdPushDescriptorSetKHRFunc                                            cmdPushDescriptorSetKHR;
+CmdPushDescriptorSetWithTemplateKHRFunc                        cmdPushDescriptorSetWithTemplateKHR;
+GetSwapchainStatusKHRFunc                                              getSwapchainStatusKHR;
+ImportFenceWin32HandleKHRFunc                                  importFenceWin32HandleKHR;
+GetFenceWin32HandleKHRFunc                                             getFenceWin32HandleKHR;
+ImportFenceFdKHRFunc                                                   importFenceFdKHR;
+GetFenceFdKHRFunc                                                              getFenceFdKHR;
+DebugMarkerSetObjectTagEXTFunc                                 debugMarkerSetObjectTagEXT;
+DebugMarkerSetObjectNameEXTFunc                                        debugMarkerSetObjectNameEXT;
+CmdDebugMarkerBeginEXTFunc                                             cmdDebugMarkerBeginEXT;
+CmdDebugMarkerEndEXTFunc                                               cmdDebugMarkerEndEXT;
+CmdDebugMarkerInsertEXTFunc                                            cmdDebugMarkerInsertEXT;
+CmdDrawIndirectCountAMDFunc                                            cmdDrawIndirectCountAMD;
+CmdDrawIndexedIndirectCountAMDFunc                             cmdDrawIndexedIndirectCountAMD;
+GetMemoryWin32HandleNVFunc                                             getMemoryWin32HandleNV;
+CmdProcessCommandsNVXFunc                                              cmdProcessCommandsNVX;
+CmdReserveSpaceForCommandsNVXFunc                              cmdReserveSpaceForCommandsNVX;
+CreateIndirectCommandsLayoutNVXFunc                            createIndirectCommandsLayoutNVX;
+DestroyIndirectCommandsLayoutNVXFunc                   destroyIndirectCommandsLayoutNVX;
+CreateObjectTableNVXFunc                                               createObjectTableNVX;
+DestroyObjectTableNVXFunc                                              destroyObjectTableNVX;
+RegisterObjectsNVXFunc                                                 registerObjectsNVX;
+UnregisterObjectsNVXFunc                                               unregisterObjectsNVX;
+CmdSetViewportWScalingNVFunc                                   cmdSetViewportWScalingNV;
+DisplayPowerControlEXTFunc                                             displayPowerControlEXT;
+RegisterDeviceEventEXTFunc                                             registerDeviceEventEXT;
+RegisterDisplayEventEXTFunc                                            registerDisplayEventEXT;
+GetSwapchainCounterEXTFunc                                             getSwapchainCounterEXT;
+GetRefreshCycleDurationGOOGLEFunc                              getRefreshCycleDurationGOOGLE;
+GetPastPresentationTimingGOOGLEFunc                            getPastPresentationTimingGOOGLE;
+CmdSetDiscardRectangleEXTFunc                                  cmdSetDiscardRectangleEXT;
+SetHdrMetadataEXTFunc                                                  setHdrMetadataEXT;
+CmdSetSampleLocationsEXTFunc                                   cmdSetSampleLocationsEXT;
+CreateValidationCacheEXTFunc                                   createValidationCacheEXT;
+DestroyValidationCacheEXTFunc                                  destroyValidationCacheEXT;
+MergeValidationCachesEXTFunc                                   mergeValidationCachesEXT;
+GetValidationCacheDataEXTFunc                                  getValidationCacheDataEXT;
+GetAndroidHardwareBufferPropertiesANDROIDFunc  getAndroidHardwareBufferPropertiesANDROID;
+GetMemoryAndroidHardwareBufferANDROIDFunc              getMemoryAndroidHardwareBufferANDROID;
index 8340ba7..4b685e3 100644 (file)
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateInstanceFunc)                                                                                (const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyInstanceFunc)                                                                               (VkInstance instance, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDevicesFunc)                                                              (VkInstance instance, deUint32* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeaturesFunc)                                                             (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatPropertiesFunc)                                             (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatPropertiesFunc)                                (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDevicePropertiesFunc)                                                   (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyPropertiesFunc)                                (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryPropertiesFunc)                                             (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
-typedef VKAPI_ATTR PFN_vkVoidFunction  (VKAPI_CALL* GetInstanceProcAddrFunc)                                                                   (VkInstance instance, const char* pName);
-typedef VKAPI_ATTR PFN_vkVoidFunction  (VKAPI_CALL* GetDeviceProcAddrFunc)                                                                             (VkDevice device, const char* pName);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDeviceFunc)                                                                                  (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDeviceFunc)                                                                                 (VkDevice device, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceExtensionPropertiesFunc)                                  (const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateDeviceExtensionPropertiesFunc)                                    (VkPhysicalDevice physicalDevice, const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceLayerPropertiesFunc)                                              (deUint32* pPropertyCount, VkLayerProperties* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateDeviceLayerPropertiesFunc)                                                (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkLayerProperties* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceQueueFunc)                                                                                (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueSubmitFunc)                                                                                   (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueWaitIdleFunc)                                                                                 (VkQueue queue);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DeviceWaitIdleFunc)                                                                                (VkDevice device);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AllocateMemoryFunc)                                                                                (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* FreeMemoryFunc)                                                                                    (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* MapMemoryFunc)                                                                                             (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* UnmapMemoryFunc)                                                                                   (VkDevice device, VkDeviceMemory memory);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* FlushMappedMemoryRangesFunc)                                                               (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* InvalidateMappedMemoryRangesFunc)                                                  (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceMemoryCommitmentFunc)                                                             (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemoryFunc)                                                                              (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemoryFunc)                                                                               (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirementsFunc)                                                   (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirementsFunc)                                                    (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirementsFunc)                                              (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatPropertiesFunc)                  (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, deUint32* pPropertyCount, VkSparseImageFormatProperties* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueBindSparseFunc)                                                                               (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateFenceFunc)                                                                                   (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyFenceFunc)                                                                                  (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetFencesFunc)                                                                                   (VkDevice device, deUint32 fenceCount, const VkFence* pFences);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceStatusFunc)                                                                                (VkDevice device, VkFence fence);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WaitForFencesFunc)                                                                                 (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSemaphoreFunc)                                                                               (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySemaphoreFunc)                                                                              (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateEventFunc)                                                                                   (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyEventFunc)                                                                                  (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetEventStatusFunc)                                                                                (VkDevice device, VkEvent event);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetEventFunc)                                                                                              (VkDevice device, VkEvent event);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetEventFunc)                                                                                    (VkDevice device, VkEvent event);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateQueryPoolFunc)                                                                               (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyQueryPoolFunc)                                                                              (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetQueryPoolResultsFunc)                                                                   (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateBufferFunc)                                                                                  (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyBufferFunc)                                                                                 (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateBufferViewFunc)                                                                              (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyBufferViewFunc)                                                                             (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateImageFunc)                                                                                   (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyImageFunc)                                                                                  (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSubresourceLayoutFunc)                                                             (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateImageViewFunc)                                                                               (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyImageViewFunc)                                                                              (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateShaderModuleFunc)                                                                    (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyShaderModuleFunc)                                                                   (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreatePipelineCacheFunc)                                                                   (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPipelineCacheFunc)                                                                  (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelineCacheDataFunc)                                                                  (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* MergePipelineCachesFunc)                                                                   (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateGraphicsPipelinesFunc)                                                               (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateComputePipelinesFunc)                                                                (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPipelineFunc)                                                                               (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreatePipelineLayoutFunc)                                                                  (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPipelineLayoutFunc)                                                                 (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerFunc)                                                                                 (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerFunc)                                                                                (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorSetLayoutFunc)                                                             (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorSetLayoutFunc)                                                    (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorPoolFunc)                                                                  (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorPoolFunc)                                                                 (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetDescriptorPoolFunc)                                                                   (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AllocateDescriptorSetsFunc)                                                                (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* FreeDescriptorSetsFunc)                                                                    (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetsFunc)                                                                  (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateFramebufferFunc)                                                                             (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyFramebufferFunc)                                                                    (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRenderPassFunc)                                                                              (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyRenderPassFunc)                                                                             (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetRenderAreaGranularityFunc)                                                              (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateCommandPoolFunc)                                                                             (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyCommandPoolFunc)                                                                    (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetCommandPoolFunc)                                                                              (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AllocateCommandBuffersFunc)                                                                (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* FreeCommandBuffersFunc)                                                                    (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BeginCommandBufferFunc)                                                                    (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EndCommandBufferFunc)                                                                              (VkCommandBuffer commandBuffer);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetCommandBufferFunc)                                                                    (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindPipelineFunc)                                                                               (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportFunc)                                                                                (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetScissorFunc)                                                                                 (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetLineWidthFunc)                                                                               (VkCommandBuffer commandBuffer, float lineWidth);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBiasFunc)                                                                               (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetBlendConstantsFunc)                                                                  (VkCommandBuffer commandBuffer, const float blendConstants[4]);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBoundsFunc)                                                                             (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilCompareMaskFunc)                                                              (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilWriteMaskFunc)                                                                (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilReferenceFunc)                                                                (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindDescriptorSetsFunc)                                                                 (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindIndexBufferFunc)                                                                    (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindVertexBuffersFunc)                                                                  (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawFunc)                                                                                               (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedFunc)                                                                                (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectFunc)                                                                               (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectFunc)                                                                (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchFunc)                                                                                   (VkCommandBuffer commandBuffer, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchIndirectFunc)                                                                   (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBufferFunc)                                                                                 (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImageFunc)                                                                                  (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBlitImageFunc)                                                                                  (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBufferToImageFunc)                                                                  (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImageToBufferFunc)                                                                  (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdUpdateBufferFunc)                                                                               (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdFillBufferFunc)                                                                                 (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdClearColorImageFunc)                                                                    (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdClearDepthStencilImageFunc)                                                             (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdClearAttachmentsFunc)                                                                   (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResolveImageFunc)                                                                               (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetEventFunc)                                                                                   (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResetEventFunc)                                                                                 (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWaitEventsFunc)                                                                                 (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPipelineBarrierFunc)                                                                    (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginQueryFunc)                                                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndQueryFunc)                                                                                   (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResetQueryPoolFunc)                                                                             (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteTimestampFunc)                                                                             (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyQueryPoolResultsFunc)                                                               (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushConstantsFunc)                                                                              (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderPassFunc)                                                                    (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdNextSubpassFunc)                                                                                (VkCommandBuffer commandBuffer, VkSubpassContents contents);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderPassFunc)                                                                              (VkCommandBuffer commandBuffer);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdExecuteCommandsFunc)                                                                    (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceVersionFunc)                                                              (deUint32* pApiVersion);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2Func)                                                                             (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2Func)                                                                              (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesFunc)                                              (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskFunc)                                                                              (VkCommandBuffer commandBuffer, deUint32 deviceMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseFunc)                                                                               (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsFunc)                                                 (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirements2Func)                                                   (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirements2Func)                                                  (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirements2Func)                                             (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeatures2Func)                                                    (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceProperties2Func)                                                  (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatProperties2Func)                                    (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatProperties2Func)                               (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyProperties2Func)                               (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryProperties2Func)                                    (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatProperties2Func)                 (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* TrimCommandPoolFunc)                                                                               (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceQueue2Func)                                                                               (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerYcbcrConversionFunc)                                                  (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerYcbcrConversionFunc)                                                 (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorUpdateTemplateFunc)                                                (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorUpdateTemplateFunc)                                               (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetWithTemplateFunc)                                               (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalBufferPropertiesFunc)                             (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalFencePropertiesFunc)                              (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalSemaphorePropertiesFunc)                  (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutSupportFunc)                                                 (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySurfaceKHRFunc)                                                                             (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceSupportKHRFunc)                                    (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilitiesKHRFunc)                               (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceFormatsKHRFunc)                                    (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfacePresentModesKHRFunc)                               (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pPresentModeCount, VkPresentModeKHR* pPresentModes);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSwapchainKHRFunc)                                                                    (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySwapchainKHRFunc)                                                                   (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainImagesKHRFunc)                                                                 (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireNextImageKHRFunc)                                                                   (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueuePresentKHRFunc)                                                                               (VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupPresentCapabilitiesKHRFunc)                                  (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupSurfacePresentModesKHRFunc)                                  (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDevicePresentRectanglesKHRFunc)                                 (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireNextImage2KHRFunc)                                                                  (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPropertiesKHRFunc)                                 (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPlanePropertiesKHRFunc)                    (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneSupportedDisplaysKHRFunc)                                   (VkPhysicalDevice physicalDevice, deUint32 planeIndex, deUint32* pDisplayCount, VkDisplayKHR* pDisplays);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayModePropertiesKHRFunc)                                                   (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDisplayModeKHRFunc)                                                                  (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneCapabilitiesKHRFunc)                                                (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, deUint32 planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDisplayPlaneSurfaceKHRFunc)                                                  (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSharedSwapchainsKHRFunc)                                                             (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateXlibSurfaceKHRFunc)                                                                  (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceXlibPresentationSupportKHRFunc)                   (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateXcbSurfaceKHRFunc)                                                                   (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceXcbPresentationSupportKHRFunc)                    (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateWaylandSurfaceKHRFunc)                                                               (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceWaylandPresentationSupportKHRFunc)                (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::WaylandDisplayPtr display);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateMirSurfaceKHRFunc)                                                                   (VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceMirPresentationSupportKHRFunc)                    (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::MirConnectionPtr connection);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateAndroidSurfaceKHRFunc)                                                               (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateWin32SurfaceKHRFunc)                                                                 (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceWin32PresentationSupportKHRFunc)                  (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeatures2KHRFunc)                                                 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatProperties2KHRFunc)                                 (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatProperties2KHRFunc)                    (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryProperties2KHRFunc)                                 (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceProperties2KHRFunc)                                               (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyProperties2KHRFunc)                    (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatProperties2KHRFunc)              (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseKHRFunc)                                                                    (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskKHRFunc)                                                                   (VkCommandBuffer commandBuffer, deUint32 deviceMask);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesKHRFunc)                                   (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* TrimCommandPoolKHRFunc)                                                                    (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsKHRFunc)                                              (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalBufferPropertiesKHRFunc)                  (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandleKHRFunc)                                                               (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandlePropertiesKHRFunc)                                             (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryFdKHRFunc)                                                                                (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryFdPropertiesKHRFunc)                                                              (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc)               (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreWin32HandleKHRFunc)                                                 (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreWin32HandleKHRFunc)                                                    (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreFdKHRFunc)                                                                  (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreFdKHRFunc)                                                                             (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushDescriptorSetKHRFunc)                                                               (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushDescriptorSetWithTemplateKHRFunc)                                   (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, deUint32 set, const void* pData);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorUpdateTemplateKHRFunc)                                             (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorUpdateTemplateKHRFunc)                                    (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetWithTemplateKHRFunc)                                    (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainStatusKHRFunc)                                                                 (VkDevice device, VkSwapchainKHR swapchain);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalFencePropertiesKHRFunc)                   (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportFenceWin32HandleKHRFunc)                                                             (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceWin32HandleKHRFunc)                                                                (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportFenceFdKHRFunc)                                                                              (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceFdKHRFunc)                                                                                 (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2KHRFunc)                              (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceFormats2KHRFunc)                                   (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirements2KHRFunc)                                               (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirements2KHRFunc)                                                (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirements2KHRFunc)                                  (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerYcbcrConversionKHRFunc)                                               (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerYcbcrConversionKHRFunc)                                              (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2KHRFunc)                                                                  (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2KHRFunc)                                                                   (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutSupportKHRFunc)                                              (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDebugReportCallbackEXTFunc)                                                  (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDebugReportCallbackEXTFunc)                                                 (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DebugReportMessageEXTFunc)                                                                 (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DebugMarkerSetObjectTagEXTFunc)                                                    (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DebugMarkerSetObjectNameEXTFunc)                                                   (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerBeginEXTFunc)                                                                (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerEndEXTFunc)                                                                  (VkCommandBuffer commandBuffer);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerInsertEXTFunc)                                                               (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountAMDFunc)                                                               (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountAMDFunc)                                                (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceExternalImageFormatPropertiesNVFunc)              (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandleNVFunc)                                                                (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateViSurfaceNNFunc)                                                                             (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdProcessCommandsNVXFunc)                                                                 (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdReserveSpaceForCommandsNVXFunc)                                                 (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateIndirectCommandsLayoutNVXFunc)                                               (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyIndirectCommandsLayoutNVXFunc)                                              (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateObjectTableNVXFunc)                                                                  (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyObjectTableNVXFunc)                                                                 (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* RegisterObjectsNVXFunc)                                                                    (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* UnregisterObjectsNVXFunc)                                                                  (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc)               (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportWScalingNVFunc)                                                              (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ReleaseDisplayEXTFunc)                                                                             (VkPhysicalDevice physicalDevice, VkDisplayKHR display);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireXlibDisplayEXTFunc)                                                                 (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRandROutputDisplayEXTFunc)                                                              (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2EXTFunc)                              (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DisplayPowerControlEXTFunc)                                                                (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* RegisterDeviceEventEXTFunc)                                                                (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* RegisterDisplayEventEXTFunc)                                                               (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainCounterEXTFunc)                                                                (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRefreshCycleDurationGOOGLEFunc)                                                 (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPastPresentationTimingGOOGLEFunc)                                               (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDiscardRectangleEXTFunc)                                                             (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* SetHdrMetadataEXTFunc)                                                                             (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateIOSSurfaceMVKFunc)                                                                   (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateMacOSSurfaceMVKFunc)                                                                 (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetSampleLocationsEXTFunc)                                                              (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMultisamplePropertiesEXTFunc)                             (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateValidationCacheEXTFunc)                                                              (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyValidationCacheEXTFunc)                                                             (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* MergeValidationCachesEXTFunc)                                                              (VkDevice device, VkValidationCacheEXT dstCache, deUint32 srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetValidationCacheDataEXTFunc)                                                             (VkDevice device, VkValidationCacheEXT validationCache, deUintptr* pDataSize, void* pData);
-typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceAndroidHardwareBufferUsageANDROIDFunc)    (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryAndroidHardwareBufferPropertiesANDROIDFunc)               (VkDevice device, const pt::AndroidHardwareBufferPtr buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties);
-typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryAndroidHardwareBufferANDROIDFunc)                                 (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, pt::AndroidHardwareBufferPtr* pBuffer);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateInstanceFunc)                                                                        (const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyInstanceFunc)                                                                       (VkInstance instance, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDevicesFunc)                                                      (VkInstance instance, deUint32* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeaturesFunc)                                                     (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatPropertiesFunc)                                     (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatPropertiesFunc)                        (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDevicePropertiesFunc)                                           (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyPropertiesFunc)                        (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryPropertiesFunc)                                     (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
+typedef VKAPI_ATTR PFN_vkVoidFunction  (VKAPI_CALL* GetInstanceProcAddrFunc)                                                           (VkInstance instance, const char* pName);
+typedef VKAPI_ATTR PFN_vkVoidFunction  (VKAPI_CALL* GetDeviceProcAddrFunc)                                                                     (VkDevice device, const char* pName);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDeviceFunc)                                                                          (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDeviceFunc)                                                                         (VkDevice device, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceExtensionPropertiesFunc)                          (const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateDeviceExtensionPropertiesFunc)                            (VkPhysicalDevice physicalDevice, const char* pLayerName, deUint32* pPropertyCount, VkExtensionProperties* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceLayerPropertiesFunc)                                      (deUint32* pPropertyCount, VkLayerProperties* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateDeviceLayerPropertiesFunc)                                        (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkLayerProperties* pProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceQueueFunc)                                                                        (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueSubmitFunc)                                                                           (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueWaitIdleFunc)                                                                         (VkQueue queue);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DeviceWaitIdleFunc)                                                                        (VkDevice device);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AllocateMemoryFunc)                                                                        (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* FreeMemoryFunc)                                                                            (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* MapMemoryFunc)                                                                                     (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* UnmapMemoryFunc)                                                                           (VkDevice device, VkDeviceMemory memory);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* FlushMappedMemoryRangesFunc)                                                       (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* InvalidateMappedMemoryRangesFunc)                                          (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceMemoryCommitmentFunc)                                                     (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemoryFunc)                                                                      (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemoryFunc)                                                                       (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirementsFunc)                                           (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirementsFunc)                                            (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirementsFunc)                                      (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatPropertiesFunc)          (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, deUint32* pPropertyCount, VkSparseImageFormatProperties* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueueBindSparseFunc)                                                                       (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateFenceFunc)                                                                           (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyFenceFunc)                                                                          (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetFencesFunc)                                                                           (VkDevice device, deUint32 fenceCount, const VkFence* pFences);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceStatusFunc)                                                                        (VkDevice device, VkFence fence);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* WaitForFencesFunc)                                                                         (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSemaphoreFunc)                                                                       (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySemaphoreFunc)                                                                      (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateEventFunc)                                                                           (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyEventFunc)                                                                          (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetEventStatusFunc)                                                                        (VkDevice device, VkEvent event);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* SetEventFunc)                                                                                      (VkDevice device, VkEvent event);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetEventFunc)                                                                            (VkDevice device, VkEvent event);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateQueryPoolFunc)                                                                       (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyQueryPoolFunc)                                                                      (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetQueryPoolResultsFunc)                                                           (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateBufferFunc)                                                                          (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyBufferFunc)                                                                         (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateBufferViewFunc)                                                                      (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyBufferViewFunc)                                                                     (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateImageFunc)                                                                           (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyImageFunc)                                                                          (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSubresourceLayoutFunc)                                                     (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateImageViewFunc)                                                                       (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyImageViewFunc)                                                                      (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateShaderModuleFunc)                                                            (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyShaderModuleFunc)                                                           (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreatePipelineCacheFunc)                                                           (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPipelineCacheFunc)                                                          (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPipelineCacheDataFunc)                                                          (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* MergePipelineCachesFunc)                                                           (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateGraphicsPipelinesFunc)                                                       (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateComputePipelinesFunc)                                                        (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPipelineFunc)                                                                       (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreatePipelineLayoutFunc)                                                          (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyPipelineLayoutFunc)                                                         (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerFunc)                                                                         (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerFunc)                                                                        (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorSetLayoutFunc)                                                     (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorSetLayoutFunc)                                            (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorPoolFunc)                                                          (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorPoolFunc)                                                         (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetDescriptorPoolFunc)                                                           (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AllocateDescriptorSetsFunc)                                                        (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* FreeDescriptorSetsFunc)                                                            (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetsFunc)                                                          (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateFramebufferFunc)                                                                     (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyFramebufferFunc)                                                            (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateRenderPassFunc)                                                                      (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyRenderPassFunc)                                                                     (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetRenderAreaGranularityFunc)                                                      (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateCommandPoolFunc)                                                                     (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyCommandPoolFunc)                                                            (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetCommandPoolFunc)                                                                      (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AllocateCommandBuffersFunc)                                                        (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* FreeCommandBuffersFunc)                                                            (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BeginCommandBufferFunc)                                                            (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EndCommandBufferFunc)                                                                      (VkCommandBuffer commandBuffer);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ResetCommandBufferFunc)                                                            (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindPipelineFunc)                                                                       (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportFunc)                                                                        (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetScissorFunc)                                                                         (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetLineWidthFunc)                                                                       (VkCommandBuffer commandBuffer, float lineWidth);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBiasFunc)                                                                       (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetBlendConstantsFunc)                                                          (VkCommandBuffer commandBuffer, const float blendConstants[4]);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDepthBoundsFunc)                                                                     (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilCompareMaskFunc)                                                      (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilWriteMaskFunc)                                                        (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetStencilReferenceFunc)                                                        (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindDescriptorSetsFunc)                                                         (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindIndexBufferFunc)                                                            (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBindVertexBuffersFunc)                                                          (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawFunc)                                                                                       (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedFunc)                                                                        (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectFunc)                                                                       (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectFunc)                                                        (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchFunc)                                                                           (VkCommandBuffer commandBuffer, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchIndirectFunc)                                                           (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBufferFunc)                                                                         (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImageFunc)                                                                          (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBlitImageFunc)                                                                          (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyBufferToImageFunc)                                                          (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyImageToBufferFunc)                                                          (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdUpdateBufferFunc)                                                                       (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdFillBufferFunc)                                                                         (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdClearColorImageFunc)                                                            (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdClearDepthStencilImageFunc)                                                     (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdClearAttachmentsFunc)                                                           (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResolveImageFunc)                                                                       (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetEventFunc)                                                                           (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResetEventFunc)                                                                         (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWaitEventsFunc)                                                                         (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPipelineBarrierFunc)                                                            (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginQueryFunc)                                                                         (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndQueryFunc)                                                                           (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdResetQueryPoolFunc)                                                                     (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdWriteTimestampFunc)                                                                     (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdCopyQueryPoolResultsFunc)                                                       (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushConstantsFunc)                                                                      (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdBeginRenderPassFunc)                                                            (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdNextSubpassFunc)                                                                        (VkCommandBuffer commandBuffer, VkSubpassContents contents);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdEndRenderPassFunc)                                                                      (VkCommandBuffer commandBuffer);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdExecuteCommandsFunc)                                                            (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumerateInstanceVersionFunc)                                                      (deUint32* pApiVersion);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2Func)                                                                     (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2Func)                                                                      (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesFunc)                                      (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskFunc)                                                                      (VkCommandBuffer commandBuffer, deUint32 deviceMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseFunc)                                                                       (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsFunc)                                         (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirements2Func)                                           (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirements2Func)                                          (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirements2Func)                                     (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeatures2Func)                                            (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceProperties2Func)                                          (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatProperties2Func)                            (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatProperties2Func)                       (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyProperties2Func)                       (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryProperties2Func)                            (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatProperties2Func)         (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* TrimCommandPoolFunc)                                                                       (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceQueue2Func)                                                                       (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerYcbcrConversionFunc)                                          (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerYcbcrConversionFunc)                                         (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorUpdateTemplateFunc)                                        (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorUpdateTemplateFunc)                                       (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetWithTemplateFunc)                                       (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalBufferPropertiesFunc)                     (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalFencePropertiesFunc)                      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalSemaphorePropertiesFunc)          (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutSupportFunc)                                         (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySurfaceKHRFunc)                                                                     (VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceSupportKHRFunc)                            (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilitiesKHRFunc)                       (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceFormatsKHRFunc)                            (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfacePresentModesKHRFunc)                       (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pPresentModeCount, VkPresentModeKHR* pPresentModes);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSwapchainKHRFunc)                                                            (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySwapchainKHRFunc)                                                           (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainImagesKHRFunc)                                                         (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireNextImageKHRFunc)                                                           (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* QueuePresentKHRFunc)                                                                       (VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupPresentCapabilitiesKHRFunc)                          (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDeviceGroupSurfacePresentModesKHRFunc)                          (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDevicePresentRectanglesKHRFunc)                         (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, deUint32* pRectCount, VkRect2D* pRects);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireNextImage2KHRFunc)                                                          (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPropertiesKHRFunc)                         (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceDisplayPlanePropertiesKHRFunc)            (VkPhysicalDevice physicalDevice, deUint32* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneSupportedDisplaysKHRFunc)                           (VkPhysicalDevice physicalDevice, deUint32 planeIndex, deUint32* pDisplayCount, VkDisplayKHR* pDisplays);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayModePropertiesKHRFunc)                                           (VkPhysicalDevice physicalDevice, VkDisplayKHR display, deUint32* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDisplayModeKHRFunc)                                                          (VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetDisplayPlaneCapabilitiesKHRFunc)                                        (VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, deUint32 planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDisplayPlaneSurfaceKHRFunc)                                          (VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSharedSwapchainsKHRFunc)                                                     (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateXlibSurfaceKHRFunc)                                                          (VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceXlibPresentationSupportKHRFunc)           (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XlibDisplayPtr dpy, pt::XlibVisualID visualID);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateXcbSurfaceKHRFunc)                                                           (VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceXcbPresentationSupportKHRFunc)            (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::XcbConnectionPtr connection, pt::XcbVisualid visual_id);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateWaylandSurfaceKHRFunc)                                                       (VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceWaylandPresentationSupportKHRFunc)        (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::WaylandDisplayPtr display);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateMirSurfaceKHRFunc)                                                           (VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceMirPresentationSupportKHRFunc)            (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::MirConnectionPtr connection);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateAndroidSurfaceKHRFunc)                                                       (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateWin32SurfaceKHRFunc)                                                         (VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkBool32                            (VKAPI_CALL* GetPhysicalDeviceWin32PresentationSupportKHRFunc)          (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFeatures2KHRFunc)                                         (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceFormatProperties2KHRFunc)                         (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceImageFormatProperties2KHRFunc)            (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMemoryProperties2KHRFunc)                         (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceProperties2KHRFunc)                                       (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceQueueFamilyProperties2KHRFunc)            (VkPhysicalDevice physicalDevice, deUint32* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceSparseImageFormatProperties2KHRFunc)      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, deUint32* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDispatchBaseKHRFunc)                                                            (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDeviceMaskKHRFunc)                                                           (VkCommandBuffer commandBuffer, deUint32 deviceMask);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDeviceGroupPeerMemoryFeaturesKHRFunc)                           (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* TrimCommandPoolKHRFunc)                                                            (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* EnumeratePhysicalDeviceGroupsKHRFunc)                                      (VkInstance instance, deUint32* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalBufferPropertiesKHRFunc)          (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandleKHRFunc)                                                       (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandlePropertiesKHRFunc)                                     (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryFdKHRFunc)                                                                        (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryFdPropertiesKHRFunc)                                                      (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalSemaphorePropertiesKHRFunc)       (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreWin32HandleKHRFunc)                                         (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreWin32HandleKHRFunc)                                            (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportSemaphoreFdKHRFunc)                                                          (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSemaphoreFdKHRFunc)                                                                     (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushDescriptorSetKHRFunc)                                                       (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdPushDescriptorSetWithTemplateKHRFunc)                           (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, deUint32 set, const void* pData);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDescriptorUpdateTemplateKHRFunc)                                     (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDescriptorUpdateTemplateKHRFunc)                            (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* UpdateDescriptorSetWithTemplateKHRFunc)                            (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainStatusKHRFunc)                                                         (VkDevice device, VkSwapchainKHR swapchain);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceExternalFencePropertiesKHRFunc)           (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportFenceWin32HandleKHRFunc)                                                     (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceWin32HandleKHRFunc)                                                        (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ImportFenceFdKHRFunc)                                                                      (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetFenceFdKHRFunc)                                                                         (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2KHRFunc)                      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceFormats2KHRFunc)                           (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, deUint32* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetBufferMemoryRequirements2KHRFunc)                                       (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageMemoryRequirements2KHRFunc)                                        (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetImageSparseMemoryRequirements2KHRFunc)                          (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateSamplerYcbcrConversionKHRFunc)                                       (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroySamplerYcbcrConversionKHRFunc)                                      (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindBufferMemory2KHRFunc)                                                          (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* BindImageMemory2KHRFunc)                                                           (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetDescriptorSetLayoutSupportKHRFunc)                                      (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateDebugReportCallbackEXTFunc)                                          (VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyDebugReportCallbackEXTFunc)                                         (VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DebugReportMessageEXTFunc)                                                         (VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DebugMarkerSetObjectTagEXTFunc)                                            (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DebugMarkerSetObjectNameEXTFunc)                                           (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerBeginEXTFunc)                                                        (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerEndEXTFunc)                                                          (VkCommandBuffer commandBuffer);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDebugMarkerInsertEXTFunc)                                                       (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndirectCountAMDFunc)                                                       (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdDrawIndexedIndirectCountAMDFunc)                                        (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceExternalImageFormatPropertiesNVFunc)      (VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryWin32HandleNVFunc)                                                        (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateViSurfaceNNFunc)                                                                     (VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdProcessCommandsNVXFunc)                                                         (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdReserveSpaceForCommandsNVXFunc)                                         (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateIndirectCommandsLayoutNVXFunc)                                       (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyIndirectCommandsLayoutNVXFunc)                                      (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateObjectTableNVXFunc)                                                          (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyObjectTableNVXFunc)                                                         (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* RegisterObjectsNVXFunc)                                                            (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* UnregisterObjectsNVXFunc)                                                          (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc)       (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetViewportWScalingNVFunc)                                                      (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* ReleaseDisplayEXTFunc)                                                                     (VkPhysicalDevice physicalDevice, VkDisplayKHR display);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* AcquireXlibDisplayEXTFunc)                                                         (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, VkDisplayKHR display);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRandROutputDisplayEXTFunc)                                                      (VkPhysicalDevice physicalDevice, pt::XlibDisplayPtr dpy, pt::RROutput rrOutput, VkDisplayKHR* pDisplay);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2EXTFunc)                      (VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* DisplayPowerControlEXTFunc)                                                        (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* RegisterDeviceEventEXTFunc)                                                        (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* RegisterDisplayEventEXTFunc)                                                       (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetSwapchainCounterEXTFunc)                                                        (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetRefreshCycleDurationGOOGLEFunc)                                         (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetPastPresentationTimingGOOGLEFunc)                                       (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetDiscardRectangleEXTFunc)                                                     (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* SetHdrMetadataEXTFunc)                                                                     (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateIOSSurfaceMVKFunc)                                                           (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateMacOSSurfaceMVKFunc)                                                         (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* CmdSetSampleLocationsEXTFunc)                                                      (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* GetPhysicalDeviceMultisamplePropertiesEXTFunc)                     (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* CreateValidationCacheEXTFunc)                                                      (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
+typedef VKAPI_ATTR void                                        (VKAPI_CALL* DestroyValidationCacheEXTFunc)                                                     (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* MergeValidationCachesEXTFunc)                                                      (VkDevice device, VkValidationCacheEXT dstCache, deUint32 srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetValidationCacheDataEXTFunc)                                                     (VkDevice device, VkValidationCacheEXT validationCache, deUintptr* pDataSize, void* pData);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetAndroidHardwareBufferPropertiesANDROIDFunc)                     (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
+typedef VKAPI_ATTR VkResult                            (VKAPI_CALL* GetMemoryAndroidHardwareBufferANDROIDFunc)                         (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer);
index fa7b0ef..8fd9fb2 100644 (file)
@@ -1026,19 +1026,19 @@ template<> VkStructureType getStructureType<VkShaderModuleValidationCacheCreateI
        return VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkPhysicalDeviceAndroidHardwareBufferInfoANDROID> (void)
+template<> VkStructureType getStructureType<VkAndroidHardwareBufferUsageANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
+       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkAndroidHardwareBufferUsageANDROID> (void)
+template<> VkStructureType getStructureType<VkAndroidHardwareBufferPropertiesANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
+       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkMemoryAndroidHardwareBufferPropertiesANDROID> (void)
+template<> VkStructureType getStructureType<VkAndroidHardwareBufferFormatPropertiesANDROID> (void)
 {
-       return VK_STRUCTURE_TYPE_MEMORY_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
+       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
 }
 
 template<> VkStructureType getStructureType<VkImportAndroidHardwareBufferInfoANDROID> (void)
@@ -1051,11 +1051,6 @@ template<> VkStructureType getStructureType<VkMemoryGetAndroidHardwareBufferInfo
        return VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
 }
 
-template<> VkStructureType getStructureType<VkAndroidHardwareBufferExternalFormatPropertiesANDROID> (void)
-{
-       return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID;
-}
-
 template<> VkStructureType getStructureType<VkExternalFormatANDROID> (void)
 {
        return VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID;
index 7c83c1c..dccca72 100644 (file)
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-m_vk.destroyDevice                                                                             = (DestroyDeviceFunc)                                                                   GET_PROC_ADDR("vkDestroyDevice");
-m_vk.getDeviceQueue                                                                            = (GetDeviceQueueFunc)                                                                  GET_PROC_ADDR("vkGetDeviceQueue");
-m_vk.queueSubmit                                                                               = (QueueSubmitFunc)                                                                             GET_PROC_ADDR("vkQueueSubmit");
-m_vk.queueWaitIdle                                                                             = (QueueWaitIdleFunc)                                                                   GET_PROC_ADDR("vkQueueWaitIdle");
-m_vk.deviceWaitIdle                                                                            = (DeviceWaitIdleFunc)                                                                  GET_PROC_ADDR("vkDeviceWaitIdle");
-m_vk.allocateMemory                                                                            = (AllocateMemoryFunc)                                                                  GET_PROC_ADDR("vkAllocateMemory");
-m_vk.freeMemory                                                                                        = (FreeMemoryFunc)                                                                              GET_PROC_ADDR("vkFreeMemory");
-m_vk.mapMemory                                                                                 = (MapMemoryFunc)                                                                               GET_PROC_ADDR("vkMapMemory");
-m_vk.unmapMemory                                                                               = (UnmapMemoryFunc)                                                                             GET_PROC_ADDR("vkUnmapMemory");
-m_vk.flushMappedMemoryRanges                                                   = (FlushMappedMemoryRangesFunc)                                                 GET_PROC_ADDR("vkFlushMappedMemoryRanges");
-m_vk.invalidateMappedMemoryRanges                                              = (InvalidateMappedMemoryRangesFunc)                                    GET_PROC_ADDR("vkInvalidateMappedMemoryRanges");
-m_vk.getDeviceMemoryCommitment                                                 = (GetDeviceMemoryCommitmentFunc)                                               GET_PROC_ADDR("vkGetDeviceMemoryCommitment");
-m_vk.bindBufferMemory                                                                  = (BindBufferMemoryFunc)                                                                GET_PROC_ADDR("vkBindBufferMemory");
-m_vk.bindImageMemory                                                                   = (BindImageMemoryFunc)                                                                 GET_PROC_ADDR("vkBindImageMemory");
-m_vk.getBufferMemoryRequirements                                               = (GetBufferMemoryRequirementsFunc)                                             GET_PROC_ADDR("vkGetBufferMemoryRequirements");
-m_vk.getImageMemoryRequirements                                                        = (GetImageMemoryRequirementsFunc)                                              GET_PROC_ADDR("vkGetImageMemoryRequirements");
-m_vk.getImageSparseMemoryRequirements                                  = (GetImageSparseMemoryRequirementsFunc)                                GET_PROC_ADDR("vkGetImageSparseMemoryRequirements");
-m_vk.queueBindSparse                                                                   = (QueueBindSparseFunc)                                                                 GET_PROC_ADDR("vkQueueBindSparse");
-m_vk.createFence                                                                               = (CreateFenceFunc)                                                                             GET_PROC_ADDR("vkCreateFence");
-m_vk.destroyFence                                                                              = (DestroyFenceFunc)                                                                    GET_PROC_ADDR("vkDestroyFence");
-m_vk.resetFences                                                                               = (ResetFencesFunc)                                                                             GET_PROC_ADDR("vkResetFences");
-m_vk.getFenceStatus                                                                            = (GetFenceStatusFunc)                                                                  GET_PROC_ADDR("vkGetFenceStatus");
-m_vk.waitForFences                                                                             = (WaitForFencesFunc)                                                                   GET_PROC_ADDR("vkWaitForFences");
-m_vk.createSemaphore                                                                   = (CreateSemaphoreFunc)                                                                 GET_PROC_ADDR("vkCreateSemaphore");
-m_vk.destroySemaphore                                                                  = (DestroySemaphoreFunc)                                                                GET_PROC_ADDR("vkDestroySemaphore");
-m_vk.createEvent                                                                               = (CreateEventFunc)                                                                             GET_PROC_ADDR("vkCreateEvent");
-m_vk.destroyEvent                                                                              = (DestroyEventFunc)                                                                    GET_PROC_ADDR("vkDestroyEvent");
-m_vk.getEventStatus                                                                            = (GetEventStatusFunc)                                                                  GET_PROC_ADDR("vkGetEventStatus");
-m_vk.setEvent                                                                                  = (SetEventFunc)                                                                                GET_PROC_ADDR("vkSetEvent");
-m_vk.resetEvent                                                                                        = (ResetEventFunc)                                                                              GET_PROC_ADDR("vkResetEvent");
-m_vk.createQueryPool                                                                   = (CreateQueryPoolFunc)                                                                 GET_PROC_ADDR("vkCreateQueryPool");
-m_vk.destroyQueryPool                                                                  = (DestroyQueryPoolFunc)                                                                GET_PROC_ADDR("vkDestroyQueryPool");
-m_vk.getQueryPoolResults                                                               = (GetQueryPoolResultsFunc)                                                             GET_PROC_ADDR("vkGetQueryPoolResults");
-m_vk.createBuffer                                                                              = (CreateBufferFunc)                                                                    GET_PROC_ADDR("vkCreateBuffer");
-m_vk.destroyBuffer                                                                             = (DestroyBufferFunc)                                                                   GET_PROC_ADDR("vkDestroyBuffer");
-m_vk.createBufferView                                                                  = (CreateBufferViewFunc)                                                                GET_PROC_ADDR("vkCreateBufferView");
-m_vk.destroyBufferView                                                                 = (DestroyBufferViewFunc)                                                               GET_PROC_ADDR("vkDestroyBufferView");
-m_vk.createImage                                                                               = (CreateImageFunc)                                                                             GET_PROC_ADDR("vkCreateImage");
-m_vk.destroyImage                                                                              = (DestroyImageFunc)                                                                    GET_PROC_ADDR("vkDestroyImage");
-m_vk.getImageSubresourceLayout                                                 = (GetImageSubresourceLayoutFunc)                                               GET_PROC_ADDR("vkGetImageSubresourceLayout");
-m_vk.createImageView                                                                   = (CreateImageViewFunc)                                                                 GET_PROC_ADDR("vkCreateImageView");
-m_vk.destroyImageView                                                                  = (DestroyImageViewFunc)                                                                GET_PROC_ADDR("vkDestroyImageView");
-m_vk.createShaderModule                                                                        = (CreateShaderModuleFunc)                                                              GET_PROC_ADDR("vkCreateShaderModule");
-m_vk.destroyShaderModule                                                               = (DestroyShaderModuleFunc)                                                             GET_PROC_ADDR("vkDestroyShaderModule");
-m_vk.createPipelineCache                                                               = (CreatePipelineCacheFunc)                                                             GET_PROC_ADDR("vkCreatePipelineCache");
-m_vk.destroyPipelineCache                                                              = (DestroyPipelineCacheFunc)                                                    GET_PROC_ADDR("vkDestroyPipelineCache");
-m_vk.getPipelineCacheData                                                              = (GetPipelineCacheDataFunc)                                                    GET_PROC_ADDR("vkGetPipelineCacheData");
-m_vk.mergePipelineCaches                                                               = (MergePipelineCachesFunc)                                                             GET_PROC_ADDR("vkMergePipelineCaches");
-m_vk.createGraphicsPipelines                                                   = (CreateGraphicsPipelinesFunc)                                                 GET_PROC_ADDR("vkCreateGraphicsPipelines");
-m_vk.createComputePipelines                                                            = (CreateComputePipelinesFunc)                                                  GET_PROC_ADDR("vkCreateComputePipelines");
-m_vk.destroyPipeline                                                                   = (DestroyPipelineFunc)                                                                 GET_PROC_ADDR("vkDestroyPipeline");
-m_vk.createPipelineLayout                                                              = (CreatePipelineLayoutFunc)                                                    GET_PROC_ADDR("vkCreatePipelineLayout");
-m_vk.destroyPipelineLayout                                                             = (DestroyPipelineLayoutFunc)                                                   GET_PROC_ADDR("vkDestroyPipelineLayout");
-m_vk.createSampler                                                                             = (CreateSamplerFunc)                                                                   GET_PROC_ADDR("vkCreateSampler");
-m_vk.destroySampler                                                                            = (DestroySamplerFunc)                                                                  GET_PROC_ADDR("vkDestroySampler");
-m_vk.createDescriptorSetLayout                                                 = (CreateDescriptorSetLayoutFunc)                                               GET_PROC_ADDR("vkCreateDescriptorSetLayout");
-m_vk.destroyDescriptorSetLayout                                                        = (DestroyDescriptorSetLayoutFunc)                                              GET_PROC_ADDR("vkDestroyDescriptorSetLayout");
-m_vk.createDescriptorPool                                                              = (CreateDescriptorPoolFunc)                                                    GET_PROC_ADDR("vkCreateDescriptorPool");
-m_vk.destroyDescriptorPool                                                             = (DestroyDescriptorPoolFunc)                                                   GET_PROC_ADDR("vkDestroyDescriptorPool");
-m_vk.resetDescriptorPool                                                               = (ResetDescriptorPoolFunc)                                                             GET_PROC_ADDR("vkResetDescriptorPool");
-m_vk.allocateDescriptorSets                                                            = (AllocateDescriptorSetsFunc)                                                  GET_PROC_ADDR("vkAllocateDescriptorSets");
-m_vk.freeDescriptorSets                                                                        = (FreeDescriptorSetsFunc)                                                              GET_PROC_ADDR("vkFreeDescriptorSets");
-m_vk.updateDescriptorSets                                                              = (UpdateDescriptorSetsFunc)                                                    GET_PROC_ADDR("vkUpdateDescriptorSets");
-m_vk.createFramebuffer                                                                 = (CreateFramebufferFunc)                                                               GET_PROC_ADDR("vkCreateFramebuffer");
-m_vk.destroyFramebuffer                                                                        = (DestroyFramebufferFunc)                                                              GET_PROC_ADDR("vkDestroyFramebuffer");
-m_vk.createRenderPass                                                                  = (CreateRenderPassFunc)                                                                GET_PROC_ADDR("vkCreateRenderPass");
-m_vk.destroyRenderPass                                                                 = (DestroyRenderPassFunc)                                                               GET_PROC_ADDR("vkDestroyRenderPass");
-m_vk.getRenderAreaGranularity                                                  = (GetRenderAreaGranularityFunc)                                                GET_PROC_ADDR("vkGetRenderAreaGranularity");
-m_vk.createCommandPool                                                                 = (CreateCommandPoolFunc)                                                               GET_PROC_ADDR("vkCreateCommandPool");
-m_vk.destroyCommandPool                                                                        = (DestroyCommandPoolFunc)                                                              GET_PROC_ADDR("vkDestroyCommandPool");
-m_vk.resetCommandPool                                                                  = (ResetCommandPoolFunc)                                                                GET_PROC_ADDR("vkResetCommandPool");
-m_vk.allocateCommandBuffers                                                            = (AllocateCommandBuffersFunc)                                                  GET_PROC_ADDR("vkAllocateCommandBuffers");
-m_vk.freeCommandBuffers                                                                        = (FreeCommandBuffersFunc)                                                              GET_PROC_ADDR("vkFreeCommandBuffers");
-m_vk.beginCommandBuffer                                                                        = (BeginCommandBufferFunc)                                                              GET_PROC_ADDR("vkBeginCommandBuffer");
-m_vk.endCommandBuffer                                                                  = (EndCommandBufferFunc)                                                                GET_PROC_ADDR("vkEndCommandBuffer");
-m_vk.resetCommandBuffer                                                                        = (ResetCommandBufferFunc)                                                              GET_PROC_ADDR("vkResetCommandBuffer");
-m_vk.cmdBindPipeline                                                                   = (CmdBindPipelineFunc)                                                                 GET_PROC_ADDR("vkCmdBindPipeline");
-m_vk.cmdSetViewport                                                                            = (CmdSetViewportFunc)                                                                  GET_PROC_ADDR("vkCmdSetViewport");
-m_vk.cmdSetScissor                                                                             = (CmdSetScissorFunc)                                                                   GET_PROC_ADDR("vkCmdSetScissor");
-m_vk.cmdSetLineWidth                                                                   = (CmdSetLineWidthFunc)                                                                 GET_PROC_ADDR("vkCmdSetLineWidth");
-m_vk.cmdSetDepthBias                                                                   = (CmdSetDepthBiasFunc)                                                                 GET_PROC_ADDR("vkCmdSetDepthBias");
-m_vk.cmdSetBlendConstants                                                              = (CmdSetBlendConstantsFunc)                                                    GET_PROC_ADDR("vkCmdSetBlendConstants");
-m_vk.cmdSetDepthBounds                                                                 = (CmdSetDepthBoundsFunc)                                                               GET_PROC_ADDR("vkCmdSetDepthBounds");
-m_vk.cmdSetStencilCompareMask                                                  = (CmdSetStencilCompareMaskFunc)                                                GET_PROC_ADDR("vkCmdSetStencilCompareMask");
-m_vk.cmdSetStencilWriteMask                                                            = (CmdSetStencilWriteMaskFunc)                                                  GET_PROC_ADDR("vkCmdSetStencilWriteMask");
-m_vk.cmdSetStencilReference                                                            = (CmdSetStencilReferenceFunc)                                                  GET_PROC_ADDR("vkCmdSetStencilReference");
-m_vk.cmdBindDescriptorSets                                                             = (CmdBindDescriptorSetsFunc)                                                   GET_PROC_ADDR("vkCmdBindDescriptorSets");
-m_vk.cmdBindIndexBuffer                                                                        = (CmdBindIndexBufferFunc)                                                              GET_PROC_ADDR("vkCmdBindIndexBuffer");
-m_vk.cmdBindVertexBuffers                                                              = (CmdBindVertexBuffersFunc)                                                    GET_PROC_ADDR("vkCmdBindVertexBuffers");
-m_vk.cmdDraw                                                                                   = (CmdDrawFunc)                                                                                 GET_PROC_ADDR("vkCmdDraw");
-m_vk.cmdDrawIndexed                                                                            = (CmdDrawIndexedFunc)                                                                  GET_PROC_ADDR("vkCmdDrawIndexed");
-m_vk.cmdDrawIndirect                                                                   = (CmdDrawIndirectFunc)                                                                 GET_PROC_ADDR("vkCmdDrawIndirect");
-m_vk.cmdDrawIndexedIndirect                                                            = (CmdDrawIndexedIndirectFunc)                                                  GET_PROC_ADDR("vkCmdDrawIndexedIndirect");
-m_vk.cmdDispatch                                                                               = (CmdDispatchFunc)                                                                             GET_PROC_ADDR("vkCmdDispatch");
-m_vk.cmdDispatchIndirect                                                               = (CmdDispatchIndirectFunc)                                                             GET_PROC_ADDR("vkCmdDispatchIndirect");
-m_vk.cmdCopyBuffer                                                                             = (CmdCopyBufferFunc)                                                                   GET_PROC_ADDR("vkCmdCopyBuffer");
-m_vk.cmdCopyImage                                                                              = (CmdCopyImageFunc)                                                                    GET_PROC_ADDR("vkCmdCopyImage");
-m_vk.cmdBlitImage                                                                              = (CmdBlitImageFunc)                                                                    GET_PROC_ADDR("vkCmdBlitImage");
-m_vk.cmdCopyBufferToImage                                                              = (CmdCopyBufferToImageFunc)                                                    GET_PROC_ADDR("vkCmdCopyBufferToImage");
-m_vk.cmdCopyImageToBuffer                                                              = (CmdCopyImageToBufferFunc)                                                    GET_PROC_ADDR("vkCmdCopyImageToBuffer");
-m_vk.cmdUpdateBuffer                                                                   = (CmdUpdateBufferFunc)                                                                 GET_PROC_ADDR("vkCmdUpdateBuffer");
-m_vk.cmdFillBuffer                                                                             = (CmdFillBufferFunc)                                                                   GET_PROC_ADDR("vkCmdFillBuffer");
-m_vk.cmdClearColorImage                                                                        = (CmdClearColorImageFunc)                                                              GET_PROC_ADDR("vkCmdClearColorImage");
-m_vk.cmdClearDepthStencilImage                                                 = (CmdClearDepthStencilImageFunc)                                               GET_PROC_ADDR("vkCmdClearDepthStencilImage");
-m_vk.cmdClearAttachments                                                               = (CmdClearAttachmentsFunc)                                                             GET_PROC_ADDR("vkCmdClearAttachments");
-m_vk.cmdResolveImage                                                                   = (CmdResolveImageFunc)                                                                 GET_PROC_ADDR("vkCmdResolveImage");
-m_vk.cmdSetEvent                                                                               = (CmdSetEventFunc)                                                                             GET_PROC_ADDR("vkCmdSetEvent");
-m_vk.cmdResetEvent                                                                             = (CmdResetEventFunc)                                                                   GET_PROC_ADDR("vkCmdResetEvent");
-m_vk.cmdWaitEvents                                                                             = (CmdWaitEventsFunc)                                                                   GET_PROC_ADDR("vkCmdWaitEvents");
-m_vk.cmdPipelineBarrier                                                                        = (CmdPipelineBarrierFunc)                                                              GET_PROC_ADDR("vkCmdPipelineBarrier");
-m_vk.cmdBeginQuery                                                                             = (CmdBeginQueryFunc)                                                                   GET_PROC_ADDR("vkCmdBeginQuery");
-m_vk.cmdEndQuery                                                                               = (CmdEndQueryFunc)                                                                             GET_PROC_ADDR("vkCmdEndQuery");
-m_vk.cmdResetQueryPool                                                                 = (CmdResetQueryPoolFunc)                                                               GET_PROC_ADDR("vkCmdResetQueryPool");
-m_vk.cmdWriteTimestamp                                                                 = (CmdWriteTimestampFunc)                                                               GET_PROC_ADDR("vkCmdWriteTimestamp");
-m_vk.cmdCopyQueryPoolResults                                                   = (CmdCopyQueryPoolResultsFunc)                                                 GET_PROC_ADDR("vkCmdCopyQueryPoolResults");
-m_vk.cmdPushConstants                                                                  = (CmdPushConstantsFunc)                                                                GET_PROC_ADDR("vkCmdPushConstants");
-m_vk.cmdBeginRenderPass                                                                        = (CmdBeginRenderPassFunc)                                                              GET_PROC_ADDR("vkCmdBeginRenderPass");
-m_vk.cmdNextSubpass                                                                            = (CmdNextSubpassFunc)                                                                  GET_PROC_ADDR("vkCmdNextSubpass");
-m_vk.cmdEndRenderPass                                                                  = (CmdEndRenderPassFunc)                                                                GET_PROC_ADDR("vkCmdEndRenderPass");
-m_vk.cmdExecuteCommands                                                                        = (CmdExecuteCommandsFunc)                                                              GET_PROC_ADDR("vkCmdExecuteCommands");
-m_vk.bindBufferMemory2                                                                 = (BindBufferMemory2Func)                                                               GET_PROC_ADDR("vkBindBufferMemory2");
+m_vk.destroyDevice                                                             = (DestroyDeviceFunc)                                                           GET_PROC_ADDR("vkDestroyDevice");
+m_vk.getDeviceQueue                                                            = (GetDeviceQueueFunc)                                                          GET_PROC_ADDR("vkGetDeviceQueue");
+m_vk.queueSubmit                                                               = (QueueSubmitFunc)                                                                     GET_PROC_ADDR("vkQueueSubmit");
+m_vk.queueWaitIdle                                                             = (QueueWaitIdleFunc)                                                           GET_PROC_ADDR("vkQueueWaitIdle");
+m_vk.deviceWaitIdle                                                            = (DeviceWaitIdleFunc)                                                          GET_PROC_ADDR("vkDeviceWaitIdle");
+m_vk.allocateMemory                                                            = (AllocateMemoryFunc)                                                          GET_PROC_ADDR("vkAllocateMemory");
+m_vk.freeMemory                                                                        = (FreeMemoryFunc)                                                                      GET_PROC_ADDR("vkFreeMemory");
+m_vk.mapMemory                                                                 = (MapMemoryFunc)                                                                       GET_PROC_ADDR("vkMapMemory");
+m_vk.unmapMemory                                                               = (UnmapMemoryFunc)                                                                     GET_PROC_ADDR("vkUnmapMemory");
+m_vk.flushMappedMemoryRanges                                   = (FlushMappedMemoryRangesFunc)                                         GET_PROC_ADDR("vkFlushMappedMemoryRanges");
+m_vk.invalidateMappedMemoryRanges                              = (InvalidateMappedMemoryRangesFunc)                            GET_PROC_ADDR("vkInvalidateMappedMemoryRanges");
+m_vk.getDeviceMemoryCommitment                                 = (GetDeviceMemoryCommitmentFunc)                                       GET_PROC_ADDR("vkGetDeviceMemoryCommitment");
+m_vk.bindBufferMemory                                                  = (BindBufferMemoryFunc)                                                        GET_PROC_ADDR("vkBindBufferMemory");
+m_vk.bindImageMemory                                                   = (BindImageMemoryFunc)                                                         GET_PROC_ADDR("vkBindImageMemory");
+m_vk.getBufferMemoryRequirements                               = (GetBufferMemoryRequirementsFunc)                                     GET_PROC_ADDR("vkGetBufferMemoryRequirements");
+m_vk.getImageMemoryRequirements                                        = (GetImageMemoryRequirementsFunc)                                      GET_PROC_ADDR("vkGetImageMemoryRequirements");
+m_vk.getImageSparseMemoryRequirements                  = (GetImageSparseMemoryRequirementsFunc)                        GET_PROC_ADDR("vkGetImageSparseMemoryRequirements");
+m_vk.queueBindSparse                                                   = (QueueBindSparseFunc)                                                         GET_PROC_ADDR("vkQueueBindSparse");
+m_vk.createFence                                                               = (CreateFenceFunc)                                                                     GET_PROC_ADDR("vkCreateFence");
+m_vk.destroyFence                                                              = (DestroyFenceFunc)                                                            GET_PROC_ADDR("vkDestroyFence");
+m_vk.resetFences                                                               = (ResetFencesFunc)                                                                     GET_PROC_ADDR("vkResetFences");
+m_vk.getFenceStatus                                                            = (GetFenceStatusFunc)                                                          GET_PROC_ADDR("vkGetFenceStatus");
+m_vk.waitForFences                                                             = (WaitForFencesFunc)                                                           GET_PROC_ADDR("vkWaitForFences");
+m_vk.createSemaphore                                                   = (CreateSemaphoreFunc)                                                         GET_PROC_ADDR("vkCreateSemaphore");
+m_vk.destroySemaphore                                                  = (DestroySemaphoreFunc)                                                        GET_PROC_ADDR("vkDestroySemaphore");
+m_vk.createEvent                                                               = (CreateEventFunc)                                                                     GET_PROC_ADDR("vkCreateEvent");
+m_vk.destroyEvent                                                              = (DestroyEventFunc)                                                            GET_PROC_ADDR("vkDestroyEvent");
+m_vk.getEventStatus                                                            = (GetEventStatusFunc)                                                          GET_PROC_ADDR("vkGetEventStatus");
+m_vk.setEvent                                                                  = (SetEventFunc)                                                                        GET_PROC_ADDR("vkSetEvent");
+m_vk.resetEvent                                                                        = (ResetEventFunc)                                                                      GET_PROC_ADDR("vkResetEvent");
+m_vk.createQueryPool                                                   = (CreateQueryPoolFunc)                                                         GET_PROC_ADDR("vkCreateQueryPool");
+m_vk.destroyQueryPool                                                  = (DestroyQueryPoolFunc)                                                        GET_PROC_ADDR("vkDestroyQueryPool");
+m_vk.getQueryPoolResults                                               = (GetQueryPoolResultsFunc)                                                     GET_PROC_ADDR("vkGetQueryPoolResults");
+m_vk.createBuffer                                                              = (CreateBufferFunc)                                                            GET_PROC_ADDR("vkCreateBuffer");
+m_vk.destroyBuffer                                                             = (DestroyBufferFunc)                                                           GET_PROC_ADDR("vkDestroyBuffer");
+m_vk.createBufferView                                                  = (CreateBufferViewFunc)                                                        GET_PROC_ADDR("vkCreateBufferView");
+m_vk.destroyBufferView                                                 = (DestroyBufferViewFunc)                                                       GET_PROC_ADDR("vkDestroyBufferView");
+m_vk.createImage                                                               = (CreateImageFunc)                                                                     GET_PROC_ADDR("vkCreateImage");
+m_vk.destroyImage                                                              = (DestroyImageFunc)                                                            GET_PROC_ADDR("vkDestroyImage");
+m_vk.getImageSubresourceLayout                                 = (GetImageSubresourceLayoutFunc)                                       GET_PROC_ADDR("vkGetImageSubresourceLayout");
+m_vk.createImageView                                                   = (CreateImageViewFunc)                                                         GET_PROC_ADDR("vkCreateImageView");
+m_vk.destroyImageView                                                  = (DestroyImageViewFunc)                                                        GET_PROC_ADDR("vkDestroyImageView");
+m_vk.createShaderModule                                                        = (CreateShaderModuleFunc)                                                      GET_PROC_ADDR("vkCreateShaderModule");
+m_vk.destroyShaderModule                                               = (DestroyShaderModuleFunc)                                                     GET_PROC_ADDR("vkDestroyShaderModule");
+m_vk.createPipelineCache                                               = (CreatePipelineCacheFunc)                                                     GET_PROC_ADDR("vkCreatePipelineCache");
+m_vk.destroyPipelineCache                                              = (DestroyPipelineCacheFunc)                                            GET_PROC_ADDR("vkDestroyPipelineCache");
+m_vk.getPipelineCacheData                                              = (GetPipelineCacheDataFunc)                                            GET_PROC_ADDR("vkGetPipelineCacheData");
+m_vk.mergePipelineCaches                                               = (MergePipelineCachesFunc)                                                     GET_PROC_ADDR("vkMergePipelineCaches");
+m_vk.createGraphicsPipelines                                   = (CreateGraphicsPipelinesFunc)                                         GET_PROC_ADDR("vkCreateGraphicsPipelines");
+m_vk.createComputePipelines                                            = (CreateComputePipelinesFunc)                                          GET_PROC_ADDR("vkCreateComputePipelines");
+m_vk.destroyPipeline                                                   = (DestroyPipelineFunc)                                                         GET_PROC_ADDR("vkDestroyPipeline");
+m_vk.createPipelineLayout                                              = (CreatePipelineLayoutFunc)                                            GET_PROC_ADDR("vkCreatePipelineLayout");
+m_vk.destroyPipelineLayout                                             = (DestroyPipelineLayoutFunc)                                           GET_PROC_ADDR("vkDestroyPipelineLayout");
+m_vk.createSampler                                                             = (CreateSamplerFunc)                                                           GET_PROC_ADDR("vkCreateSampler");
+m_vk.destroySampler                                                            = (DestroySamplerFunc)                                                          GET_PROC_ADDR("vkDestroySampler");
+m_vk.createDescriptorSetLayout                                 = (CreateDescriptorSetLayoutFunc)                                       GET_PROC_ADDR("vkCreateDescriptorSetLayout");
+m_vk.destroyDescriptorSetLayout                                        = (DestroyDescriptorSetLayoutFunc)                                      GET_PROC_ADDR("vkDestroyDescriptorSetLayout");
+m_vk.createDescriptorPool                                              = (CreateDescriptorPoolFunc)                                            GET_PROC_ADDR("vkCreateDescriptorPool");
+m_vk.destroyDescriptorPool                                             = (DestroyDescriptorPoolFunc)                                           GET_PROC_ADDR("vkDestroyDescriptorPool");
+m_vk.resetDescriptorPool                                               = (ResetDescriptorPoolFunc)                                                     GET_PROC_ADDR("vkResetDescriptorPool");
+m_vk.allocateDescriptorSets                                            = (AllocateDescriptorSetsFunc)                                          GET_PROC_ADDR("vkAllocateDescriptorSets");
+m_vk.freeDescriptorSets                                                        = (FreeDescriptorSetsFunc)                                                      GET_PROC_ADDR("vkFreeDescriptorSets");
+m_vk.updateDescriptorSets                                              = (UpdateDescriptorSetsFunc)                                            GET_PROC_ADDR("vkUpdateDescriptorSets");
+m_vk.createFramebuffer                                                 = (CreateFramebufferFunc)                                                       GET_PROC_ADDR("vkCreateFramebuffer");
+m_vk.destroyFramebuffer                                                        = (DestroyFramebufferFunc)                                                      GET_PROC_ADDR("vkDestroyFramebuffer");
+m_vk.createRenderPass                                                  = (CreateRenderPassFunc)                                                        GET_PROC_ADDR("vkCreateRenderPass");
+m_vk.destroyRenderPass                                                 = (DestroyRenderPassFunc)                                                       GET_PROC_ADDR("vkDestroyRenderPass");
+m_vk.getRenderAreaGranularity                                  = (GetRenderAreaGranularityFunc)                                        GET_PROC_ADDR("vkGetRenderAreaGranularity");
+m_vk.createCommandPool                                                 = (CreateCommandPoolFunc)                                                       GET_PROC_ADDR("vkCreateCommandPool");
+m_vk.destroyCommandPool                                                        = (DestroyCommandPoolFunc)                                                      GET_PROC_ADDR("vkDestroyCommandPool");
+m_vk.resetCommandPool                                                  = (ResetCommandPoolFunc)                                                        GET_PROC_ADDR("vkResetCommandPool");
+m_vk.allocateCommandBuffers                                            = (AllocateCommandBuffersFunc)                                          GET_PROC_ADDR("vkAllocateCommandBuffers");
+m_vk.freeCommandBuffers                                                        = (FreeCommandBuffersFunc)                                                      GET_PROC_ADDR("vkFreeCommandBuffers");
+m_vk.beginCommandBuffer                                                        = (BeginCommandBufferFunc)                                                      GET_PROC_ADDR("vkBeginCommandBuffer");
+m_vk.endCommandBuffer                                                  = (EndCommandBufferFunc)                                                        GET_PROC_ADDR("vkEndCommandBuffer");
+m_vk.resetCommandBuffer                                                        = (ResetCommandBufferFunc)                                                      GET_PROC_ADDR("vkResetCommandBuffer");
+m_vk.cmdBindPipeline                                                   = (CmdBindPipelineFunc)                                                         GET_PROC_ADDR("vkCmdBindPipeline");
+m_vk.cmdSetViewport                                                            = (CmdSetViewportFunc)                                                          GET_PROC_ADDR("vkCmdSetViewport");
+m_vk.cmdSetScissor                                                             = (CmdSetScissorFunc)                                                           GET_PROC_ADDR("vkCmdSetScissor");
+m_vk.cmdSetLineWidth                                                   = (CmdSetLineWidthFunc)                                                         GET_PROC_ADDR("vkCmdSetLineWidth");
+m_vk.cmdSetDepthBias                                                   = (CmdSetDepthBiasFunc)                                                         GET_PROC_ADDR("vkCmdSetDepthBias");
+m_vk.cmdSetBlendConstants                                              = (CmdSetBlendConstantsFunc)                                            GET_PROC_ADDR("vkCmdSetBlendConstants");
+m_vk.cmdSetDepthBounds                                                 = (CmdSetDepthBoundsFunc)                                                       GET_PROC_ADDR("vkCmdSetDepthBounds");
+m_vk.cmdSetStencilCompareMask                                  = (CmdSetStencilCompareMaskFunc)                                        GET_PROC_ADDR("vkCmdSetStencilCompareMask");
+m_vk.cmdSetStencilWriteMask                                            = (CmdSetStencilWriteMaskFunc)                                          GET_PROC_ADDR("vkCmdSetStencilWriteMask");
+m_vk.cmdSetStencilReference                                            = (CmdSetStencilReferenceFunc)                                          GET_PROC_ADDR("vkCmdSetStencilReference");
+m_vk.cmdBindDescriptorSets                                             = (CmdBindDescriptorSetsFunc)                                           GET_PROC_ADDR("vkCmdBindDescriptorSets");
+m_vk.cmdBindIndexBuffer                                                        = (CmdBindIndexBufferFunc)                                                      GET_PROC_ADDR("vkCmdBindIndexBuffer");
+m_vk.cmdBindVertexBuffers                                              = (CmdBindVertexBuffersFunc)                                            GET_PROC_ADDR("vkCmdBindVertexBuffers");
+m_vk.cmdDraw                                                                   = (CmdDrawFunc)                                                                         GET_PROC_ADDR("vkCmdDraw");
+m_vk.cmdDrawIndexed                                                            = (CmdDrawIndexedFunc)                                                          GET_PROC_ADDR("vkCmdDrawIndexed");
+m_vk.cmdDrawIndirect                                                   = (CmdDrawIndirectFunc)                                                         GET_PROC_ADDR("vkCmdDrawIndirect");
+m_vk.cmdDrawIndexedIndirect                                            = (CmdDrawIndexedIndirectFunc)                                          GET_PROC_ADDR("vkCmdDrawIndexedIndirect");
+m_vk.cmdDispatch                                                               = (CmdDispatchFunc)                                                                     GET_PROC_ADDR("vkCmdDispatch");
+m_vk.cmdDispatchIndirect                                               = (CmdDispatchIndirectFunc)                                                     GET_PROC_ADDR("vkCmdDispatchIndirect");
+m_vk.cmdCopyBuffer                                                             = (CmdCopyBufferFunc)                                                           GET_PROC_ADDR("vkCmdCopyBuffer");
+m_vk.cmdCopyImage                                                              = (CmdCopyImageFunc)                                                            GET_PROC_ADDR("vkCmdCopyImage");
+m_vk.cmdBlitImage                                                              = (CmdBlitImageFunc)                                                            GET_PROC_ADDR("vkCmdBlitImage");
+m_vk.cmdCopyBufferToImage                                              = (CmdCopyBufferToImageFunc)                                            GET_PROC_ADDR("vkCmdCopyBufferToImage");
+m_vk.cmdCopyImageToBuffer                                              = (CmdCopyImageToBufferFunc)                                            GET_PROC_ADDR("vkCmdCopyImageToBuffer");
+m_vk.cmdUpdateBuffer                                                   = (CmdUpdateBufferFunc)                                                         GET_PROC_ADDR("vkCmdUpdateBuffer");
+m_vk.cmdFillBuffer                                                             = (CmdFillBufferFunc)                                                           GET_PROC_ADDR("vkCmdFillBuffer");
+m_vk.cmdClearColorImage                                                        = (CmdClearColorImageFunc)                                                      GET_PROC_ADDR("vkCmdClearColorImage");
+m_vk.cmdClearDepthStencilImage                                 = (CmdClearDepthStencilImageFunc)                                       GET_PROC_ADDR("vkCmdClearDepthStencilImage");
+m_vk.cmdClearAttachments                                               = (CmdClearAttachmentsFunc)                                                     GET_PROC_ADDR("vkCmdClearAttachments");
+m_vk.cmdResolveImage                                                   = (CmdResolveImageFunc)                                                         GET_PROC_ADDR("vkCmdResolveImage");
+m_vk.cmdSetEvent                                                               = (CmdSetEventFunc)                                                                     GET_PROC_ADDR("vkCmdSetEvent");
+m_vk.cmdResetEvent                                                             = (CmdResetEventFunc)                                                           GET_PROC_ADDR("vkCmdResetEvent");
+m_vk.cmdWaitEvents                                                             = (CmdWaitEventsFunc)                                                           GET_PROC_ADDR("vkCmdWaitEvents");
+m_vk.cmdPipelineBarrier                                                        = (CmdPipelineBarrierFunc)                                                      GET_PROC_ADDR("vkCmdPipelineBarrier");
+m_vk.cmdBeginQuery                                                             = (CmdBeginQueryFunc)                                                           GET_PROC_ADDR("vkCmdBeginQuery");
+m_vk.cmdEndQuery                                                               = (CmdEndQueryFunc)                                                                     GET_PROC_ADDR("vkCmdEndQuery");
+m_vk.cmdResetQueryPool                                                 = (CmdResetQueryPoolFunc)                                                       GET_PROC_ADDR("vkCmdResetQueryPool");
+m_vk.cmdWriteTimestamp                                                 = (CmdWriteTimestampFunc)                                                       GET_PROC_ADDR("vkCmdWriteTimestamp");
+m_vk.cmdCopyQueryPoolResults                                   = (CmdCopyQueryPoolResultsFunc)                                         GET_PROC_ADDR("vkCmdCopyQueryPoolResults");
+m_vk.cmdPushConstants                                                  = (CmdPushConstantsFunc)                                                        GET_PROC_ADDR("vkCmdPushConstants");
+m_vk.cmdBeginRenderPass                                                        = (CmdBeginRenderPassFunc)                                                      GET_PROC_ADDR("vkCmdBeginRenderPass");
+m_vk.cmdNextSubpass                                                            = (CmdNextSubpassFunc)                                                          GET_PROC_ADDR("vkCmdNextSubpass");
+m_vk.cmdEndRenderPass                                                  = (CmdEndRenderPassFunc)                                                        GET_PROC_ADDR("vkCmdEndRenderPass");
+m_vk.cmdExecuteCommands                                                        = (CmdExecuteCommandsFunc)                                                      GET_PROC_ADDR("vkCmdExecuteCommands");
+m_vk.bindBufferMemory2                                                 = (BindBufferMemory2Func)                                                       GET_PROC_ADDR("vkBindBufferMemory2");
 if (!m_vk.bindBufferMemory2)
-       m_vk.bindBufferMemory2                                                          = (BindBufferMemory2Func)                                                               GET_PROC_ADDR("vkBindBufferMemory2KHR");
-m_vk.bindImageMemory2                                                                  = (BindImageMemory2Func)                                                                GET_PROC_ADDR("vkBindImageMemory2");
+       m_vk.bindBufferMemory2                                          = (BindBufferMemory2Func)                                                       GET_PROC_ADDR("vkBindBufferMemory2KHR");
+m_vk.bindImageMemory2                                                  = (BindImageMemory2Func)                                                        GET_PROC_ADDR("vkBindImageMemory2");
 if (!m_vk.bindImageMemory2)
-       m_vk.bindImageMemory2                                                           = (BindImageMemory2Func)                                                                GET_PROC_ADDR("vkBindImageMemory2KHR");
-m_vk.getDeviceGroupPeerMemoryFeatures                                  = (GetDeviceGroupPeerMemoryFeaturesFunc)                                GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeatures");
+       m_vk.bindImageMemory2                                           = (BindImageMemory2Func)                                                        GET_PROC_ADDR("vkBindImageMemory2KHR");
+m_vk.getDeviceGroupPeerMemoryFeatures                  = (GetDeviceGroupPeerMemoryFeaturesFunc)                        GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeatures");
 if (!m_vk.getDeviceGroupPeerMemoryFeatures)
-       m_vk.getDeviceGroupPeerMemoryFeatures                           = (GetDeviceGroupPeerMemoryFeaturesFunc)                                GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeaturesKHR");
-m_vk.cmdSetDeviceMask                                                                  = (CmdSetDeviceMaskFunc)                                                                GET_PROC_ADDR("vkCmdSetDeviceMask");
+       m_vk.getDeviceGroupPeerMemoryFeatures           = (GetDeviceGroupPeerMemoryFeaturesFunc)                        GET_PROC_ADDR("vkGetDeviceGroupPeerMemoryFeaturesKHR");
+m_vk.cmdSetDeviceMask                                                  = (CmdSetDeviceMaskFunc)                                                        GET_PROC_ADDR("vkCmdSetDeviceMask");
 if (!m_vk.cmdSetDeviceMask)
-       m_vk.cmdSetDeviceMask                                                           = (CmdSetDeviceMaskFunc)                                                                GET_PROC_ADDR("vkCmdSetDeviceMaskKHR");
-m_vk.cmdDispatchBase                                                                   = (CmdDispatchBaseFunc)                                                                 GET_PROC_ADDR("vkCmdDispatchBase");
+       m_vk.cmdSetDeviceMask                                           = (CmdSetDeviceMaskFunc)                                                        GET_PROC_ADDR("vkCmdSetDeviceMaskKHR");
+m_vk.cmdDispatchBase                                                   = (CmdDispatchBaseFunc)                                                         GET_PROC_ADDR("vkCmdDispatchBase");
 if (!m_vk.cmdDispatchBase)
-       m_vk.cmdDispatchBase                                                            = (CmdDispatchBaseFunc)                                                                 GET_PROC_ADDR("vkCmdDispatchBaseKHR");
-m_vk.getImageMemoryRequirements2                                               = (GetImageMemoryRequirements2Func)                                             GET_PROC_ADDR("vkGetImageMemoryRequirements2");
+       m_vk.cmdDispatchBase                                            = (CmdDispatchBaseFunc)                                                         GET_PROC_ADDR("vkCmdDispatchBaseKHR");
+m_vk.getImageMemoryRequirements2                               = (GetImageMemoryRequirements2Func)                                     GET_PROC_ADDR("vkGetImageMemoryRequirements2");
 if (!m_vk.getImageMemoryRequirements2)
-       m_vk.getImageMemoryRequirements2                                        = (GetImageMemoryRequirements2Func)                                             GET_PROC_ADDR("vkGetImageMemoryRequirements2KHR");
-m_vk.getBufferMemoryRequirements2                                              = (GetBufferMemoryRequirements2Func)                                    GET_PROC_ADDR("vkGetBufferMemoryRequirements2");
+       m_vk.getImageMemoryRequirements2                        = (GetImageMemoryRequirements2Func)                                     GET_PROC_ADDR("vkGetImageMemoryRequirements2KHR");
+m_vk.getBufferMemoryRequirements2                              = (GetBufferMemoryRequirements2Func)                            GET_PROC_ADDR("vkGetBufferMemoryRequirements2");
 if (!m_vk.getBufferMemoryRequirements2)
-       m_vk.getBufferMemoryRequirements2                                       = (GetBufferMemoryRequirements2Func)                                    GET_PROC_ADDR("vkGetBufferMemoryRequirements2KHR");
-m_vk.getImageSparseMemoryRequirements2                                 = (GetImageSparseMemoryRequirements2Func)                               GET_PROC_ADDR("vkGetImageSparseMemoryRequirements2");
+       m_vk.getBufferMemoryRequirements2                       = (GetBufferMemoryRequirements2Func)                            GET_PROC_ADDR("vkGetBufferMemoryRequirements2KHR");
+m_vk.getImageSparseMemoryRequirements2                 = (GetImageSparseMemoryRequirements2Func)                       GET_PROC_ADDR("vkGetImageSparseMemoryRequirements2");
 if (!m_vk.getImageSparseMemoryRequirements2)
-       m_vk.getImageSparseMemoryRequirements2                          = (GetImageSparseMemoryRequirements2Func)                               GET_PROC_ADDR("vkGetImageSparseMemoryRequirements2KHR");
-m_vk.trimCommandPool                                                                   = (TrimCommandPoolFunc)                                                                 GET_PROC_ADDR("vkTrimCommandPool");
+       m_vk.getImageSparseMemoryRequirements2          = (GetImageSparseMemoryRequirements2Func)                       GET_PROC_ADDR("vkGetImageSparseMemoryRequirements2KHR");
+m_vk.trimCommandPool                                                   = (TrimCommandPoolFunc)                                                         GET_PROC_ADDR("vkTrimCommandPool");
 if (!m_vk.trimCommandPool)
-       m_vk.trimCommandPool                                                            = (TrimCommandPoolFunc)                                                                 GET_PROC_ADDR("vkTrimCommandPoolKHR");
-m_vk.getDeviceQueue2                                                                   = (GetDeviceQueue2Func)                                                                 GET_PROC_ADDR("vkGetDeviceQueue2");
-m_vk.createSamplerYcbcrConversion                                              = (CreateSamplerYcbcrConversionFunc)                                    GET_PROC_ADDR("vkCreateSamplerYcbcrConversion");
+       m_vk.trimCommandPool                                            = (TrimCommandPoolFunc)                                                         GET_PROC_ADDR("vkTrimCommandPoolKHR");
+m_vk.getDeviceQueue2                                                   = (GetDeviceQueue2Func)                                                         GET_PROC_ADDR("vkGetDeviceQueue2");
+m_vk.createSamplerYcbcrConversion                              = (CreateSamplerYcbcrConversionFunc)                            GET_PROC_ADDR("vkCreateSamplerYcbcrConversion");
 if (!m_vk.createSamplerYcbcrConversion)
-       m_vk.createSamplerYcbcrConversion                                       = (CreateSamplerYcbcrConversionFunc)                                    GET_PROC_ADDR("vkCreateSamplerYcbcrConversionKHR");
-m_vk.destroySamplerYcbcrConversion                                             = (DestroySamplerYcbcrConversionFunc)                                   GET_PROC_ADDR("vkDestroySamplerYcbcrConversion");
+       m_vk.createSamplerYcbcrConversion                       = (CreateSamplerYcbcrConversionFunc)                            GET_PROC_ADDR("vkCreateSamplerYcbcrConversionKHR");
+m_vk.destroySamplerYcbcrConversion                             = (DestroySamplerYcbcrConversionFunc)                           GET_PROC_ADDR("vkDestroySamplerYcbcrConversion");
 if (!m_vk.destroySamplerYcbcrConversion)
-       m_vk.destroySamplerYcbcrConversion                                      = (DestroySamplerYcbcrConversionFunc)                                   GET_PROC_ADDR("vkDestroySamplerYcbcrConversionKHR");
-m_vk.createDescriptorUpdateTemplate                                            = (CreateDescriptorUpdateTemplateFunc)                                  GET_PROC_ADDR("vkCreateDescriptorUpdateTemplate");
+       m_vk.destroySamplerYcbcrConversion                      = (DestroySamplerYcbcrConversionFunc)                           GET_PROC_ADDR("vkDestroySamplerYcbcrConversionKHR");
+m_vk.createDescriptorUpdateTemplate                            = (CreateDescriptorUpdateTemplateFunc)                          GET_PROC_ADDR("vkCreateDescriptorUpdateTemplate");
 if (!m_vk.createDescriptorUpdateTemplate)
-       m_vk.createDescriptorUpdateTemplate                                     = (CreateDescriptorUpdateTemplateFunc)                                  GET_PROC_ADDR("vkCreateDescriptorUpdateTemplateKHR");
-m_vk.destroyDescriptorUpdateTemplate                                   = (DestroyDescriptorUpdateTemplateFunc)                                 GET_PROC_ADDR("vkDestroyDescriptorUpdateTemplate");
+       m_vk.createDescriptorUpdateTemplate                     = (CreateDescriptorUpdateTemplateFunc)                          GET_PROC_ADDR("vkCreateDescriptorUpdateTemplateKHR");
+m_vk.destroyDescriptorUpdateTemplate                   = (DestroyDescriptorUpdateTemplateFunc)                         GET_PROC_ADDR("vkDestroyDescriptorUpdateTemplate");
 if (!m_vk.destroyDescriptorUpdateTemplate)
-       m_vk.destroyDescriptorUpdateTemplate                            = (DestroyDescriptorUpdateTemplateFunc)                                 GET_PROC_ADDR("vkDestroyDescriptorUpdateTemplateKHR");
-m_vk.updateDescriptorSetWithTemplate                                   = (UpdateDescriptorSetWithTemplateFunc)                                 GET_PROC_ADDR("vkUpdateDescriptorSetWithTemplate");
+       m_vk.destroyDescriptorUpdateTemplate            = (DestroyDescriptorUpdateTemplateFunc)                         GET_PROC_ADDR("vkDestroyDescriptorUpdateTemplateKHR");
+m_vk.updateDescriptorSetWithTemplate                   = (UpdateDescriptorSetWithTemplateFunc)                         GET_PROC_ADDR("vkUpdateDescriptorSetWithTemplate");
 if (!m_vk.updateDescriptorSetWithTemplate)
-       m_vk.updateDescriptorSetWithTemplate                            = (UpdateDescriptorSetWithTemplateFunc)                                 GET_PROC_ADDR("vkUpdateDescriptorSetWithTemplateKHR");
-m_vk.getDescriptorSetLayoutSupport                                             = (GetDescriptorSetLayoutSupportFunc)                                   GET_PROC_ADDR("vkGetDescriptorSetLayoutSupport");
+       m_vk.updateDescriptorSetWithTemplate            = (UpdateDescriptorSetWithTemplateFunc)                         GET_PROC_ADDR("vkUpdateDescriptorSetWithTemplateKHR");
+m_vk.getDescriptorSetLayoutSupport                             = (GetDescriptorSetLayoutSupportFunc)                           GET_PROC_ADDR("vkGetDescriptorSetLayoutSupport");
 if (!m_vk.getDescriptorSetLayoutSupport)
-       m_vk.getDescriptorSetLayoutSupport                                      = (GetDescriptorSetLayoutSupportFunc)                                   GET_PROC_ADDR("vkGetDescriptorSetLayoutSupportKHR");
-m_vk.createSwapchainKHR                                                                        = (CreateSwapchainKHRFunc)                                                              GET_PROC_ADDR("vkCreateSwapchainKHR");
-m_vk.destroySwapchainKHR                                                               = (DestroySwapchainKHRFunc)                                                             GET_PROC_ADDR("vkDestroySwapchainKHR");
-m_vk.getSwapchainImagesKHR                                                             = (GetSwapchainImagesKHRFunc)                                                   GET_PROC_ADDR("vkGetSwapchainImagesKHR");
-m_vk.acquireNextImageKHR                                                               = (AcquireNextImageKHRFunc)                                                             GET_PROC_ADDR("vkAcquireNextImageKHR");
-m_vk.queuePresentKHR                                                                   = (QueuePresentKHRFunc)                                                                 GET_PROC_ADDR("vkQueuePresentKHR");
-m_vk.getDeviceGroupPresentCapabilitiesKHR                              = (GetDeviceGroupPresentCapabilitiesKHRFunc)                    GET_PROC_ADDR("vkGetDeviceGroupPresentCapabilitiesKHR");
-m_vk.getDeviceGroupSurfacePresentModesKHR                              = (GetDeviceGroupSurfacePresentModesKHRFunc)                    GET_PROC_ADDR("vkGetDeviceGroupSurfacePresentModesKHR");
-m_vk.acquireNextImage2KHR                                                              = (AcquireNextImage2KHRFunc)                                                    GET_PROC_ADDR("vkAcquireNextImage2KHR");
-m_vk.createSharedSwapchainsKHR                                                 = (CreateSharedSwapchainsKHRFunc)                                               GET_PROC_ADDR("vkCreateSharedSwapchainsKHR");
-m_vk.getMemoryWin32HandleKHR                                                   = (GetMemoryWin32HandleKHRFunc)                                                 GET_PROC_ADDR("vkGetMemoryWin32HandleKHR");
-m_vk.getMemoryWin32HandlePropertiesKHR                                 = (GetMemoryWin32HandlePropertiesKHRFunc)                               GET_PROC_ADDR("vkGetMemoryWin32HandlePropertiesKHR");
-m_vk.getMemoryFdKHR                                                                            = (GetMemoryFdKHRFunc)                                                                  GET_PROC_ADDR("vkGetMemoryFdKHR");
-m_vk.getMemoryFdPropertiesKHR                                                  = (GetMemoryFdPropertiesKHRFunc)                                                GET_PROC_ADDR("vkGetMemoryFdPropertiesKHR");
-m_vk.importSemaphoreWin32HandleKHR                                             = (ImportSemaphoreWin32HandleKHRFunc)                                   GET_PROC_ADDR("vkImportSemaphoreWin32HandleKHR");
-m_vk.getSemaphoreWin32HandleKHR                                                        = (GetSemaphoreWin32HandleKHRFunc)                                              GET_PROC_ADDR("vkGetSemaphoreWin32HandleKHR");
-m_vk.importSemaphoreFdKHR                                                              = (ImportSemaphoreFdKHRFunc)                                                    GET_PROC_ADDR("vkImportSemaphoreFdKHR");
-m_vk.getSemaphoreFdKHR                                                                 = (GetSemaphoreFdKHRFunc)                                                               GET_PROC_ADDR("vkGetSemaphoreFdKHR");
-m_vk.cmdPushDescriptorSetKHR                                                   = (CmdPushDescriptorSetKHRFunc)                                                 GET_PROC_ADDR("vkCmdPushDescriptorSetKHR");
-m_vk.cmdPushDescriptorSetWithTemplateKHR                               = (CmdPushDescriptorSetWithTemplateKHRFunc)                             GET_PROC_ADDR("vkCmdPushDescriptorSetWithTemplateKHR");
-m_vk.getSwapchainStatusKHR                                                             = (GetSwapchainStatusKHRFunc)                                                   GET_PROC_ADDR("vkGetSwapchainStatusKHR");
-m_vk.importFenceWin32HandleKHR                                                 = (ImportFenceWin32HandleKHRFunc)                                               GET_PROC_ADDR("vkImportFenceWin32HandleKHR");
-m_vk.getFenceWin32HandleKHR                                                            = (GetFenceWin32HandleKHRFunc)                                                  GET_PROC_ADDR("vkGetFenceWin32HandleKHR");
-m_vk.importFenceFdKHR                                                                  = (ImportFenceFdKHRFunc)                                                                GET_PROC_ADDR("vkImportFenceFdKHR");
-m_vk.getFenceFdKHR                                                                             = (GetFenceFdKHRFunc)                                                                   GET_PROC_ADDR("vkGetFenceFdKHR");
-m_vk.debugMarkerSetObjectTagEXT                                                        = (DebugMarkerSetObjectTagEXTFunc)                                              GET_PROC_ADDR("vkDebugMarkerSetObjectTagEXT");
-m_vk.debugMarkerSetObjectNameEXT                                               = (DebugMarkerSetObjectNameEXTFunc)                                             GET_PROC_ADDR("vkDebugMarkerSetObjectNameEXT");
-m_vk.cmdDebugMarkerBeginEXT                                                            = (CmdDebugMarkerBeginEXTFunc)                                                  GET_PROC_ADDR("vkCmdDebugMarkerBeginEXT");
-m_vk.cmdDebugMarkerEndEXT                                                              = (CmdDebugMarkerEndEXTFunc)                                                    GET_PROC_ADDR("vkCmdDebugMarkerEndEXT");
-m_vk.cmdDebugMarkerInsertEXT                                                   = (CmdDebugMarkerInsertEXTFunc)                                                 GET_PROC_ADDR("vkCmdDebugMarkerInsertEXT");
-m_vk.cmdDrawIndirectCountAMD                                                   = (CmdDrawIndirectCountAMDFunc)                                                 GET_PROC_ADDR("vkCmdDrawIndirectCountAMD");
-m_vk.cmdDrawIndexedIndirectCountAMD                                            = (CmdDrawIndexedIndirectCountAMDFunc)                                  GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountAMD");
-m_vk.getMemoryWin32HandleNV                                                            = (GetMemoryWin32HandleNVFunc)                                                  GET_PROC_ADDR("vkGetMemoryWin32HandleNV");
-m_vk.cmdProcessCommandsNVX                                                             = (CmdProcessCommandsNVXFunc)                                                   GET_PROC_ADDR("vkCmdProcessCommandsNVX");
-m_vk.cmdReserveSpaceForCommandsNVX                                             = (CmdReserveSpaceForCommandsNVXFunc)                                   GET_PROC_ADDR("vkCmdReserveSpaceForCommandsNVX");
-m_vk.createIndirectCommandsLayoutNVX                                   = (CreateIndirectCommandsLayoutNVXFunc)                                 GET_PROC_ADDR("vkCreateIndirectCommandsLayoutNVX");
-m_vk.destroyIndirectCommandsLayoutNVX                                  = (DestroyIndirectCommandsLayoutNVXFunc)                                GET_PROC_ADDR("vkDestroyIndirectCommandsLayoutNVX");
-m_vk.createObjectTableNVX                                                              = (CreateObjectTableNVXFunc)                                                    GET_PROC_ADDR("vkCreateObjectTableNVX");
-m_vk.destroyObjectTableNVX                                                             = (DestroyObjectTableNVXFunc)                                                   GET_PROC_ADDR("vkDestroyObjectTableNVX");
-m_vk.registerObjectsNVX                                                                        = (RegisterObjectsNVXFunc)                                                              GET_PROC_ADDR("vkRegisterObjectsNVX");
-m_vk.unregisterObjectsNVX                                                              = (UnregisterObjectsNVXFunc)                                                    GET_PROC_ADDR("vkUnregisterObjectsNVX");
-m_vk.cmdSetViewportWScalingNV                                                  = (CmdSetViewportWScalingNVFunc)                                                GET_PROC_ADDR("vkCmdSetViewportWScalingNV");
-m_vk.displayPowerControlEXT                                                            = (DisplayPowerControlEXTFunc)                                                  GET_PROC_ADDR("vkDisplayPowerControlEXT");
-m_vk.registerDeviceEventEXT                                                            = (RegisterDeviceEventEXTFunc)                                                  GET_PROC_ADDR("vkRegisterDeviceEventEXT");
-m_vk.registerDisplayEventEXT                                                   = (RegisterDisplayEventEXTFunc)                                                 GET_PROC_ADDR("vkRegisterDisplayEventEXT");
-m_vk.getSwapchainCounterEXT                                                            = (GetSwapchainCounterEXTFunc)                                                  GET_PROC_ADDR("vkGetSwapchainCounterEXT");
-m_vk.getRefreshCycleDurationGOOGLE                                             = (GetRefreshCycleDurationGOOGLEFunc)                                   GET_PROC_ADDR("vkGetRefreshCycleDurationGOOGLE");
-m_vk.getPastPresentationTimingGOOGLE                                   = (GetPastPresentationTimingGOOGLEFunc)                                 GET_PROC_ADDR("vkGetPastPresentationTimingGOOGLE");
-m_vk.cmdSetDiscardRectangleEXT                                                 = (CmdSetDiscardRectangleEXTFunc)                                               GET_PROC_ADDR("vkCmdSetDiscardRectangleEXT");
-m_vk.setHdrMetadataEXT                                                                 = (SetHdrMetadataEXTFunc)                                                               GET_PROC_ADDR("vkSetHdrMetadataEXT");
-m_vk.cmdSetSampleLocationsEXT                                                  = (CmdSetSampleLocationsEXTFunc)                                                GET_PROC_ADDR("vkCmdSetSampleLocationsEXT");
-m_vk.createValidationCacheEXT                                                  = (CreateValidationCacheEXTFunc)                                                GET_PROC_ADDR("vkCreateValidationCacheEXT");
-m_vk.destroyValidationCacheEXT                                                 = (DestroyValidationCacheEXTFunc)                                               GET_PROC_ADDR("vkDestroyValidationCacheEXT");
-m_vk.mergeValidationCachesEXT                                                  = (MergeValidationCachesEXTFunc)                                                GET_PROC_ADDR("vkMergeValidationCachesEXT");
-m_vk.getValidationCacheDataEXT                                                 = (GetValidationCacheDataEXTFunc)                                               GET_PROC_ADDR("vkGetValidationCacheDataEXT");
-m_vk.getMemoryAndroidHardwareBufferPropertiesANDROID   = (GetMemoryAndroidHardwareBufferPropertiesANDROIDFunc) GET_PROC_ADDR("vkGetMemoryAndroidHardwareBufferPropertiesANDROID");
-m_vk.getMemoryAndroidHardwareBufferANDROID                             = (GetMemoryAndroidHardwareBufferANDROIDFunc)                   GET_PROC_ADDR("vkGetMemoryAndroidHardwareBufferANDROID");
+       m_vk.getDescriptorSetLayoutSupport                      = (GetDescriptorSetLayoutSupportFunc)                           GET_PROC_ADDR("vkGetDescriptorSetLayoutSupportKHR");
+m_vk.createSwapchainKHR                                                        = (CreateSwapchainKHRFunc)                                                      GET_PROC_ADDR("vkCreateSwapchainKHR");
+m_vk.destroySwapchainKHR                                               = (DestroySwapchainKHRFunc)                                                     GET_PROC_ADDR("vkDestroySwapchainKHR");
+m_vk.getSwapchainImagesKHR                                             = (GetSwapchainImagesKHRFunc)                                           GET_PROC_ADDR("vkGetSwapchainImagesKHR");
+m_vk.acquireNextImageKHR                                               = (AcquireNextImageKHRFunc)                                                     GET_PROC_ADDR("vkAcquireNextImageKHR");
+m_vk.queuePresentKHR                                                   = (QueuePresentKHRFunc)                                                         GET_PROC_ADDR("vkQueuePresentKHR");
+m_vk.getDeviceGroupPresentCapabilitiesKHR              = (GetDeviceGroupPresentCapabilitiesKHRFunc)            GET_PROC_ADDR("vkGetDeviceGroupPresentCapabilitiesKHR");
+m_vk.getDeviceGroupSurfacePresentModesKHR              = (GetDeviceGroupSurfacePresentModesKHRFunc)            GET_PROC_ADDR("vkGetDeviceGroupSurfacePresentModesKHR");
+m_vk.acquireNextImage2KHR                                              = (AcquireNextImage2KHRFunc)                                            GET_PROC_ADDR("vkAcquireNextImage2KHR");
+m_vk.createSharedSwapchainsKHR                                 = (CreateSharedSwapchainsKHRFunc)                                       GET_PROC_ADDR("vkCreateSharedSwapchainsKHR");
+m_vk.getMemoryWin32HandleKHR                                   = (GetMemoryWin32HandleKHRFunc)                                         GET_PROC_ADDR("vkGetMemoryWin32HandleKHR");
+m_vk.getMemoryWin32HandlePropertiesKHR                 = (GetMemoryWin32HandlePropertiesKHRFunc)                       GET_PROC_ADDR("vkGetMemoryWin32HandlePropertiesKHR");
+m_vk.getMemoryFdKHR                                                            = (GetMemoryFdKHRFunc)                                                          GET_PROC_ADDR("vkGetMemoryFdKHR");
+m_vk.getMemoryFdPropertiesKHR                                  = (GetMemoryFdPropertiesKHRFunc)                                        GET_PROC_ADDR("vkGetMemoryFdPropertiesKHR");
+m_vk.importSemaphoreWin32HandleKHR                             = (ImportSemaphoreWin32HandleKHRFunc)                           GET_PROC_ADDR("vkImportSemaphoreWin32HandleKHR");
+m_vk.getSemaphoreWin32HandleKHR                                        = (GetSemaphoreWin32HandleKHRFunc)                                      GET_PROC_ADDR("vkGetSemaphoreWin32HandleKHR");
+m_vk.importSemaphoreFdKHR                                              = (ImportSemaphoreFdKHRFunc)                                            GET_PROC_ADDR("vkImportSemaphoreFdKHR");
+m_vk.getSemaphoreFdKHR                                                 = (GetSemaphoreFdKHRFunc)                                                       GET_PROC_ADDR("vkGetSemaphoreFdKHR");
+m_vk.cmdPushDescriptorSetKHR                                   = (CmdPushDescriptorSetKHRFunc)                                         GET_PROC_ADDR("vkCmdPushDescriptorSetKHR");
+m_vk.cmdPushDescriptorSetWithTemplateKHR               = (CmdPushDescriptorSetWithTemplateKHRFunc)                     GET_PROC_ADDR("vkCmdPushDescriptorSetWithTemplateKHR");
+m_vk.getSwapchainStatusKHR                                             = (GetSwapchainStatusKHRFunc)                                           GET_PROC_ADDR("vkGetSwapchainStatusKHR");
+m_vk.importFenceWin32HandleKHR                                 = (ImportFenceWin32HandleKHRFunc)                                       GET_PROC_ADDR("vkImportFenceWin32HandleKHR");
+m_vk.getFenceWin32HandleKHR                                            = (GetFenceWin32HandleKHRFunc)                                          GET_PROC_ADDR("vkGetFenceWin32HandleKHR");
+m_vk.importFenceFdKHR                                                  = (ImportFenceFdKHRFunc)                                                        GET_PROC_ADDR("vkImportFenceFdKHR");
+m_vk.getFenceFdKHR                                                             = (GetFenceFdKHRFunc)                                                           GET_PROC_ADDR("vkGetFenceFdKHR");
+m_vk.debugMarkerSetObjectTagEXT                                        = (DebugMarkerSetObjectTagEXTFunc)                                      GET_PROC_ADDR("vkDebugMarkerSetObjectTagEXT");
+m_vk.debugMarkerSetObjectNameEXT                               = (DebugMarkerSetObjectNameEXTFunc)                                     GET_PROC_ADDR("vkDebugMarkerSetObjectNameEXT");
+m_vk.cmdDebugMarkerBeginEXT                                            = (CmdDebugMarkerBeginEXTFunc)                                          GET_PROC_ADDR("vkCmdDebugMarkerBeginEXT");
+m_vk.cmdDebugMarkerEndEXT                                              = (CmdDebugMarkerEndEXTFunc)                                            GET_PROC_ADDR("vkCmdDebugMarkerEndEXT");
+m_vk.cmdDebugMarkerInsertEXT                                   = (CmdDebugMarkerInsertEXTFunc)                                         GET_PROC_ADDR("vkCmdDebugMarkerInsertEXT");
+m_vk.cmdDrawIndirectCountAMD                                   = (CmdDrawIndirectCountAMDFunc)                                         GET_PROC_ADDR("vkCmdDrawIndirectCountAMD");
+m_vk.cmdDrawIndexedIndirectCountAMD                            = (CmdDrawIndexedIndirectCountAMDFunc)                          GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountAMD");
+m_vk.getMemoryWin32HandleNV                                            = (GetMemoryWin32HandleNVFunc)                                          GET_PROC_ADDR("vkGetMemoryWin32HandleNV");
+m_vk.cmdProcessCommandsNVX                                             = (CmdProcessCommandsNVXFunc)                                           GET_PROC_ADDR("vkCmdProcessCommandsNVX");
+m_vk.cmdReserveSpaceForCommandsNVX                             = (CmdReserveSpaceForCommandsNVXFunc)                           GET_PROC_ADDR("vkCmdReserveSpaceForCommandsNVX");
+m_vk.createIndirectCommandsLayoutNVX                   = (CreateIndirectCommandsLayoutNVXFunc)                         GET_PROC_ADDR("vkCreateIndirectCommandsLayoutNVX");
+m_vk.destroyIndirectCommandsLayoutNVX                  = (DestroyIndirectCommandsLayoutNVXFunc)                        GET_PROC_ADDR("vkDestroyIndirectCommandsLayoutNVX");
+m_vk.createObjectTableNVX                                              = (CreateObjectTableNVXFunc)                                            GET_PROC_ADDR("vkCreateObjectTableNVX");
+m_vk.destroyObjectTableNVX                                             = (DestroyObjectTableNVXFunc)                                           GET_PROC_ADDR("vkDestroyObjectTableNVX");
+m_vk.registerObjectsNVX                                                        = (RegisterObjectsNVXFunc)                                                      GET_PROC_ADDR("vkRegisterObjectsNVX");
+m_vk.unregisterObjectsNVX                                              = (UnregisterObjectsNVXFunc)                                            GET_PROC_ADDR("vkUnregisterObjectsNVX");
+m_vk.cmdSetViewportWScalingNV                                  = (CmdSetViewportWScalingNVFunc)                                        GET_PROC_ADDR("vkCmdSetViewportWScalingNV");
+m_vk.displayPowerControlEXT                                            = (DisplayPowerControlEXTFunc)                                          GET_PROC_ADDR("vkDisplayPowerControlEXT");
+m_vk.registerDeviceEventEXT                                            = (RegisterDeviceEventEXTFunc)                                          GET_PROC_ADDR("vkRegisterDeviceEventEXT");
+m_vk.registerDisplayEventEXT                                   = (RegisterDisplayEventEXTFunc)                                         GET_PROC_ADDR("vkRegisterDisplayEventEXT");
+m_vk.getSwapchainCounterEXT                                            = (GetSwapchainCounterEXTFunc)                                          GET_PROC_ADDR("vkGetSwapchainCounterEXT");
+m_vk.getRefreshCycleDurationGOOGLE                             = (GetRefreshCycleDurationGOOGLEFunc)                           GET_PROC_ADDR("vkGetRefreshCycleDurationGOOGLE");
+m_vk.getPastPresentationTimingGOOGLE                   = (GetPastPresentationTimingGOOGLEFunc)                         GET_PROC_ADDR("vkGetPastPresentationTimingGOOGLE");
+m_vk.cmdSetDiscardRectangleEXT                                 = (CmdSetDiscardRectangleEXTFunc)                                       GET_PROC_ADDR("vkCmdSetDiscardRectangleEXT");
+m_vk.setHdrMetadataEXT                                                 = (SetHdrMetadataEXTFunc)                                                       GET_PROC_ADDR("vkSetHdrMetadataEXT");
+m_vk.cmdSetSampleLocationsEXT                                  = (CmdSetSampleLocationsEXTFunc)                                        GET_PROC_ADDR("vkCmdSetSampleLocationsEXT");
+m_vk.createValidationCacheEXT                                  = (CreateValidationCacheEXTFunc)                                        GET_PROC_ADDR("vkCreateValidationCacheEXT");
+m_vk.destroyValidationCacheEXT                                 = (DestroyValidationCacheEXTFunc)                                       GET_PROC_ADDR("vkDestroyValidationCacheEXT");
+m_vk.mergeValidationCachesEXT                                  = (MergeValidationCachesEXTFunc)                                        GET_PROC_ADDR("vkMergeValidationCachesEXT");
+m_vk.getValidationCacheDataEXT                                 = (GetValidationCacheDataEXTFunc)                                       GET_PROC_ADDR("vkGetValidationCacheDataEXT");
+m_vk.getAndroidHardwareBufferPropertiesANDROID = (GetAndroidHardwareBufferPropertiesANDROIDFunc)       GET_PROC_ADDR("vkGetAndroidHardwareBufferPropertiesANDROID");
+m_vk.getMemoryAndroidHardwareBufferANDROID             = (GetMemoryAndroidHardwareBufferANDROIDFunc)           GET_PROC_ADDR("vkGetMemoryAndroidHardwareBufferANDROID");
index 6ca622e..c7418e7 100644 (file)
@@ -96,4 +96,3 @@ m_vk.getPhysicalDeviceSurfaceCapabilities2EXT                         = (GetPhysicalDeviceSurfaceCapa
 m_vk.createIOSSurfaceMVK                                                                       = (CreateIOSSurfaceMVKFunc)                                                                     GET_PROC_ADDR("vkCreateIOSSurfaceMVK");
 m_vk.createMacOSSurfaceMVK                                                                     = (CreateMacOSSurfaceMVKFunc)                                                           GET_PROC_ADDR("vkCreateMacOSSurfaceMVK");
 m_vk.getPhysicalDeviceMultisamplePropertiesEXT                         = (GetPhysicalDeviceMultisamplePropertiesEXTFunc)                       GET_PROC_ADDR("vkGetPhysicalDeviceMultisamplePropertiesEXT");
-m_vk.getPhysicalDeviceAndroidHardwareBufferUsageANDROID                = (GetPhysicalDeviceAndroidHardwareBufferUsageANDROIDFunc)      GET_PROC_ADDR("vkGetPhysicalDeviceAndroidHardwareBufferUsageANDROID");
index 8d80744..a62d4a3 100644 (file)
@@ -366,8 +366,3 @@ void InstanceDriver::getPhysicalDeviceMultisamplePropertiesEXT (VkPhysicalDevice
 {
        m_vk.getPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
 }
-
-void InstanceDriver::getPhysicalDeviceAndroidHardwareBufferUsageANDROID (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage) const
-{
-       m_vk.getPhysicalDeviceAndroidHardwareBufferUsageANDROID(physicalDevice, pInfo, pUsage);
-}
index 1424886..6cd31ef 100644 (file)
@@ -74,4 +74,3 @@ GetPhysicalDeviceSurfaceCapabilities2EXTFunc                  getPhysicalDeviceSurfaceCapabilit
 CreateIOSSurfaceMVKFunc                                                                        createIOSSurfaceMVK;
 CreateMacOSSurfaceMVKFunc                                                              createMacOSSurfaceMVK;
 GetPhysicalDeviceMultisamplePropertiesEXTFunc                  getPhysicalDeviceMultisamplePropertiesEXT;
-GetPhysicalDeviceAndroidHardwareBufferUsageANDROIDFunc getPhysicalDeviceAndroidHardwareBufferUsageANDROID;
index 659cff1..a37a0b3 100644 (file)
@@ -28,7 +28,7 @@
 #include "tcuFunctionLibrary.hpp"
 #include "deMemory.h"
 
-#if (DE_OS == DE_OS_ANDROID) && defined(__ANDROID_API_O__) && (__ANDROID_API__ >= __ANDROID_API_O__)
+#if (DE_OS == DE_OS_ANDROID) && defined(__ANDROID_API_O__) && (DE_ANDROID_API >= __ANDROID_API_O__ /* __ANDROID_API_O__ */)
 #      define USE_ANDROID_O_HARDWARE_BUFFER
 #endif
 #if defined(USE_ANDROID_O_HARDWARE_BUFFER)
@@ -1260,6 +1260,80 @@ VKAPI_ATTR VkResult VKAPI_CALL createSharedSwapchainsKHR (VkDevice device, deUin
        return VK_SUCCESS;
 }
 
+VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceExternalBufferPropertiesKHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties)
+{
+       DE_UNREF(physicalDevice);
+       DE_UNREF(pExternalBufferInfo);
+
+       pExternalBufferProperties->externalMemoryProperties.externalMemoryFeatures = 0;
+       pExternalBufferProperties->externalMemoryProperties.exportFromImportedHandleTypes = 0;
+       pExternalBufferProperties->externalMemoryProperties.compatibleHandleTypes = 0;
+
+       if (pExternalBufferInfo->handleType == VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID)
+       {
+               pExternalBufferProperties->externalMemoryProperties.externalMemoryFeatures = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR | VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR;
+               pExternalBufferProperties->externalMemoryProperties.exportFromImportedHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID;
+               pExternalBufferProperties->externalMemoryProperties.compatibleHandleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID;
+       }
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getPhysicalDeviceImageFormatProperties2KHR (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties)
+{
+       const VkPhysicalDeviceExternalImageFormatInfo* const    externalInfo            = findStructure<VkPhysicalDeviceExternalImageFormatInfo>(pImageFormatInfo->pNext);
+       VkExternalImageFormatProperties*        const                           externalProperties      = findStructure<VkExternalImageFormatProperties>(pImageFormatProperties->pNext);
+       VkResult                                                                                                result;
+
+       result = getPhysicalDeviceImageFormatProperties(physicalDevice, pImageFormatInfo->format, pImageFormatInfo->type, pImageFormatInfo->tiling, pImageFormatInfo->usage, pImageFormatInfo->flags, &pImageFormatProperties->imageFormatProperties);
+       if (result != VK_SUCCESS)
+               return result;
+
+       if (externalInfo && externalInfo->handleType != 0)
+       {
+               if (externalInfo->handleType != VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID)
+                       return VK_ERROR_FORMAT_NOT_SUPPORTED;
+
+               if (!(pImageFormatInfo->format == VK_FORMAT_R8G8B8A8_UNORM
+                         || pImageFormatInfo->format == VK_FORMAT_R8G8B8_UNORM
+                         || pImageFormatInfo->format == VK_FORMAT_R5G6B5_UNORM_PACK16
+                         || pImageFormatInfo->format == VK_FORMAT_R16G16B16A16_SFLOAT
+                         || pImageFormatInfo->format == VK_FORMAT_A2R10G10B10_UNORM_PACK32))
+               {
+                       return VK_ERROR_FORMAT_NOT_SUPPORTED;
+               }
+
+               if (pImageFormatInfo->type != VK_IMAGE_TYPE_2D)
+                       return VK_ERROR_FORMAT_NOT_SUPPORTED;
+
+               if ((pImageFormatInfo->usage & ~(VK_IMAGE_USAGE_TRANSFER_SRC_BIT
+                                                                               | VK_IMAGE_USAGE_TRANSFER_DST_BIT
+                                                                               | VK_IMAGE_USAGE_SAMPLED_BIT
+                                                                               | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT))
+                       != 0)
+               {
+                       return VK_ERROR_FORMAT_NOT_SUPPORTED;
+               }
+
+               if ((pImageFormatInfo->flags & ~(VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
+                                                                               /*| VK_IMAGE_CREATE_PROTECTED_BIT_KHR*/
+                                                                               /*| VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR*/))
+                       != 0)
+               {
+                       return VK_ERROR_FORMAT_NOT_SUPPORTED;
+               }
+
+               if (externalProperties)
+               {
+                       externalProperties->externalMemoryProperties.externalMemoryFeatures                     = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR
+                                                                                                                                                                               | VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR
+                                                                                                                                                                               | VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR;
+                       externalProperties->externalMemoryProperties.exportFromImportedHandleTypes      = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID;
+                       externalProperties->externalMemoryProperties.compatibleHandleTypes                      = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID;
+               }
+       }
+
+       return VK_SUCCESS;
+}
+
 // \note getInstanceProcAddr is a little bit special:
 // vkNullDriverImpl.inl needs it to define s_platformFunctions but
 // getInstanceProcAddr() implementation needs other entry points from
index e762992..451228e 100644 (file)
@@ -1764,14 +1764,7 @@ VKAPI_ATTR VkResult VKAPI_CALL getValidationCacheDataEXT (VkDevice device, VkVal
        return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceAndroidHardwareBufferUsageANDROID (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage)
-{
-       DE_UNREF(physicalDevice);
-       DE_UNREF(pInfo);
-       DE_UNREF(pUsage);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL getMemoryAndroidHardwareBufferPropertiesANDROID (VkDevice device, const pt::AndroidHardwareBufferPtr buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties)
+VKAPI_ATTR VkResult VKAPI_CALL getAndroidHardwareBufferPropertiesANDROID (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties)
 {
        DE_UNREF(device);
        DE_UNREF(buffer);
@@ -1790,291 +1783,290 @@ static const tcu::StaticFunctionLibrary::Entry s_platformFunctions[] =
 
 static const tcu::StaticFunctionLibrary::Entry s_instanceFunctions[] =
 {
-       VK_NULL_FUNC_ENTRY(vkDestroyInstance,                                                                           destroyInstance),
-       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDevices,                                                          enumeratePhysicalDevices),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures,                                                         getPhysicalDeviceFeatures),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties,                                         getPhysicalDeviceFormatProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties,                            getPhysicalDeviceImageFormatProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties,                                                       getPhysicalDeviceProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties,                            getPhysicalDeviceQueueFamilyProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties,                                         getPhysicalDeviceMemoryProperties),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceProcAddr,                                                                         getDeviceProcAddr),
-       VK_NULL_FUNC_ENTRY(vkCreateDevice,                                                                                      createDevice),
-       VK_NULL_FUNC_ENTRY(vkEnumerateDeviceExtensionProperties,                                        enumerateDeviceExtensionProperties),
-       VK_NULL_FUNC_ENTRY(vkEnumerateDeviceLayerProperties,                                            enumerateDeviceLayerProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties,                      getPhysicalDeviceSparseImageFormatProperties),
-       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroups,                                                     enumeratePhysicalDeviceGroups),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2,                                                        getPhysicalDeviceFeatures2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2,                                                      getPhysicalDeviceProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2,                                        getPhysicalDeviceFormatProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2,                           getPhysicalDeviceImageFormatProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2,                           getPhysicalDeviceQueueFamilyProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2,                                        getPhysicalDeviceMemoryProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2,                     getPhysicalDeviceSparseImageFormatProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferProperties,                         getPhysicalDeviceExternalBufferProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFenceProperties,                          getPhysicalDeviceExternalFenceProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphoreProperties,                      getPhysicalDeviceExternalSemaphoreProperties),
-       VK_NULL_FUNC_ENTRY(vkDestroySurfaceKHR,                                                                         destroySurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceSupportKHR,                                        getPhysicalDeviceSurfaceSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilitiesKHR,                           getPhysicalDeviceSurfaceCapabilitiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormatsKHR,                                        getPhysicalDeviceSurfaceFormatsKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfacePresentModesKHR,                           getPhysicalDeviceSurfacePresentModesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDevicePresentRectanglesKHR,                                     getPhysicalDevicePresentRectanglesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPropertiesKHR,                                     getPhysicalDeviceDisplayPropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPlanePropertiesKHR,                        getPhysicalDeviceDisplayPlanePropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneSupportedDisplaysKHR,                                       getDisplayPlaneSupportedDisplaysKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDisplayModePropertiesKHR,                                                       getDisplayModePropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateDisplayModeKHR,                                                                      createDisplayModeKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneCapabilitiesKHR,                                            getDisplayPlaneCapabilitiesKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateDisplayPlaneSurfaceKHR,                                                      createDisplayPlaneSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateXlibSurfaceKHR,                                                                      createXlibSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXlibPresentationSupportKHR,                       getPhysicalDeviceXlibPresentationSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateXcbSurfaceKHR,                                                                       createXcbSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXcbPresentationSupportKHR,                        getPhysicalDeviceXcbPresentationSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateWaylandSurfaceKHR,                                                           createWaylandSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWaylandPresentationSupportKHR,            getPhysicalDeviceWaylandPresentationSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateMirSurfaceKHR,                                                                       createMirSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMirPresentationSupportKHR,                        getPhysicalDeviceMirPresentationSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateAndroidSurfaceKHR,                                                           createAndroidSurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateWin32SurfaceKHR,                                                                     createWin32SurfaceKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWin32PresentationSupportKHR,                      getPhysicalDeviceWin32PresentationSupportKHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2KHR,                                                     getPhysicalDeviceFeatures2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2KHR,                                     getPhysicalDeviceFormatProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2KHR,                        getPhysicalDeviceImageFormatProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2KHR,                                     getPhysicalDeviceMemoryProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2KHR,                                           getPhysicalDeviceProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2KHR,                        getPhysicalDeviceQueueFamilyProperties2),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2KHR,          getPhysicalDeviceSparseImageFormatProperties2),
-       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroupsKHR,                                          enumeratePhysicalDeviceGroups),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferPropertiesKHR,                      getPhysicalDeviceExternalBufferProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR,           getPhysicalDeviceExternalSemaphoreProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFencePropertiesKHR,                       getPhysicalDeviceExternalFenceProperties),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2KHR,                          getPhysicalDeviceSurfaceCapabilities2KHR),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormats2KHR,                                       getPhysicalDeviceSurfaceFormats2KHR),
-       VK_NULL_FUNC_ENTRY(vkCreateDebugReportCallbackEXT,                                                      createDebugReportCallbackEXT),
-       VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT,                                                     destroyDebugReportCallbackEXT),
-       VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT,                                                                     debugReportMessageEXT),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalImageFormatPropertiesNV,          getPhysicalDeviceExternalImageFormatPropertiesNV),
-       VK_NULL_FUNC_ENTRY(vkCreateViSurfaceNN,                                                                         createViSurfaceNN),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX,           getPhysicalDeviceGeneratedCommandsPropertiesNVX),
-       VK_NULL_FUNC_ENTRY(vkReleaseDisplayEXT,                                                                         releaseDisplayEXT),
-       VK_NULL_FUNC_ENTRY(vkAcquireXlibDisplayEXT,                                                                     acquireXlibDisplayEXT),
-       VK_NULL_FUNC_ENTRY(vkGetRandROutputDisplayEXT,                                                          getRandROutputDisplayEXT),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2EXT,                          getPhysicalDeviceSurfaceCapabilities2EXT),
-       VK_NULL_FUNC_ENTRY(vkCreateIOSSurfaceMVK,                                                                       createIOSSurfaceMVK),
-       VK_NULL_FUNC_ENTRY(vkCreateMacOSSurfaceMVK,                                                                     createMacOSSurfaceMVK),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMultisamplePropertiesEXT,                         getPhysicalDeviceMultisamplePropertiesEXT),
-       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceAndroidHardwareBufferUsageANDROID,        getPhysicalDeviceAndroidHardwareBufferUsageANDROID),
+       VK_NULL_FUNC_ENTRY(vkDestroyInstance,                                                                   destroyInstance),
+       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDevices,                                                  enumeratePhysicalDevices),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures,                                                 getPhysicalDeviceFeatures),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties,                                 getPhysicalDeviceFormatProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties,                    getPhysicalDeviceImageFormatProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties,                                               getPhysicalDeviceProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties,                    getPhysicalDeviceQueueFamilyProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties,                                 getPhysicalDeviceMemoryProperties),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceProcAddr,                                                                 getDeviceProcAddr),
+       VK_NULL_FUNC_ENTRY(vkCreateDevice,                                                                              createDevice),
+       VK_NULL_FUNC_ENTRY(vkEnumerateDeviceExtensionProperties,                                enumerateDeviceExtensionProperties),
+       VK_NULL_FUNC_ENTRY(vkEnumerateDeviceLayerProperties,                                    enumerateDeviceLayerProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties,              getPhysicalDeviceSparseImageFormatProperties),
+       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroups,                                             enumeratePhysicalDeviceGroups),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2,                                                getPhysicalDeviceFeatures2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2,                                              getPhysicalDeviceProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2,                                getPhysicalDeviceFormatProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2,                   getPhysicalDeviceImageFormatProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2,                   getPhysicalDeviceQueueFamilyProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2,                                getPhysicalDeviceMemoryProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2,             getPhysicalDeviceSparseImageFormatProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferProperties,                 getPhysicalDeviceExternalBufferProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFenceProperties,                  getPhysicalDeviceExternalFenceProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphoreProperties,              getPhysicalDeviceExternalSemaphoreProperties),
+       VK_NULL_FUNC_ENTRY(vkDestroySurfaceKHR,                                                                 destroySurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceSupportKHR,                                getPhysicalDeviceSurfaceSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilitiesKHR,                   getPhysicalDeviceSurfaceCapabilitiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormatsKHR,                                getPhysicalDeviceSurfaceFormatsKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfacePresentModesKHR,                   getPhysicalDeviceSurfacePresentModesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDevicePresentRectanglesKHR,                             getPhysicalDevicePresentRectanglesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPropertiesKHR,                             getPhysicalDeviceDisplayPropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceDisplayPlanePropertiesKHR,                getPhysicalDeviceDisplayPlanePropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneSupportedDisplaysKHR,                               getDisplayPlaneSupportedDisplaysKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDisplayModePropertiesKHR,                                               getDisplayModePropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateDisplayModeKHR,                                                              createDisplayModeKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDisplayPlaneCapabilitiesKHR,                                    getDisplayPlaneCapabilitiesKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateDisplayPlaneSurfaceKHR,                                              createDisplayPlaneSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateXlibSurfaceKHR,                                                              createXlibSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXlibPresentationSupportKHR,               getPhysicalDeviceXlibPresentationSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateXcbSurfaceKHR,                                                               createXcbSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceXcbPresentationSupportKHR,                getPhysicalDeviceXcbPresentationSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateWaylandSurfaceKHR,                                                   createWaylandSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWaylandPresentationSupportKHR,    getPhysicalDeviceWaylandPresentationSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateMirSurfaceKHR,                                                               createMirSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMirPresentationSupportKHR,                getPhysicalDeviceMirPresentationSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateAndroidSurfaceKHR,                                                   createAndroidSurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateWin32SurfaceKHR,                                                             createWin32SurfaceKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceWin32PresentationSupportKHR,              getPhysicalDeviceWin32PresentationSupportKHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFeatures2KHR,                                             getPhysicalDeviceFeatures2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceFormatProperties2KHR,                             getPhysicalDeviceFormatProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceImageFormatProperties2KHR,                getPhysicalDeviceImageFormatProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMemoryProperties2KHR,                             getPhysicalDeviceMemoryProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceProperties2KHR,                                   getPhysicalDeviceProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceQueueFamilyProperties2KHR,                getPhysicalDeviceQueueFamilyProperties2),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSparseImageFormatProperties2KHR,  getPhysicalDeviceSparseImageFormatProperties2),
+       VK_NULL_FUNC_ENTRY(vkEnumeratePhysicalDeviceGroupsKHR,                                  enumeratePhysicalDeviceGroups),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalBufferPropertiesKHR,              getPhysicalDeviceExternalBufferProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalSemaphorePropertiesKHR,   getPhysicalDeviceExternalSemaphoreProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalFencePropertiesKHR,               getPhysicalDeviceExternalFenceProperties),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2KHR,                  getPhysicalDeviceSurfaceCapabilities2KHR),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceFormats2KHR,                               getPhysicalDeviceSurfaceFormats2KHR),
+       VK_NULL_FUNC_ENTRY(vkCreateDebugReportCallbackEXT,                                              createDebugReportCallbackEXT),
+       VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT,                                             destroyDebugReportCallbackEXT),
+       VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT,                                                             debugReportMessageEXT),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalImageFormatPropertiesNV,  getPhysicalDeviceExternalImageFormatPropertiesNV),
+       VK_NULL_FUNC_ENTRY(vkCreateViSurfaceNN,                                                                 createViSurfaceNN),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX,   getPhysicalDeviceGeneratedCommandsPropertiesNVX),
+       VK_NULL_FUNC_ENTRY(vkReleaseDisplayEXT,                                                                 releaseDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkAcquireXlibDisplayEXT,                                                             acquireXlibDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkGetRandROutputDisplayEXT,                                                  getRandROutputDisplayEXT),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2EXT,                  getPhysicalDeviceSurfaceCapabilities2EXT),
+       VK_NULL_FUNC_ENTRY(vkCreateIOSSurfaceMVK,                                                               createIOSSurfaceMVK),
+       VK_NULL_FUNC_ENTRY(vkCreateMacOSSurfaceMVK,                                                             createMacOSSurfaceMVK),
+       VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceMultisamplePropertiesEXT,                 getPhysicalDeviceMultisamplePropertiesEXT),
 };
 
 static const tcu::StaticFunctionLibrary::Entry s_deviceFunctions[] =
 {
-       VK_NULL_FUNC_ENTRY(vkDestroyDevice,                                                                             destroyDevice),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceQueue,                                                                    getDeviceQueue),
-       VK_NULL_FUNC_ENTRY(vkQueueSubmit,                                                                               queueSubmit),
-       VK_NULL_FUNC_ENTRY(vkQueueWaitIdle,                                                                             queueWaitIdle),
-       VK_NULL_FUNC_ENTRY(vkDeviceWaitIdle,                                                                    deviceWaitIdle),
-       VK_NULL_FUNC_ENTRY(vkAllocateMemory,                                                                    allocateMemory),
-       VK_NULL_FUNC_ENTRY(vkFreeMemory,                                                                                freeMemory),
-       VK_NULL_FUNC_ENTRY(vkMapMemory,                                                                                 mapMemory),
-       VK_NULL_FUNC_ENTRY(vkUnmapMemory,                                                                               unmapMemory),
-       VK_NULL_FUNC_ENTRY(vkFlushMappedMemoryRanges,                                                   flushMappedMemoryRanges),
-       VK_NULL_FUNC_ENTRY(vkInvalidateMappedMemoryRanges,                                              invalidateMappedMemoryRanges),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceMemoryCommitment,                                                 getDeviceMemoryCommitment),
-       VK_NULL_FUNC_ENTRY(vkBindBufferMemory,                                                                  bindBufferMemory),
-       VK_NULL_FUNC_ENTRY(vkBindImageMemory,                                                                   bindImageMemory),
-       VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements,                                               getBufferMemoryRequirements),
-       VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements,                                                getImageMemoryRequirements),
-       VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements,                                  getImageSparseMemoryRequirements),
-       VK_NULL_FUNC_ENTRY(vkQueueBindSparse,                                                                   queueBindSparse),
-       VK_NULL_FUNC_ENTRY(vkCreateFence,                                                                               createFence),
-       VK_NULL_FUNC_ENTRY(vkDestroyFence,                                                                              destroyFence),
-       VK_NULL_FUNC_ENTRY(vkResetFences,                                                                               resetFences),
-       VK_NULL_FUNC_ENTRY(vkGetFenceStatus,                                                                    getFenceStatus),
-       VK_NULL_FUNC_ENTRY(vkWaitForFences,                                                                             waitForFences),
-       VK_NULL_FUNC_ENTRY(vkCreateSemaphore,                                                                   createSemaphore),
-       VK_NULL_FUNC_ENTRY(vkDestroySemaphore,                                                                  destroySemaphore),
-       VK_NULL_FUNC_ENTRY(vkCreateEvent,                                                                               createEvent),
-       VK_NULL_FUNC_ENTRY(vkDestroyEvent,                                                                              destroyEvent),
-       VK_NULL_FUNC_ENTRY(vkGetEventStatus,                                                                    getEventStatus),
-       VK_NULL_FUNC_ENTRY(vkSetEvent,                                                                                  setEvent),
-       VK_NULL_FUNC_ENTRY(vkResetEvent,                                                                                resetEvent),
-       VK_NULL_FUNC_ENTRY(vkCreateQueryPool,                                                                   createQueryPool),
-       VK_NULL_FUNC_ENTRY(vkDestroyQueryPool,                                                                  destroyQueryPool),
-       VK_NULL_FUNC_ENTRY(vkGetQueryPoolResults,                                                               getQueryPoolResults),
-       VK_NULL_FUNC_ENTRY(vkCreateBuffer,                                                                              createBuffer),
-       VK_NULL_FUNC_ENTRY(vkDestroyBuffer,                                                                             destroyBuffer),
-       VK_NULL_FUNC_ENTRY(vkCreateBufferView,                                                                  createBufferView),
-       VK_NULL_FUNC_ENTRY(vkDestroyBufferView,                                                                 destroyBufferView),
-       VK_NULL_FUNC_ENTRY(vkCreateImage,                                                                               createImage),
-       VK_NULL_FUNC_ENTRY(vkDestroyImage,                                                                              destroyImage),
-       VK_NULL_FUNC_ENTRY(vkGetImageSubresourceLayout,                                                 getImageSubresourceLayout),
-       VK_NULL_FUNC_ENTRY(vkCreateImageView,                                                                   createImageView),
-       VK_NULL_FUNC_ENTRY(vkDestroyImageView,                                                                  destroyImageView),
-       VK_NULL_FUNC_ENTRY(vkCreateShaderModule,                                                                createShaderModule),
-       VK_NULL_FUNC_ENTRY(vkDestroyShaderModule,                                                               destroyShaderModule),
-       VK_NULL_FUNC_ENTRY(vkCreatePipelineCache,                                                               createPipelineCache),
-       VK_NULL_FUNC_ENTRY(vkDestroyPipelineCache,                                                              destroyPipelineCache),
-       VK_NULL_FUNC_ENTRY(vkGetPipelineCacheData,                                                              getPipelineCacheData),
-       VK_NULL_FUNC_ENTRY(vkMergePipelineCaches,                                                               mergePipelineCaches),
-       VK_NULL_FUNC_ENTRY(vkCreateGraphicsPipelines,                                                   createGraphicsPipelines),
-       VK_NULL_FUNC_ENTRY(vkCreateComputePipelines,                                                    createComputePipelines),
-       VK_NULL_FUNC_ENTRY(vkDestroyPipeline,                                                                   destroyPipeline),
-       VK_NULL_FUNC_ENTRY(vkCreatePipelineLayout,                                                              createPipelineLayout),
-       VK_NULL_FUNC_ENTRY(vkDestroyPipelineLayout,                                                             destroyPipelineLayout),
-       VK_NULL_FUNC_ENTRY(vkCreateSampler,                                                                             createSampler),
-       VK_NULL_FUNC_ENTRY(vkDestroySampler,                                                                    destroySampler),
-       VK_NULL_FUNC_ENTRY(vkCreateDescriptorSetLayout,                                                 createDescriptorSetLayout),
-       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorSetLayout,                                                destroyDescriptorSetLayout),
-       VK_NULL_FUNC_ENTRY(vkCreateDescriptorPool,                                                              createDescriptorPool),
-       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorPool,                                                             destroyDescriptorPool),
-       VK_NULL_FUNC_ENTRY(vkResetDescriptorPool,                                                               resetDescriptorPool),
-       VK_NULL_FUNC_ENTRY(vkAllocateDescriptorSets,                                                    allocateDescriptorSets),
-       VK_NULL_FUNC_ENTRY(vkFreeDescriptorSets,                                                                freeDescriptorSets),
-       VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSets,                                                              updateDescriptorSets),
-       VK_NULL_FUNC_ENTRY(vkCreateFramebuffer,                                                                 createFramebuffer),
-       VK_NULL_FUNC_ENTRY(vkDestroyFramebuffer,                                                                destroyFramebuffer),
-       VK_NULL_FUNC_ENTRY(vkCreateRenderPass,                                                                  createRenderPass),
-       VK_NULL_FUNC_ENTRY(vkDestroyRenderPass,                                                                 destroyRenderPass),
-       VK_NULL_FUNC_ENTRY(vkGetRenderAreaGranularity,                                                  getRenderAreaGranularity),
-       VK_NULL_FUNC_ENTRY(vkCreateCommandPool,                                                                 createCommandPool),
-       VK_NULL_FUNC_ENTRY(vkDestroyCommandPool,                                                                destroyCommandPool),
-       VK_NULL_FUNC_ENTRY(vkResetCommandPool,                                                                  resetCommandPool),
-       VK_NULL_FUNC_ENTRY(vkAllocateCommandBuffers,                                                    allocateCommandBuffers),
-       VK_NULL_FUNC_ENTRY(vkFreeCommandBuffers,                                                                freeCommandBuffers),
-       VK_NULL_FUNC_ENTRY(vkBeginCommandBuffer,                                                                beginCommandBuffer),
-       VK_NULL_FUNC_ENTRY(vkEndCommandBuffer,                                                                  endCommandBuffer),
-       VK_NULL_FUNC_ENTRY(vkResetCommandBuffer,                                                                resetCommandBuffer),
-       VK_NULL_FUNC_ENTRY(vkCmdBindPipeline,                                                                   cmdBindPipeline),
-       VK_NULL_FUNC_ENTRY(vkCmdSetViewport,                                                                    cmdSetViewport),
-       VK_NULL_FUNC_ENTRY(vkCmdSetScissor,                                                                             cmdSetScissor),
-       VK_NULL_FUNC_ENTRY(vkCmdSetLineWidth,                                                                   cmdSetLineWidth),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBias,                                                                   cmdSetDepthBias),
-       VK_NULL_FUNC_ENTRY(vkCmdSetBlendConstants,                                                              cmdSetBlendConstants),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBounds,                                                                 cmdSetDepthBounds),
-       VK_NULL_FUNC_ENTRY(vkCmdSetStencilCompareMask,                                                  cmdSetStencilCompareMask),
-       VK_NULL_FUNC_ENTRY(vkCmdSetStencilWriteMask,                                                    cmdSetStencilWriteMask),
-       VK_NULL_FUNC_ENTRY(vkCmdSetStencilReference,                                                    cmdSetStencilReference),
-       VK_NULL_FUNC_ENTRY(vkCmdBindDescriptorSets,                                                             cmdBindDescriptorSets),
-       VK_NULL_FUNC_ENTRY(vkCmdBindIndexBuffer,                                                                cmdBindIndexBuffer),
-       VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers,                                                              cmdBindVertexBuffers),
-       VK_NULL_FUNC_ENTRY(vkCmdDraw,                                                                                   cmdDraw),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexed,                                                                    cmdDrawIndexed),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirect,                                                                   cmdDrawIndirect),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirect,                                                    cmdDrawIndexedIndirect),
-       VK_NULL_FUNC_ENTRY(vkCmdDispatch,                                                                               cmdDispatch),
-       VK_NULL_FUNC_ENTRY(vkCmdDispatchIndirect,                                                               cmdDispatchIndirect),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyBuffer,                                                                             cmdCopyBuffer),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyImage,                                                                              cmdCopyImage),
-       VK_NULL_FUNC_ENTRY(vkCmdBlitImage,                                                                              cmdBlitImage),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyBufferToImage,                                                              cmdCopyBufferToImage),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyImageToBuffer,                                                              cmdCopyImageToBuffer),
-       VK_NULL_FUNC_ENTRY(vkCmdUpdateBuffer,                                                                   cmdUpdateBuffer),
-       VK_NULL_FUNC_ENTRY(vkCmdFillBuffer,                                                                             cmdFillBuffer),
-       VK_NULL_FUNC_ENTRY(vkCmdClearColorImage,                                                                cmdClearColorImage),
-       VK_NULL_FUNC_ENTRY(vkCmdClearDepthStencilImage,                                                 cmdClearDepthStencilImage),
-       VK_NULL_FUNC_ENTRY(vkCmdClearAttachments,                                                               cmdClearAttachments),
-       VK_NULL_FUNC_ENTRY(vkCmdResolveImage,                                                                   cmdResolveImage),
-       VK_NULL_FUNC_ENTRY(vkCmdSetEvent,                                                                               cmdSetEvent),
-       VK_NULL_FUNC_ENTRY(vkCmdResetEvent,                                                                             cmdResetEvent),
-       VK_NULL_FUNC_ENTRY(vkCmdWaitEvents,                                                                             cmdWaitEvents),
-       VK_NULL_FUNC_ENTRY(vkCmdPipelineBarrier,                                                                cmdPipelineBarrier),
-       VK_NULL_FUNC_ENTRY(vkCmdBeginQuery,                                                                             cmdBeginQuery),
-       VK_NULL_FUNC_ENTRY(vkCmdEndQuery,                                                                               cmdEndQuery),
-       VK_NULL_FUNC_ENTRY(vkCmdResetQueryPool,                                                                 cmdResetQueryPool),
-       VK_NULL_FUNC_ENTRY(vkCmdWriteTimestamp,                                                                 cmdWriteTimestamp),
-       VK_NULL_FUNC_ENTRY(vkCmdCopyQueryPoolResults,                                                   cmdCopyQueryPoolResults),
-       VK_NULL_FUNC_ENTRY(vkCmdPushConstants,                                                                  cmdPushConstants),
-       VK_NULL_FUNC_ENTRY(vkCmdBeginRenderPass,                                                                cmdBeginRenderPass),
-       VK_NULL_FUNC_ENTRY(vkCmdNextSubpass,                                                                    cmdNextSubpass),
-       VK_NULL_FUNC_ENTRY(vkCmdEndRenderPass,                                                                  cmdEndRenderPass),
-       VK_NULL_FUNC_ENTRY(vkCmdExecuteCommands,                                                                cmdExecuteCommands),
-       VK_NULL_FUNC_ENTRY(vkBindBufferMemory2,                                                                 bindBufferMemory2),
-       VK_NULL_FUNC_ENTRY(vkBindImageMemory2,                                                                  bindImageMemory2),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPeerMemoryFeatures,                                  getDeviceGroupPeerMemoryFeatures),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMask,                                                                  cmdSetDeviceMask),
-       VK_NULL_FUNC_ENTRY(vkCmdDispatchBase,                                                                   cmdDispatchBase),
-       VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements2,                                               getImageMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements2,                                              getBufferMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements2,                                 getImageSparseMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkTrimCommandPool,                                                                   trimCommandPool),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceQueue2,                                                                   getDeviceQueue2),
-       VK_NULL_FUNC_ENTRY(vkCreateSamplerYcbcrConversion,                                              createSamplerYcbcrConversion),
-       VK_NULL_FUNC_ENTRY(vkDestroySamplerYcbcrConversion,                                             destroySamplerYcbcrConversion),
-       VK_NULL_FUNC_ENTRY(vkCreateDescriptorUpdateTemplate,                                    createDescriptorUpdateTemplate),
-       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorUpdateTemplate,                                   destroyDescriptorUpdateTemplate),
-       VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSetWithTemplate,                                   updateDescriptorSetWithTemplate),
-       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutSupport,                                             getDescriptorSetLayoutSupport),
-       VK_NULL_FUNC_ENTRY(vkCreateSwapchainKHR,                                                                createSwapchainKHR),
-       VK_NULL_FUNC_ENTRY(vkDestroySwapchainKHR,                                                               destroySwapchainKHR),
-       VK_NULL_FUNC_ENTRY(vkGetSwapchainImagesKHR,                                                             getSwapchainImagesKHR),
-       VK_NULL_FUNC_ENTRY(vkAcquireNextImageKHR,                                                               acquireNextImageKHR),
-       VK_NULL_FUNC_ENTRY(vkQueuePresentKHR,                                                                   queuePresentKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPresentCapabilitiesKHR,                              getDeviceGroupPresentCapabilitiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupSurfacePresentModesKHR,                              getDeviceGroupSurfacePresentModesKHR),
-       VK_NULL_FUNC_ENTRY(vkAcquireNextImage2KHR,                                                              acquireNextImage2KHR),
-       VK_NULL_FUNC_ENTRY(vkCreateSharedSwapchainsKHR,                                                 createSharedSwapchainsKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdDispatchBaseKHR,                                                                cmdDispatchBase),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMaskKHR,                                                               cmdSetDeviceMask),
-       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPeerMemoryFeaturesKHR,                               getDeviceGroupPeerMemoryFeatures),
-       VK_NULL_FUNC_ENTRY(vkTrimCommandPoolKHR,                                                                trimCommandPool),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleKHR,                                                   getMemoryWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandlePropertiesKHR,                                 getMemoryWin32HandlePropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryFdKHR,                                                                    getMemoryFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryFdPropertiesKHR,                                                  getMemoryFdPropertiesKHR),
-       VK_NULL_FUNC_ENTRY(vkImportSemaphoreWin32HandleKHR,                                             importSemaphoreWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkGetSemaphoreWin32HandleKHR,                                                getSemaphoreWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkImportSemaphoreFdKHR,                                                              importSemaphoreFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetSemaphoreFdKHR,                                                                 getSemaphoreFdKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdPushDescriptorSetKHR,                                                   cmdPushDescriptorSetKHR),
-       VK_NULL_FUNC_ENTRY(vkCmdPushDescriptorSetWithTemplateKHR,                               cmdPushDescriptorSetWithTemplateKHR),
-       VK_NULL_FUNC_ENTRY(vkCreateDescriptorUpdateTemplateKHR,                                 createDescriptorUpdateTemplate),
-       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorUpdateTemplateKHR,                                destroyDescriptorUpdateTemplate),
-       VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSetWithTemplateKHR,                                updateDescriptorSetWithTemplate),
-       VK_NULL_FUNC_ENTRY(vkGetSwapchainStatusKHR,                                                             getSwapchainStatusKHR),
-       VK_NULL_FUNC_ENTRY(vkImportFenceWin32HandleKHR,                                                 importFenceWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkGetFenceWin32HandleKHR,                                                    getFenceWin32HandleKHR),
-       VK_NULL_FUNC_ENTRY(vkImportFenceFdKHR,                                                                  importFenceFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetFenceFdKHR,                                                                             getFenceFdKHR),
-       VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements2KHR,                                   getBufferMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements2KHR,                                    getImageMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements2KHR,                              getImageSparseMemoryRequirements2),
-       VK_NULL_FUNC_ENTRY(vkCreateSamplerYcbcrConversionKHR,                                   createSamplerYcbcrConversion),
-       VK_NULL_FUNC_ENTRY(vkDestroySamplerYcbcrConversionKHR,                                  destroySamplerYcbcrConversion),
-       VK_NULL_FUNC_ENTRY(vkBindBufferMemory2KHR,                                                              bindBufferMemory2),
-       VK_NULL_FUNC_ENTRY(vkBindImageMemory2KHR,                                                               bindImageMemory2),
-       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutSupportKHR,                                  getDescriptorSetLayoutSupport),
-       VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectTagEXT,                                                debugMarkerSetObjectTagEXT),
-       VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectNameEXT,                                               debugMarkerSetObjectNameEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerBeginEXT,                                                    cmdDebugMarkerBeginEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerEndEXT,                                                              cmdDebugMarkerEndEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerInsertEXT,                                                   cmdDebugMarkerInsertEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountAMD,                                                   cmdDrawIndirectCountAMD),
-       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCountAMD,                                    cmdDrawIndexedIndirectCountAMD),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleNV,                                                    getMemoryWin32HandleNV),
-       VK_NULL_FUNC_ENTRY(vkCmdProcessCommandsNVX,                                                             cmdProcessCommandsNVX),
-       VK_NULL_FUNC_ENTRY(vkCmdReserveSpaceForCommandsNVX,                                             cmdReserveSpaceForCommandsNVX),
-       VK_NULL_FUNC_ENTRY(vkCreateIndirectCommandsLayoutNVX,                                   createIndirectCommandsLayoutNVX),
-       VK_NULL_FUNC_ENTRY(vkDestroyIndirectCommandsLayoutNVX,                                  destroyIndirectCommandsLayoutNVX),
-       VK_NULL_FUNC_ENTRY(vkCreateObjectTableNVX,                                                              createObjectTableNVX),
-       VK_NULL_FUNC_ENTRY(vkDestroyObjectTableNVX,                                                             destroyObjectTableNVX),
-       VK_NULL_FUNC_ENTRY(vkRegisterObjectsNVX,                                                                registerObjectsNVX),
-       VK_NULL_FUNC_ENTRY(vkUnregisterObjectsNVX,                                                              unregisterObjectsNVX),
-       VK_NULL_FUNC_ENTRY(vkCmdSetViewportWScalingNV,                                                  cmdSetViewportWScalingNV),
-       VK_NULL_FUNC_ENTRY(vkDisplayPowerControlEXT,                                                    displayPowerControlEXT),
-       VK_NULL_FUNC_ENTRY(vkRegisterDeviceEventEXT,                                                    registerDeviceEventEXT),
-       VK_NULL_FUNC_ENTRY(vkRegisterDisplayEventEXT,                                                   registerDisplayEventEXT),
-       VK_NULL_FUNC_ENTRY(vkGetSwapchainCounterEXT,                                                    getSwapchainCounterEXT),
-       VK_NULL_FUNC_ENTRY(vkGetRefreshCycleDurationGOOGLE,                                             getRefreshCycleDurationGOOGLE),
-       VK_NULL_FUNC_ENTRY(vkGetPastPresentationTimingGOOGLE,                                   getPastPresentationTimingGOOGLE),
-       VK_NULL_FUNC_ENTRY(vkCmdSetDiscardRectangleEXT,                                                 cmdSetDiscardRectangleEXT),
-       VK_NULL_FUNC_ENTRY(vkSetHdrMetadataEXT,                                                                 setHdrMetadataEXT),
-       VK_NULL_FUNC_ENTRY(vkCmdSetSampleLocationsEXT,                                                  cmdSetSampleLocationsEXT),
-       VK_NULL_FUNC_ENTRY(vkCreateValidationCacheEXT,                                                  createValidationCacheEXT),
-       VK_NULL_FUNC_ENTRY(vkDestroyValidationCacheEXT,                                                 destroyValidationCacheEXT),
-       VK_NULL_FUNC_ENTRY(vkMergeValidationCachesEXT,                                                  mergeValidationCachesEXT),
-       VK_NULL_FUNC_ENTRY(vkGetValidationCacheDataEXT,                                                 getValidationCacheDataEXT),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryAndroidHardwareBufferPropertiesANDROID,   getMemoryAndroidHardwareBufferPropertiesANDROID),
-       VK_NULL_FUNC_ENTRY(vkGetMemoryAndroidHardwareBufferANDROID,                             getMemoryAndroidHardwareBufferANDROID),
+       VK_NULL_FUNC_ENTRY(vkDestroyDevice,                                                             destroyDevice),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceQueue,                                                    getDeviceQueue),
+       VK_NULL_FUNC_ENTRY(vkQueueSubmit,                                                               queueSubmit),
+       VK_NULL_FUNC_ENTRY(vkQueueWaitIdle,                                                             queueWaitIdle),
+       VK_NULL_FUNC_ENTRY(vkDeviceWaitIdle,                                                    deviceWaitIdle),
+       VK_NULL_FUNC_ENTRY(vkAllocateMemory,                                                    allocateMemory),
+       VK_NULL_FUNC_ENTRY(vkFreeMemory,                                                                freeMemory),
+       VK_NULL_FUNC_ENTRY(vkMapMemory,                                                                 mapMemory),
+       VK_NULL_FUNC_ENTRY(vkUnmapMemory,                                                               unmapMemory),
+       VK_NULL_FUNC_ENTRY(vkFlushMappedMemoryRanges,                                   flushMappedMemoryRanges),
+       VK_NULL_FUNC_ENTRY(vkInvalidateMappedMemoryRanges,                              invalidateMappedMemoryRanges),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceMemoryCommitment,                                 getDeviceMemoryCommitment),
+       VK_NULL_FUNC_ENTRY(vkBindBufferMemory,                                                  bindBufferMemory),
+       VK_NULL_FUNC_ENTRY(vkBindImageMemory,                                                   bindImageMemory),
+       VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements,                               getBufferMemoryRequirements),
+       VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements,                                getImageMemoryRequirements),
+       VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements,                  getImageSparseMemoryRequirements),
+       VK_NULL_FUNC_ENTRY(vkQueueBindSparse,                                                   queueBindSparse),
+       VK_NULL_FUNC_ENTRY(vkCreateFence,                                                               createFence),
+       VK_NULL_FUNC_ENTRY(vkDestroyFence,                                                              destroyFence),
+       VK_NULL_FUNC_ENTRY(vkResetFences,                                                               resetFences),
+       VK_NULL_FUNC_ENTRY(vkGetFenceStatus,                                                    getFenceStatus),
+       VK_NULL_FUNC_ENTRY(vkWaitForFences,                                                             waitForFences),
+       VK_NULL_FUNC_ENTRY(vkCreateSemaphore,                                                   createSemaphore),
+       VK_NULL_FUNC_ENTRY(vkDestroySemaphore,                                                  destroySemaphore),
+       VK_NULL_FUNC_ENTRY(vkCreateEvent,                                                               createEvent),
+       VK_NULL_FUNC_ENTRY(vkDestroyEvent,                                                              destroyEvent),
+       VK_NULL_FUNC_ENTRY(vkGetEventStatus,                                                    getEventStatus),
+       VK_NULL_FUNC_ENTRY(vkSetEvent,                                                                  setEvent),
+       VK_NULL_FUNC_ENTRY(vkResetEvent,                                                                resetEvent),
+       VK_NULL_FUNC_ENTRY(vkCreateQueryPool,                                                   createQueryPool),
+       VK_NULL_FUNC_ENTRY(vkDestroyQueryPool,                                                  destroyQueryPool),
+       VK_NULL_FUNC_ENTRY(vkGetQueryPoolResults,                                               getQueryPoolResults),
+       VK_NULL_FUNC_ENTRY(vkCreateBuffer,                                                              createBuffer),
+       VK_NULL_FUNC_ENTRY(vkDestroyBuffer,                                                             destroyBuffer),
+       VK_NULL_FUNC_ENTRY(vkCreateBufferView,                                                  createBufferView),
+       VK_NULL_FUNC_ENTRY(vkDestroyBufferView,                                                 destroyBufferView),
+       VK_NULL_FUNC_ENTRY(vkCreateImage,                                                               createImage),
+       VK_NULL_FUNC_ENTRY(vkDestroyImage,                                                              destroyImage),
+       VK_NULL_FUNC_ENTRY(vkGetImageSubresourceLayout,                                 getImageSubresourceLayout),
+       VK_NULL_FUNC_ENTRY(vkCreateImageView,                                                   createImageView),
+       VK_NULL_FUNC_ENTRY(vkDestroyImageView,                                                  destroyImageView),
+       VK_NULL_FUNC_ENTRY(vkCreateShaderModule,                                                createShaderModule),
+       VK_NULL_FUNC_ENTRY(vkDestroyShaderModule,                                               destroyShaderModule),
+       VK_NULL_FUNC_ENTRY(vkCreatePipelineCache,                                               createPipelineCache),
+       VK_NULL_FUNC_ENTRY(vkDestroyPipelineCache,                                              destroyPipelineCache),
+       VK_NULL_FUNC_ENTRY(vkGetPipelineCacheData,                                              getPipelineCacheData),
+       VK_NULL_FUNC_ENTRY(vkMergePipelineCaches,                                               mergePipelineCaches),
+       VK_NULL_FUNC_ENTRY(vkCreateGraphicsPipelines,                                   createGraphicsPipelines),
+       VK_NULL_FUNC_ENTRY(vkCreateComputePipelines,                                    createComputePipelines),
+       VK_NULL_FUNC_ENTRY(vkDestroyPipeline,                                                   destroyPipeline),
+       VK_NULL_FUNC_ENTRY(vkCreatePipelineLayout,                                              createPipelineLayout),
+       VK_NULL_FUNC_ENTRY(vkDestroyPipelineLayout,                                             destroyPipelineLayout),
+       VK_NULL_FUNC_ENTRY(vkCreateSampler,                                                             createSampler),
+       VK_NULL_FUNC_ENTRY(vkDestroySampler,                                                    destroySampler),
+       VK_NULL_FUNC_ENTRY(vkCreateDescriptorSetLayout,                                 createDescriptorSetLayout),
+       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorSetLayout,                                destroyDescriptorSetLayout),
+       VK_NULL_FUNC_ENTRY(vkCreateDescriptorPool,                                              createDescriptorPool),
+       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorPool,                                             destroyDescriptorPool),
+       VK_NULL_FUNC_ENTRY(vkResetDescriptorPool,                                               resetDescriptorPool),
+       VK_NULL_FUNC_ENTRY(vkAllocateDescriptorSets,                                    allocateDescriptorSets),
+       VK_NULL_FUNC_ENTRY(vkFreeDescriptorSets,                                                freeDescriptorSets),
+       VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSets,                                              updateDescriptorSets),
+       VK_NULL_FUNC_ENTRY(vkCreateFramebuffer,                                                 createFramebuffer),
+       VK_NULL_FUNC_ENTRY(vkDestroyFramebuffer,                                                destroyFramebuffer),
+       VK_NULL_FUNC_ENTRY(vkCreateRenderPass,                                                  createRenderPass),
+       VK_NULL_FUNC_ENTRY(vkDestroyRenderPass,                                                 destroyRenderPass),
+       VK_NULL_FUNC_ENTRY(vkGetRenderAreaGranularity,                                  getRenderAreaGranularity),
+       VK_NULL_FUNC_ENTRY(vkCreateCommandPool,                                                 createCommandPool),
+       VK_NULL_FUNC_ENTRY(vkDestroyCommandPool,                                                destroyCommandPool),
+       VK_NULL_FUNC_ENTRY(vkResetCommandPool,                                                  resetCommandPool),
+       VK_NULL_FUNC_ENTRY(vkAllocateCommandBuffers,                                    allocateCommandBuffers),
+       VK_NULL_FUNC_ENTRY(vkFreeCommandBuffers,                                                freeCommandBuffers),
+       VK_NULL_FUNC_ENTRY(vkBeginCommandBuffer,                                                beginCommandBuffer),
+       VK_NULL_FUNC_ENTRY(vkEndCommandBuffer,                                                  endCommandBuffer),
+       VK_NULL_FUNC_ENTRY(vkResetCommandBuffer,                                                resetCommandBuffer),
+       VK_NULL_FUNC_ENTRY(vkCmdBindPipeline,                                                   cmdBindPipeline),
+       VK_NULL_FUNC_ENTRY(vkCmdSetViewport,                                                    cmdSetViewport),
+       VK_NULL_FUNC_ENTRY(vkCmdSetScissor,                                                             cmdSetScissor),
+       VK_NULL_FUNC_ENTRY(vkCmdSetLineWidth,                                                   cmdSetLineWidth),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBias,                                                   cmdSetDepthBias),
+       VK_NULL_FUNC_ENTRY(vkCmdSetBlendConstants,                                              cmdSetBlendConstants),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDepthBounds,                                                 cmdSetDepthBounds),
+       VK_NULL_FUNC_ENTRY(vkCmdSetStencilCompareMask,                                  cmdSetStencilCompareMask),
+       VK_NULL_FUNC_ENTRY(vkCmdSetStencilWriteMask,                                    cmdSetStencilWriteMask),
+       VK_NULL_FUNC_ENTRY(vkCmdSetStencilReference,                                    cmdSetStencilReference),
+       VK_NULL_FUNC_ENTRY(vkCmdBindDescriptorSets,                                             cmdBindDescriptorSets),
+       VK_NULL_FUNC_ENTRY(vkCmdBindIndexBuffer,                                                cmdBindIndexBuffer),
+       VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers,                                              cmdBindVertexBuffers),
+       VK_NULL_FUNC_ENTRY(vkCmdDraw,                                                                   cmdDraw),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexed,                                                    cmdDrawIndexed),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirect,                                                   cmdDrawIndirect),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirect,                                    cmdDrawIndexedIndirect),
+       VK_NULL_FUNC_ENTRY(vkCmdDispatch,                                                               cmdDispatch),
+       VK_NULL_FUNC_ENTRY(vkCmdDispatchIndirect,                                               cmdDispatchIndirect),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyBuffer,                                                             cmdCopyBuffer),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyImage,                                                              cmdCopyImage),
+       VK_NULL_FUNC_ENTRY(vkCmdBlitImage,                                                              cmdBlitImage),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyBufferToImage,                                              cmdCopyBufferToImage),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyImageToBuffer,                                              cmdCopyImageToBuffer),
+       VK_NULL_FUNC_ENTRY(vkCmdUpdateBuffer,                                                   cmdUpdateBuffer),
+       VK_NULL_FUNC_ENTRY(vkCmdFillBuffer,                                                             cmdFillBuffer),
+       VK_NULL_FUNC_ENTRY(vkCmdClearColorImage,                                                cmdClearColorImage),
+       VK_NULL_FUNC_ENTRY(vkCmdClearDepthStencilImage,                                 cmdClearDepthStencilImage),
+       VK_NULL_FUNC_ENTRY(vkCmdClearAttachments,                                               cmdClearAttachments),
+       VK_NULL_FUNC_ENTRY(vkCmdResolveImage,                                                   cmdResolveImage),
+       VK_NULL_FUNC_ENTRY(vkCmdSetEvent,                                                               cmdSetEvent),
+       VK_NULL_FUNC_ENTRY(vkCmdResetEvent,                                                             cmdResetEvent),
+       VK_NULL_FUNC_ENTRY(vkCmdWaitEvents,                                                             cmdWaitEvents),
+       VK_NULL_FUNC_ENTRY(vkCmdPipelineBarrier,                                                cmdPipelineBarrier),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginQuery,                                                             cmdBeginQuery),
+       VK_NULL_FUNC_ENTRY(vkCmdEndQuery,                                                               cmdEndQuery),
+       VK_NULL_FUNC_ENTRY(vkCmdResetQueryPool,                                                 cmdResetQueryPool),
+       VK_NULL_FUNC_ENTRY(vkCmdWriteTimestamp,                                                 cmdWriteTimestamp),
+       VK_NULL_FUNC_ENTRY(vkCmdCopyQueryPoolResults,                                   cmdCopyQueryPoolResults),
+       VK_NULL_FUNC_ENTRY(vkCmdPushConstants,                                                  cmdPushConstants),
+       VK_NULL_FUNC_ENTRY(vkCmdBeginRenderPass,                                                cmdBeginRenderPass),
+       VK_NULL_FUNC_ENTRY(vkCmdNextSubpass,                                                    cmdNextSubpass),
+       VK_NULL_FUNC_ENTRY(vkCmdEndRenderPass,                                                  cmdEndRenderPass),
+       VK_NULL_FUNC_ENTRY(vkCmdExecuteCommands,                                                cmdExecuteCommands),
+       VK_NULL_FUNC_ENTRY(vkBindBufferMemory2,                                                 bindBufferMemory2),
+       VK_NULL_FUNC_ENTRY(vkBindImageMemory2,                                                  bindImageMemory2),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPeerMemoryFeatures,                  getDeviceGroupPeerMemoryFeatures),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMask,                                                  cmdSetDeviceMask),
+       VK_NULL_FUNC_ENTRY(vkCmdDispatchBase,                                                   cmdDispatchBase),
+       VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements2,                               getImageMemoryRequirements2),
+       VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements2,                              getBufferMemoryRequirements2),
+       VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements2,                 getImageSparseMemoryRequirements2),
+       VK_NULL_FUNC_ENTRY(vkTrimCommandPool,                                                   trimCommandPool),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceQueue2,                                                   getDeviceQueue2),
+       VK_NULL_FUNC_ENTRY(vkCreateSamplerYcbcrConversion,                              createSamplerYcbcrConversion),
+       VK_NULL_FUNC_ENTRY(vkDestroySamplerYcbcrConversion,                             destroySamplerYcbcrConversion),
+       VK_NULL_FUNC_ENTRY(vkCreateDescriptorUpdateTemplate,                    createDescriptorUpdateTemplate),
+       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorUpdateTemplate,                   destroyDescriptorUpdateTemplate),
+       VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSetWithTemplate,                   updateDescriptorSetWithTemplate),
+       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutSupport,                             getDescriptorSetLayoutSupport),
+       VK_NULL_FUNC_ENTRY(vkCreateSwapchainKHR,                                                createSwapchainKHR),
+       VK_NULL_FUNC_ENTRY(vkDestroySwapchainKHR,                                               destroySwapchainKHR),
+       VK_NULL_FUNC_ENTRY(vkGetSwapchainImagesKHR,                                             getSwapchainImagesKHR),
+       VK_NULL_FUNC_ENTRY(vkAcquireNextImageKHR,                                               acquireNextImageKHR),
+       VK_NULL_FUNC_ENTRY(vkQueuePresentKHR,                                                   queuePresentKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPresentCapabilitiesKHR,              getDeviceGroupPresentCapabilitiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupSurfacePresentModesKHR,              getDeviceGroupSurfacePresentModesKHR),
+       VK_NULL_FUNC_ENTRY(vkAcquireNextImage2KHR,                                              acquireNextImage2KHR),
+       VK_NULL_FUNC_ENTRY(vkCreateSharedSwapchainsKHR,                                 createSharedSwapchainsKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdDispatchBaseKHR,                                                cmdDispatchBase),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDeviceMaskKHR,                                               cmdSetDeviceMask),
+       VK_NULL_FUNC_ENTRY(vkGetDeviceGroupPeerMemoryFeaturesKHR,               getDeviceGroupPeerMemoryFeatures),
+       VK_NULL_FUNC_ENTRY(vkTrimCommandPoolKHR,                                                trimCommandPool),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleKHR,                                   getMemoryWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandlePropertiesKHR,                 getMemoryWin32HandlePropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryFdKHR,                                                    getMemoryFdKHR),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryFdPropertiesKHR,                                  getMemoryFdPropertiesKHR),
+       VK_NULL_FUNC_ENTRY(vkImportSemaphoreWin32HandleKHR,                             importSemaphoreWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkGetSemaphoreWin32HandleKHR,                                getSemaphoreWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkImportSemaphoreFdKHR,                                              importSemaphoreFdKHR),
+       VK_NULL_FUNC_ENTRY(vkGetSemaphoreFdKHR,                                                 getSemaphoreFdKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdPushDescriptorSetKHR,                                   cmdPushDescriptorSetKHR),
+       VK_NULL_FUNC_ENTRY(vkCmdPushDescriptorSetWithTemplateKHR,               cmdPushDescriptorSetWithTemplateKHR),
+       VK_NULL_FUNC_ENTRY(vkCreateDescriptorUpdateTemplateKHR,                 createDescriptorUpdateTemplate),
+       VK_NULL_FUNC_ENTRY(vkDestroyDescriptorUpdateTemplateKHR,                destroyDescriptorUpdateTemplate),
+       VK_NULL_FUNC_ENTRY(vkUpdateDescriptorSetWithTemplateKHR,                updateDescriptorSetWithTemplate),
+       VK_NULL_FUNC_ENTRY(vkGetSwapchainStatusKHR,                                             getSwapchainStatusKHR),
+       VK_NULL_FUNC_ENTRY(vkImportFenceWin32HandleKHR,                                 importFenceWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkGetFenceWin32HandleKHR,                                    getFenceWin32HandleKHR),
+       VK_NULL_FUNC_ENTRY(vkImportFenceFdKHR,                                                  importFenceFdKHR),
+       VK_NULL_FUNC_ENTRY(vkGetFenceFdKHR,                                                             getFenceFdKHR),
+       VK_NULL_FUNC_ENTRY(vkGetBufferMemoryRequirements2KHR,                   getBufferMemoryRequirements2),
+       VK_NULL_FUNC_ENTRY(vkGetImageMemoryRequirements2KHR,                    getImageMemoryRequirements2),
+       VK_NULL_FUNC_ENTRY(vkGetImageSparseMemoryRequirements2KHR,              getImageSparseMemoryRequirements2),
+       VK_NULL_FUNC_ENTRY(vkCreateSamplerYcbcrConversionKHR,                   createSamplerYcbcrConversion),
+       VK_NULL_FUNC_ENTRY(vkDestroySamplerYcbcrConversionKHR,                  destroySamplerYcbcrConversion),
+       VK_NULL_FUNC_ENTRY(vkBindBufferMemory2KHR,                                              bindBufferMemory2),
+       VK_NULL_FUNC_ENTRY(vkBindImageMemory2KHR,                                               bindImageMemory2),
+       VK_NULL_FUNC_ENTRY(vkGetDescriptorSetLayoutSupportKHR,                  getDescriptorSetLayoutSupport),
+       VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectTagEXT,                                debugMarkerSetObjectTagEXT),
+       VK_NULL_FUNC_ENTRY(vkDebugMarkerSetObjectNameEXT,                               debugMarkerSetObjectNameEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerBeginEXT,                                    cmdDebugMarkerBeginEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerEndEXT,                                              cmdDebugMarkerEndEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDebugMarkerInsertEXT,                                   cmdDebugMarkerInsertEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountAMD,                                   cmdDrawIndirectCountAMD),
+       VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCountAMD,                    cmdDrawIndexedIndirectCountAMD),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleNV,                                    getMemoryWin32HandleNV),
+       VK_NULL_FUNC_ENTRY(vkCmdProcessCommandsNVX,                                             cmdProcessCommandsNVX),
+       VK_NULL_FUNC_ENTRY(vkCmdReserveSpaceForCommandsNVX,                             cmdReserveSpaceForCommandsNVX),
+       VK_NULL_FUNC_ENTRY(vkCreateIndirectCommandsLayoutNVX,                   createIndirectCommandsLayoutNVX),
+       VK_NULL_FUNC_ENTRY(vkDestroyIndirectCommandsLayoutNVX,                  destroyIndirectCommandsLayoutNVX),
+       VK_NULL_FUNC_ENTRY(vkCreateObjectTableNVX,                                              createObjectTableNVX),
+       VK_NULL_FUNC_ENTRY(vkDestroyObjectTableNVX,                                             destroyObjectTableNVX),
+       VK_NULL_FUNC_ENTRY(vkRegisterObjectsNVX,                                                registerObjectsNVX),
+       VK_NULL_FUNC_ENTRY(vkUnregisterObjectsNVX,                                              unregisterObjectsNVX),
+       VK_NULL_FUNC_ENTRY(vkCmdSetViewportWScalingNV,                                  cmdSetViewportWScalingNV),
+       VK_NULL_FUNC_ENTRY(vkDisplayPowerControlEXT,                                    displayPowerControlEXT),
+       VK_NULL_FUNC_ENTRY(vkRegisterDeviceEventEXT,                                    registerDeviceEventEXT),
+       VK_NULL_FUNC_ENTRY(vkRegisterDisplayEventEXT,                                   registerDisplayEventEXT),
+       VK_NULL_FUNC_ENTRY(vkGetSwapchainCounterEXT,                                    getSwapchainCounterEXT),
+       VK_NULL_FUNC_ENTRY(vkGetRefreshCycleDurationGOOGLE,                             getRefreshCycleDurationGOOGLE),
+       VK_NULL_FUNC_ENTRY(vkGetPastPresentationTimingGOOGLE,                   getPastPresentationTimingGOOGLE),
+       VK_NULL_FUNC_ENTRY(vkCmdSetDiscardRectangleEXT,                                 cmdSetDiscardRectangleEXT),
+       VK_NULL_FUNC_ENTRY(vkSetHdrMetadataEXT,                                                 setHdrMetadataEXT),
+       VK_NULL_FUNC_ENTRY(vkCmdSetSampleLocationsEXT,                                  cmdSetSampleLocationsEXT),
+       VK_NULL_FUNC_ENTRY(vkCreateValidationCacheEXT,                                  createValidationCacheEXT),
+       VK_NULL_FUNC_ENTRY(vkDestroyValidationCacheEXT,                                 destroyValidationCacheEXT),
+       VK_NULL_FUNC_ENTRY(vkMergeValidationCachesEXT,                                  mergeValidationCachesEXT),
+       VK_NULL_FUNC_ENTRY(vkGetValidationCacheDataEXT,                                 getValidationCacheDataEXT),
+       VK_NULL_FUNC_ENTRY(vkGetAndroidHardwareBufferPropertiesANDROID, getAndroidHardwareBufferPropertiesANDROID),
+       VK_NULL_FUNC_ENTRY(vkGetMemoryAndroidHardwareBufferANDROID,             getMemoryAndroidHardwareBufferANDROID),
 };
 
index 8b54b12..3bb342c 100644 (file)
@@ -572,10 +572,9 @@ std::ostream&      operator<<      (std::ostream& s, const VkPipelineCoverageToColorStateC
 std::ostream&  operator<<      (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value);
 std::ostream&  operator<<      (std::ostream& s, const VkValidationCacheCreateInfoEXT& value);
 std::ostream&  operator<<      (std::ostream& s, const VkShaderModuleValidationCacheCreateInfoEXT& value);
-std::ostream&  operator<<      (std::ostream& s, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID& value);
 std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value);
-std::ostream&  operator<<      (std::ostream& s, const VkMemoryAndroidHardwareBufferPropertiesANDROID& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value);
+std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value);
 std::ostream&  operator<<      (std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value);
 std::ostream&  operator<<      (std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value);
-std::ostream&  operator<<      (std::ostream& s, const VkAndroidHardwareBufferExternalFormatPropertiesANDROID& value);
 std::ostream&  operator<<      (std::ostream& s, const VkExternalFormatANDROID& value);
index be0a74e..c4e3ba1 100644 (file)
@@ -161,13 +161,6 @@ const char* getStructureTypeName (VkStructureType value)
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:                                                  return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
                case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:                                                                   return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
                case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:                                                                  return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
-               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                    return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
-               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                                   return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
-               case VK_STRUCTURE_TYPE_MEMORY_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                               return "VK_STRUCTURE_TYPE_MEMORY_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
-               case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                             return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
-               case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                 return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
-               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID:              return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID";
-               case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:                                                                                 return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
                case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:                                                                              return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
                case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:                                                             return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
                case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:                                                  return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
@@ -310,6 +303,12 @@ const char* getStructureTypeName (VkStructureType value)
                case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:                                                                return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
                case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:                                                                             return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
                case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:                                                                   return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
+               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:                                                   return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
+               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:                                              return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
+               case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:                               return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
+               case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                             return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
+               case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:                                 return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
+               case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:                                                                                 return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:                    return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT";
                case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:                                                  return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT";
                case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:                                                                               return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
@@ -5948,36 +5947,39 @@ std::ostream& operator<< (std::ostream& s, const VkShaderModuleValidationCacheCr
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
 {
-       s << "VkPhysicalDeviceAndroidHardwareBufferInfoANDROID = {\n";
+       s << "VkAndroidHardwareBufferUsageANDROID = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tformat = " << value.format << '\n';
-       s << "\ttiling = " << value.tiling << '\n';
-       s << "\timageUsage = " << getImageUsageFlagsStr(value.imageUsage) << '\n';
-       s << "\timageFlags = " << getImageCreateFlagsStr(value.imageFlags) << '\n';
+       s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value)
 {
-       s << "VkAndroidHardwareBufferUsageANDROID = {\n";
+       s << "VkAndroidHardwareBufferPropertiesANDROID = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tandroidHardwareBufferUsage = " << value.androidHardwareBufferUsage << '\n';
+       s << "\tallocationSize = " << value.allocationSize << '\n';
+       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
        s << '}';
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryAndroidHardwareBufferPropertiesANDROID& value)
+std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferFormatPropertiesANDROID& value)
 {
-       s << "VkMemoryAndroidHardwareBufferPropertiesANDROID = {\n";
+       s << "VkAndroidHardwareBufferFormatPropertiesANDROID = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
-       s << "\tallocationSize = " << value.allocationSize << '\n';
-       s << "\tmemoryTypeBits = " << value.memoryTypeBits << '\n';
+       s << "\tformat = " << value.format << '\n';
+       s << "\texternalFormat = " << value.externalFormat << '\n';
+       s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
+       s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
+       s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
+       s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
+       s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
        s << '}';
        return s;
 }
@@ -6002,21 +6004,6 @@ std::ostream& operator<< (std::ostream& s, const VkMemoryGetAndroidHardwareBuffe
        return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAndroidHardwareBufferExternalFormatPropertiesANDROID& value)
-{
-       s << "VkAndroidHardwareBufferExternalFormatPropertiesANDROID = {\n";
-       s << "\tsType = " << value.sType << '\n';
-       s << "\tpNext = " << value.pNext << '\n';
-       s << "\texternalFormat = " << value.externalFormat << '\n';
-       s << "\tformatFeatures = " << getFormatFeatureFlagsStr(value.formatFeatures) << '\n';
-       s << "\tsuggestedYcbcrModel = " << value.suggestedYcbcrModel << '\n';
-       s << "\tsuggestedYcbcrRange = " << value.suggestedYcbcrRange << '\n';
-       s << "\tsuggestedXChromaOffset = " << value.suggestedXChromaOffset << '\n';
-       s << "\tsuggestedYChromaOffset = " << value.suggestedYChromaOffset << '\n';
-       s << '}';
-       return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkExternalFormatANDROID& value)
 {
        s << "VkExternalFormatANDROID = {\n";
index 14ef3c2..3dc2aaa 100644 (file)
@@ -2775,16 +2775,6 @@ struct VkShaderModuleValidationCacheCreateInfoEXT
        VkValidationCacheEXT    validationCache;
 };
 
-struct VkPhysicalDeviceAndroidHardwareBufferInfoANDROID
-{
-       VkStructureType         sType;
-       void*                           pNext;
-       VkFormat                        format;
-       VkImageTiling           tiling;
-       VkImageUsageFlags       imageUsage;
-       VkImageCreateFlags      imageFlags;
-};
-
 struct VkAndroidHardwareBufferUsageANDROID
 {
        VkStructureType sType;
@@ -2792,7 +2782,7 @@ struct VkAndroidHardwareBufferUsageANDROID
        deUint64                androidHardwareBufferUsage;
 };
 
-struct VkMemoryAndroidHardwareBufferPropertiesANDROID
+struct VkAndroidHardwareBufferPropertiesANDROID
 {
        VkStructureType sType;
        void*                   pNext;
@@ -2800,11 +2790,24 @@ struct VkMemoryAndroidHardwareBufferPropertiesANDROID
        deUint32                memoryTypeBits;
 };
 
-struct VkImportAndroidHardwareBufferInfoANDROID
+struct VkAndroidHardwareBufferFormatPropertiesANDROID
 {
        VkStructureType                                 sType;
-       const void*                                             pNext;
-       pt::AndroidHardwareBufferPtr    buffer;
+       void*                                                   pNext;
+       VkFormat                                                format;
+       deUint64                                                externalFormat;
+       VkFormatFeatureFlags                    formatFeatures;
+       VkSamplerYcbcrModelConversion   suggestedYcbcrModel;
+       VkSamplerYcbcrRange                             suggestedYcbcrRange;
+       VkChromaLocation                                suggestedXChromaOffset;
+       VkChromaLocation                                suggestedYChromaOffset;
+};
+
+struct VkImportAndroidHardwareBufferInfoANDROID
+{
+       VkStructureType                                         sType;
+       const void*                                                     pNext;
+       struct pt::AndroidHardwareBufferPtr     buffer;
 };
 
 struct VkMemoryGetAndroidHardwareBufferInfoANDROID
@@ -2814,23 +2817,11 @@ struct VkMemoryGetAndroidHardwareBufferInfoANDROID
        VkDeviceMemory  memory;
 };
 
-struct VkAndroidHardwareBufferExternalFormatPropertiesANDROID
-{
-       VkStructureType                                 sType;
-       void*                                                   pNext;
-       deUint32                                                externalFormat;
-       VkFormatFeatureFlags                    formatFeatures;
-       VkSamplerYcbcrModelConversion   suggestedYcbcrModel;
-       VkSamplerYcbcrRange                             suggestedYcbcrRange;
-       VkChromaLocation                                suggestedXChromaOffset;
-       VkChromaLocation                                suggestedYChromaOffset;
-};
-
 struct VkExternalFormatANDROID
 {
        VkStructureType sType;
        void*                   pNext;
-       deUint32                externalFormat;
+       deUint64                externalFormat;
 };
 
 
index 54e0995..6839862 100644 (file)
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-virtual void           destroyDevice                                                                   (VkDevice device, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void           getDeviceQueue                                                                  (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue) const = 0;
-virtual VkResult       queueSubmit                                                                             (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const = 0;
-virtual VkResult       queueWaitIdle                                                                   (VkQueue queue) const = 0;
-virtual VkResult       deviceWaitIdle                                                                  (VkDevice device) const = 0;
-virtual VkResult       allocateMemory                                                                  (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const = 0;
-virtual void           freeMemory                                                                              (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       mapMemory                                                                               (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const = 0;
-virtual void           unmapMemory                                                                             (VkDevice device, VkDeviceMemory memory) const = 0;
-virtual VkResult       flushMappedMemoryRanges                                                 (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
-virtual VkResult       invalidateMappedMemoryRanges                                    (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
-virtual void           getDeviceMemoryCommitment                                               (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const = 0;
-virtual VkResult       bindBufferMemory                                                                (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
-virtual VkResult       bindImageMemory                                                                 (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
-virtual void           getBufferMemoryRequirements                                             (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const = 0;
-virtual void           getImageMemoryRequirements                                              (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const = 0;
-virtual void           getImageSparseMemoryRequirements                                (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const = 0;
-virtual VkResult       queueBindSparse                                                                 (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const = 0;
-virtual VkResult       createFence                                                                             (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
-virtual void           destroyFence                                                                    (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       resetFences                                                                             (VkDevice device, deUint32 fenceCount, const VkFence* pFences) const = 0;
-virtual VkResult       getFenceStatus                                                                  (VkDevice device, VkFence fence) const = 0;
-virtual VkResult       waitForFences                                                                   (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout) const = 0;
-virtual VkResult       createSemaphore                                                                 (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const = 0;
-virtual void           destroySemaphore                                                                (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createEvent                                                                             (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const = 0;
-virtual void           destroyEvent                                                                    (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       getEventStatus                                                                  (VkDevice device, VkEvent event) const = 0;
-virtual VkResult       setEvent                                                                                (VkDevice device, VkEvent event) const = 0;
-virtual VkResult       resetEvent                                                                              (VkDevice device, VkEvent event) const = 0;
-virtual VkResult       createQueryPool                                                                 (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const = 0;
-virtual void           destroyQueryPool                                                                (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       getQueryPoolResults                                                             (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
-virtual VkResult       createBuffer                                                                    (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const = 0;
-virtual void           destroyBuffer                                                                   (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createBufferView                                                                (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const = 0;
-virtual void           destroyBufferView                                                               (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createImage                                                                             (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const = 0;
-virtual void           destroyImage                                                                    (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void           getImageSubresourceLayout                                               (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const = 0;
-virtual VkResult       createImageView                                                                 (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const = 0;
-virtual void           destroyImageView                                                                (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createShaderModule                                                              (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) const = 0;
-virtual void           destroyShaderModule                                                             (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createPipelineCache                                                             (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const = 0;
-virtual void           destroyPipelineCache                                                    (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       getPipelineCacheData                                                    (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData) const = 0;
-virtual VkResult       mergePipelineCaches                                                             (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches) const = 0;
-virtual VkResult       createGraphicsPipelines                                                 (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
-virtual VkResult       createComputePipelines                                                  (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
-virtual void           destroyPipeline                                                                 (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createPipelineLayout                                                    (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const = 0;
-virtual void           destroyPipelineLayout                                                   (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createSampler                                                                   (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const = 0;
-virtual void           destroySampler                                                                  (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createDescriptorSetLayout                                               (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const = 0;
-virtual void           destroyDescriptorSetLayout                                              (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createDescriptorPool                                                    (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const = 0;
-virtual void           destroyDescriptorPool                                                   (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       resetDescriptorPool                                                             (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const = 0;
-virtual VkResult       allocateDescriptorSets                                                  (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const = 0;
-virtual VkResult       freeDescriptorSets                                                              (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const = 0;
-virtual void           updateDescriptorSets                                                    (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const = 0;
-virtual VkResult       createFramebuffer                                                               (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const = 0;
-virtual void           destroyFramebuffer                                                              (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createRenderPass                                                                (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const = 0;
-virtual void           destroyRenderPass                                                               (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void           getRenderAreaGranularity                                                (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const = 0;
-virtual VkResult       createCommandPool                                                               (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const = 0;
-virtual void           destroyCommandPool                                                              (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       resetCommandPool                                                                (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const = 0;
-virtual VkResult       allocateCommandBuffers                                                  (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const = 0;
-virtual void           freeCommandBuffers                                                              (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const = 0;
-virtual VkResult       beginCommandBuffer                                                              (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const = 0;
-virtual VkResult       endCommandBuffer                                                                (VkCommandBuffer commandBuffer) const = 0;
-virtual VkResult       resetCommandBuffer                                                              (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const = 0;
-virtual void           cmdBindPipeline                                                                 (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const = 0;
-virtual void           cmdSetViewport                                                                  (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports) const = 0;
-virtual void           cmdSetScissor                                                                   (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors) const = 0;
-virtual void           cmdSetLineWidth                                                                 (VkCommandBuffer commandBuffer, float lineWidth) const = 0;
-virtual void           cmdSetDepthBias                                                                 (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const = 0;
-virtual void           cmdSetBlendConstants                                                    (VkCommandBuffer commandBuffer, const float blendConstants[4]) const = 0;
-virtual void           cmdSetDepthBounds                                                               (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const = 0;
-virtual void           cmdSetStencilCompareMask                                                (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask) const = 0;
-virtual void           cmdSetStencilWriteMask                                                  (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask) const = 0;
-virtual void           cmdSetStencilReference                                                  (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference) const = 0;
-virtual void           cmdBindDescriptorSets                                                   (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets) const = 0;
-virtual void           cmdBindIndexBuffer                                                              (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const = 0;
-virtual void           cmdBindVertexBuffers                                                    (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const = 0;
-virtual void           cmdDraw                                                                                 (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance) const = 0;
-virtual void           cmdDrawIndexed                                                                  (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance) const = 0;
-virtual void           cmdDrawIndirect                                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const = 0;
-virtual void           cmdDrawIndexedIndirect                                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const = 0;
-virtual void           cmdDispatch                                                                             (VkCommandBuffer commandBuffer, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const = 0;
-virtual void           cmdDispatchIndirect                                                             (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const = 0;
-virtual void           cmdCopyBuffer                                                                   (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions) const = 0;
-virtual void           cmdCopyImage                                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions) const = 0;
-virtual void           cmdBlitImage                                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter) const = 0;
-virtual void           cmdCopyBufferToImage                                                    (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions) const = 0;
-virtual void           cmdCopyImageToBuffer                                                    (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions) const = 0;
-virtual void           cmdUpdateBuffer                                                                 (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const = 0;
-virtual void           cmdFillBuffer                                                                   (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data) const = 0;
-virtual void           cmdClearColorImage                                                              (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const = 0;
-virtual void           cmdClearDepthStencilImage                                               (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const = 0;
-virtual void           cmdClearAttachments                                                             (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects) const = 0;
-virtual void           cmdResolveImage                                                                 (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions) const = 0;
-virtual void           cmdSetEvent                                                                             (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const = 0;
-virtual void           cmdResetEvent                                                                   (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const = 0;
-virtual void           cmdWaitEvents                                                                   (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const = 0;
-virtual void           cmdPipelineBarrier                                                              (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const = 0;
-virtual void           cmdBeginQuery                                                                   (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags) const = 0;
-virtual void           cmdEndQuery                                                                             (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query) const = 0;
-virtual void           cmdResetQueryPool                                                               (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount) const = 0;
-virtual void           cmdWriteTimestamp                                                               (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query) const = 0;
-virtual void           cmdCopyQueryPoolResults                                                 (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
-virtual void           cmdPushConstants                                                                (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues) const = 0;
-virtual void           cmdBeginRenderPass                                                              (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const = 0;
-virtual void           cmdNextSubpass                                                                  (VkCommandBuffer commandBuffer, VkSubpassContents contents) const = 0;
-virtual void           cmdEndRenderPass                                                                (VkCommandBuffer commandBuffer) const = 0;
-virtual void           cmdExecuteCommands                                                              (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const = 0;
-virtual VkResult       bindBufferMemory2                                                               (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const = 0;
-virtual VkResult       bindImageMemory2                                                                (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const = 0;
-virtual void           getDeviceGroupPeerMemoryFeatures                                (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const = 0;
-virtual void           cmdSetDeviceMask                                                                (VkCommandBuffer commandBuffer, deUint32 deviceMask) const = 0;
-virtual void           cmdDispatchBase                                                                 (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const = 0;
-virtual void           getImageMemoryRequirements2                                             (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
-virtual void           getBufferMemoryRequirements2                                    (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
-virtual void           getImageSparseMemoryRequirements2                               (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const = 0;
-virtual void           trimCommandPool                                                                 (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const = 0;
-virtual void           getDeviceQueue2                                                                 (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const = 0;
-virtual VkResult       createSamplerYcbcrConversion                                    (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const = 0;
-virtual void           destroySamplerYcbcrConversion                                   (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createDescriptorUpdateTemplate                                  (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const = 0;
-virtual void           destroyDescriptorUpdateTemplate                                 (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual void           updateDescriptorSetWithTemplate                                 (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const = 0;
-virtual void           getDescriptorSetLayoutSupport                                   (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const = 0;
-virtual VkResult       createSwapchainKHR                                                              (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const = 0;
-virtual void           destroySwapchainKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       getSwapchainImagesKHR                                                   (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages) const = 0;
-virtual VkResult       acquireNextImageKHR                                                             (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const = 0;
-virtual VkResult       queuePresentKHR                                                                 (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const = 0;
-virtual VkResult       getDeviceGroupPresentCapabilitiesKHR                    (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const = 0;
-virtual VkResult       getDeviceGroupSurfacePresentModesKHR                    (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const = 0;
-virtual VkResult       acquireNextImage2KHR                                                    (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex) const = 0;
-virtual VkResult       createSharedSwapchainsKHR                                               (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const = 0;
-virtual VkResult       getMemoryWin32HandleKHR                                                 (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
-virtual VkResult       getMemoryWin32HandlePropertiesKHR                               (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const = 0;
-virtual VkResult       getMemoryFdKHR                                                                  (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
-virtual VkResult       getMemoryFdPropertiesKHR                                                (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const = 0;
-virtual VkResult       importSemaphoreWin32HandleKHR                                   (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const = 0;
-virtual VkResult       getSemaphoreWin32HandleKHR                                              (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
-virtual VkResult       importSemaphoreFdKHR                                                    (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const = 0;
-virtual VkResult       getSemaphoreFdKHR                                                               (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
-virtual void           cmdPushDescriptorSetKHR                                                 (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const = 0;
-virtual void           cmdPushDescriptorSetWithTemplateKHR                             (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, deUint32 set, const void* pData) const = 0;
-virtual VkResult       getSwapchainStatusKHR                                                   (VkDevice device, VkSwapchainKHR swapchain) const = 0;
-virtual VkResult       importFenceWin32HandleKHR                                               (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const = 0;
-virtual VkResult       getFenceWin32HandleKHR                                                  (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
-virtual VkResult       importFenceFdKHR                                                                (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const = 0;
-virtual VkResult       getFenceFdKHR                                                                   (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
-virtual VkResult       debugMarkerSetObjectTagEXT                                              (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const = 0;
-virtual VkResult       debugMarkerSetObjectNameEXT                                             (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const = 0;
-virtual void           cmdDebugMarkerBeginEXT                                                  (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
-virtual void           cmdDebugMarkerEndEXT                                                    (VkCommandBuffer commandBuffer) const = 0;
-virtual void           cmdDebugMarkerInsertEXT                                                 (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
-virtual void           cmdDrawIndirectCountAMD                                                 (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
-virtual void           cmdDrawIndexedIndirectCountAMD                                  (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
-virtual VkResult       getMemoryWin32HandleNV                                                  (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const = 0;
-virtual void           cmdProcessCommandsNVX                                                   (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const = 0;
-virtual void           cmdReserveSpaceForCommandsNVX                                   (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const = 0;
-virtual VkResult       createIndirectCommandsLayoutNVX                                 (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const = 0;
-virtual void           destroyIndirectCommandsLayoutNVX                                (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       createObjectTableNVX                                                    (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const = 0;
-virtual void           destroyObjectTableNVX                                                   (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       registerObjectsNVX                                                              (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const = 0;
-virtual VkResult       unregisterObjectsNVX                                                    (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const = 0;
-virtual void           cmdSetViewportWScalingNV                                                (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings) const = 0;
-virtual VkResult       displayPowerControlEXT                                                  (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const = 0;
-virtual VkResult       registerDeviceEventEXT                                                  (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
-virtual VkResult       registerDisplayEventEXT                                                 (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
-virtual VkResult       getSwapchainCounterEXT                                                  (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue) const = 0;
-virtual VkResult       getRefreshCycleDurationGOOGLE                                   (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const = 0;
-virtual VkResult       getPastPresentationTimingGOOGLE                                 (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const = 0;
-virtual void           cmdSetDiscardRectangleEXT                                               (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles) const = 0;
-virtual void           setHdrMetadataEXT                                                               (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const = 0;
-virtual void           cmdSetSampleLocationsEXT                                                (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const = 0;
-virtual VkResult       createValidationCacheEXT                                                (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const = 0;
-virtual void           destroyValidationCacheEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult       mergeValidationCachesEXT                                                (VkDevice device, VkValidationCacheEXT dstCache, deUint32 srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const = 0;
-virtual VkResult       getValidationCacheDataEXT                                               (VkDevice device, VkValidationCacheEXT validationCache, deUintptr* pDataSize, void* pData) const = 0;
-virtual VkResult       getMemoryAndroidHardwareBufferPropertiesANDROID (VkDevice device, const pt::AndroidHardwareBufferPtr buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties) const = 0;
-virtual VkResult       getMemoryAndroidHardwareBufferANDROID                   (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, pt::AndroidHardwareBufferPtr* pBuffer) const = 0;
+virtual void           destroyDevice                                                           (VkDevice device, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void           getDeviceQueue                                                          (VkDevice device, deUint32 queueFamilyIndex, deUint32 queueIndex, VkQueue* pQueue) const = 0;
+virtual VkResult       queueSubmit                                                                     (VkQueue queue, deUint32 submitCount, const VkSubmitInfo* pSubmits, VkFence fence) const = 0;
+virtual VkResult       queueWaitIdle                                                           (VkQueue queue) const = 0;
+virtual VkResult       deviceWaitIdle                                                          (VkDevice device) const = 0;
+virtual VkResult       allocateMemory                                                          (VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory) const = 0;
+virtual void           freeMemory                                                                      (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       mapMemory                                                                       (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) const = 0;
+virtual void           unmapMemory                                                                     (VkDevice device, VkDeviceMemory memory) const = 0;
+virtual VkResult       flushMappedMemoryRanges                                         (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
+virtual VkResult       invalidateMappedMemoryRanges                            (VkDevice device, deUint32 memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges) const = 0;
+virtual void           getDeviceMemoryCommitment                                       (VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes) const = 0;
+virtual VkResult       bindBufferMemory                                                        (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
+virtual VkResult       bindImageMemory                                                         (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset) const = 0;
+virtual void           getBufferMemoryRequirements                                     (VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements) const = 0;
+virtual void           getImageMemoryRequirements                                      (VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements) const = 0;
+virtual void           getImageSparseMemoryRequirements                        (VkDevice device, VkImage image, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements) const = 0;
+virtual VkResult       queueBindSparse                                                         (VkQueue queue, deUint32 bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence) const = 0;
+virtual VkResult       createFence                                                                     (VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
+virtual void           destroyFence                                                            (VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       resetFences                                                                     (VkDevice device, deUint32 fenceCount, const VkFence* pFences) const = 0;
+virtual VkResult       getFenceStatus                                                          (VkDevice device, VkFence fence) const = 0;
+virtual VkResult       waitForFences                                                           (VkDevice device, deUint32 fenceCount, const VkFence* pFences, VkBool32 waitAll, deUint64 timeout) const = 0;
+virtual VkResult       createSemaphore                                                         (VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore) const = 0;
+virtual void           destroySemaphore                                                        (VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createEvent                                                                     (VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) const = 0;
+virtual void           destroyEvent                                                            (VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       getEventStatus                                                          (VkDevice device, VkEvent event) const = 0;
+virtual VkResult       setEvent                                                                        (VkDevice device, VkEvent event) const = 0;
+virtual VkResult       resetEvent                                                                      (VkDevice device, VkEvent event) const = 0;
+virtual VkResult       createQueryPool                                                         (VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool) const = 0;
+virtual void           destroyQueryPool                                                        (VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       getQueryPoolResults                                                     (VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, deUintptr dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
+virtual VkResult       createBuffer                                                            (VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) const = 0;
+virtual void           destroyBuffer                                                           (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createBufferView                                                        (VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView) const = 0;
+virtual void           destroyBufferView                                                       (VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createImage                                                                     (VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage) const = 0;
+virtual void           destroyImage                                                            (VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void           getImageSubresourceLayout                                       (VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout) const = 0;
+virtual VkResult       createImageView                                                         (VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView) const = 0;
+virtual void           destroyImageView                                                        (VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createShaderModule                                                      (VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule) const = 0;
+virtual void           destroyShaderModule                                                     (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createPipelineCache                                                     (VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache) const = 0;
+virtual void           destroyPipelineCache                                            (VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       getPipelineCacheData                                            (VkDevice device, VkPipelineCache pipelineCache, deUintptr* pDataSize, void* pData) const = 0;
+virtual VkResult       mergePipelineCaches                                                     (VkDevice device, VkPipelineCache dstCache, deUint32 srcCacheCount, const VkPipelineCache* pSrcCaches) const = 0;
+virtual VkResult       createGraphicsPipelines                                         (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
+virtual VkResult       createComputePipelines                                          (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
+virtual void           destroyPipeline                                                         (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createPipelineLayout                                            (VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout) const = 0;
+virtual void           destroyPipelineLayout                                           (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createSampler                                                           (VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler) const = 0;
+virtual void           destroySampler                                                          (VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createDescriptorSetLayout                                       (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) const = 0;
+virtual void           destroyDescriptorSetLayout                                      (VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createDescriptorPool                                            (VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool) const = 0;
+virtual void           destroyDescriptorPool                                           (VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       resetDescriptorPool                                                     (VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags) const = 0;
+virtual VkResult       allocateDescriptorSets                                          (VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets) const = 0;
+virtual VkResult       freeDescriptorSets                                                      (VkDevice device, VkDescriptorPool descriptorPool, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets) const = 0;
+virtual void           updateDescriptorSets                                            (VkDevice device, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, deUint32 descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies) const = 0;
+virtual VkResult       createFramebuffer                                                       (VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer) const = 0;
+virtual void           destroyFramebuffer                                                      (VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createRenderPass                                                        (VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass) const = 0;
+virtual void           destroyRenderPass                                                       (VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void           getRenderAreaGranularity                                        (VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity) const = 0;
+virtual VkResult       createCommandPool                                                       (VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool) const = 0;
+virtual void           destroyCommandPool                                                      (VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       resetCommandPool                                                        (VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags) const = 0;
+virtual VkResult       allocateCommandBuffers                                          (VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers) const = 0;
+virtual void           freeCommandBuffers                                                      (VkDevice device, VkCommandPool commandPool, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const = 0;
+virtual VkResult       beginCommandBuffer                                                      (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo) const = 0;
+virtual VkResult       endCommandBuffer                                                        (VkCommandBuffer commandBuffer) const = 0;
+virtual VkResult       resetCommandBuffer                                                      (VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags) const = 0;
+virtual void           cmdBindPipeline                                                         (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) const = 0;
+virtual void           cmdSetViewport                                                          (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewport* pViewports) const = 0;
+virtual void           cmdSetScissor                                                           (VkCommandBuffer commandBuffer, deUint32 firstScissor, deUint32 scissorCount, const VkRect2D* pScissors) const = 0;
+virtual void           cmdSetLineWidth                                                         (VkCommandBuffer commandBuffer, float lineWidth) const = 0;
+virtual void           cmdSetDepthBias                                                         (VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const = 0;
+virtual void           cmdSetBlendConstants                                            (VkCommandBuffer commandBuffer, const float blendConstants[4]) const = 0;
+virtual void           cmdSetDepthBounds                                                       (VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds) const = 0;
+virtual void           cmdSetStencilCompareMask                                        (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 compareMask) const = 0;
+virtual void           cmdSetStencilWriteMask                                          (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 writeMask) const = 0;
+virtual void           cmdSetStencilReference                                          (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, deUint32 reference) const = 0;
+virtual void           cmdBindDescriptorSets                                           (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 firstSet, deUint32 descriptorSetCount, const VkDescriptorSet* pDescriptorSets, deUint32 dynamicOffsetCount, const deUint32* pDynamicOffsets) const = 0;
+virtual void           cmdBindIndexBuffer                                                      (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType) const = 0;
+virtual void           cmdBindVertexBuffers                                            (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets) const = 0;
+virtual void           cmdDraw                                                                         (VkCommandBuffer commandBuffer, deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance) const = 0;
+virtual void           cmdDrawIndexed                                                          (VkCommandBuffer commandBuffer, deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance) const = 0;
+virtual void           cmdDrawIndirect                                                         (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const = 0;
+virtual void           cmdDrawIndexedIndirect                                          (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, deUint32 drawCount, deUint32 stride) const = 0;
+virtual void           cmdDispatch                                                                     (VkCommandBuffer commandBuffer, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const = 0;
+virtual void           cmdDispatchIndirect                                                     (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const = 0;
+virtual void           cmdCopyBuffer                                                           (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferCopy* pRegions) const = 0;
+virtual void           cmdCopyImage                                                            (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageCopy* pRegions) const = 0;
+virtual void           cmdBlitImage                                                            (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageBlit* pRegions, VkFilter filter) const = 0;
+virtual void           cmdCopyBufferToImage                                            (VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkBufferImageCopy* pRegions) const = 0;
+virtual void           cmdCopyImageToBuffer                                            (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, deUint32 regionCount, const VkBufferImageCopy* pRegions) const = 0;
+virtual void           cmdUpdateBuffer                                                         (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData) const = 0;
+virtual void           cmdFillBuffer                                                           (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, deUint32 data) const = 0;
+virtual void           cmdClearColorImage                                                      (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const = 0;
+virtual void           cmdClearDepthStencilImage                                       (VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, deUint32 rangeCount, const VkImageSubresourceRange* pRanges) const = 0;
+virtual void           cmdClearAttachments                                                     (VkCommandBuffer commandBuffer, deUint32 attachmentCount, const VkClearAttachment* pAttachments, deUint32 rectCount, const VkClearRect* pRects) const = 0;
+virtual void           cmdResolveImage                                                         (VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, deUint32 regionCount, const VkImageResolve* pRegions) const = 0;
+virtual void           cmdSetEvent                                                                     (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const = 0;
+virtual void           cmdResetEvent                                                           (VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask) const = 0;
+virtual void           cmdWaitEvents                                                           (VkCommandBuffer commandBuffer, deUint32 eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const = 0;
+virtual void           cmdPipelineBarrier                                                      (VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, deUint32 memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, deUint32 bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, deUint32 imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) const = 0;
+virtual void           cmdBeginQuery                                                           (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, VkQueryControlFlags flags) const = 0;
+virtual void           cmdEndQuery                                                                     (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query) const = 0;
+virtual void           cmdResetQueryPool                                                       (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount) const = 0;
+virtual void           cmdWriteTimestamp                                                       (VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, deUint32 query) const = 0;
+virtual void           cmdCopyQueryPoolResults                                         (VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) const = 0;
+virtual void           cmdPushConstants                                                        (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, deUint32 offset, deUint32 size, const void* pValues) const = 0;
+virtual void           cmdBeginRenderPass                                                      (VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents) const = 0;
+virtual void           cmdNextSubpass                                                          (VkCommandBuffer commandBuffer, VkSubpassContents contents) const = 0;
+virtual void           cmdEndRenderPass                                                        (VkCommandBuffer commandBuffer) const = 0;
+virtual void           cmdExecuteCommands                                                      (VkCommandBuffer commandBuffer, deUint32 commandBufferCount, const VkCommandBuffer* pCommandBuffers) const = 0;
+virtual VkResult       bindBufferMemory2                                                       (VkDevice device, deUint32 bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos) const = 0;
+virtual VkResult       bindImageMemory2                                                        (VkDevice device, deUint32 bindInfoCount, const VkBindImageMemoryInfo* pBindInfos) const = 0;
+virtual void           getDeviceGroupPeerMemoryFeatures                        (VkDevice device, deUint32 heapIndex, deUint32 localDeviceIndex, deUint32 remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) const = 0;
+virtual void           cmdSetDeviceMask                                                        (VkCommandBuffer commandBuffer, deUint32 deviceMask) const = 0;
+virtual void           cmdDispatchBase                                                         (VkCommandBuffer commandBuffer, deUint32 baseGroupX, deUint32 baseGroupY, deUint32 baseGroupZ, deUint32 groupCountX, deUint32 groupCountY, deUint32 groupCountZ) const = 0;
+virtual void           getImageMemoryRequirements2                                     (VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
+virtual void           getBufferMemoryRequirements2                            (VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
+virtual void           getImageSparseMemoryRequirements2                       (VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, deUint32* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) const = 0;
+virtual void           trimCommandPool                                                         (VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags) const = 0;
+virtual void           getDeviceQueue2                                                         (VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue) const = 0;
+virtual VkResult       createSamplerYcbcrConversion                            (VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) const = 0;
+virtual void           destroySamplerYcbcrConversion                           (VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createDescriptorUpdateTemplate                          (VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) const = 0;
+virtual void           destroyDescriptorUpdateTemplate                         (VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual void           updateDescriptorSetWithTemplate                         (VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) const = 0;
+virtual void           getDescriptorSetLayoutSupport                           (VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport) const = 0;
+virtual VkResult       createSwapchainKHR                                                      (VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain) const = 0;
+virtual void           destroySwapchainKHR                                                     (VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       getSwapchainImagesKHR                                           (VkDevice device, VkSwapchainKHR swapchain, deUint32* pSwapchainImageCount, VkImage* pSwapchainImages) const = 0;
+virtual VkResult       acquireNextImageKHR                                                     (VkDevice device, VkSwapchainKHR swapchain, deUint64 timeout, VkSemaphore semaphore, VkFence fence, deUint32* pImageIndex) const = 0;
+virtual VkResult       queuePresentKHR                                                         (VkQueue queue, const VkPresentInfoKHR* pPresentInfo) const = 0;
+virtual VkResult       getDeviceGroupPresentCapabilitiesKHR            (VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) const = 0;
+virtual VkResult       getDeviceGroupSurfacePresentModesKHR            (VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes) const = 0;
+virtual VkResult       acquireNextImage2KHR                                            (VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, deUint32* pImageIndex) const = 0;
+virtual VkResult       createSharedSwapchainsKHR                                       (VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains) const = 0;
+virtual VkResult       getMemoryWin32HandleKHR                                         (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
+virtual VkResult       getMemoryWin32HandlePropertiesKHR                       (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const = 0;
+virtual VkResult       getMemoryFdKHR                                                          (VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
+virtual VkResult       getMemoryFdPropertiesKHR                                        (VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties) const = 0;
+virtual VkResult       importSemaphoreWin32HandleKHR                           (VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const = 0;
+virtual VkResult       getSemaphoreWin32HandleKHR                                      (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
+virtual VkResult       importSemaphoreFdKHR                                            (VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) const = 0;
+virtual VkResult       getSemaphoreFdKHR                                                       (VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
+virtual void           cmdPushDescriptorSetKHR                                         (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, deUint32 set, deUint32 descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites) const = 0;
+virtual void           cmdPushDescriptorSetWithTemplateKHR                     (VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, deUint32 set, const void* pData) const = 0;
+virtual VkResult       getSwapchainStatusKHR                                           (VkDevice device, VkSwapchainKHR swapchain) const = 0;
+virtual VkResult       importFenceWin32HandleKHR                                       (VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) const = 0;
+virtual VkResult       getFenceWin32HandleKHR                                          (VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
+virtual VkResult       importFenceFdKHR                                                        (VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo) const = 0;
+virtual VkResult       getFenceFdKHR                                                           (VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd) const = 0;
+virtual VkResult       debugMarkerSetObjectTagEXT                                      (VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo) const = 0;
+virtual VkResult       debugMarkerSetObjectNameEXT                                     (VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo) const = 0;
+virtual void           cmdDebugMarkerBeginEXT                                          (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
+virtual void           cmdDebugMarkerEndEXT                                            (VkCommandBuffer commandBuffer) const = 0;
+virtual void           cmdDebugMarkerInsertEXT                                         (VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) const = 0;
+virtual void           cmdDrawIndirectCountAMD                                         (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
+virtual void           cmdDrawIndexedIndirectCountAMD                          (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
+virtual VkResult       getMemoryWin32HandleNV                                          (VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, pt::Win32Handle* pHandle) const = 0;
+virtual void           cmdProcessCommandsNVX                                           (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const = 0;
+virtual void           cmdReserveSpaceForCommandsNVX                           (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const = 0;
+virtual VkResult       createIndirectCommandsLayoutNVX                         (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const = 0;
+virtual void           destroyIndirectCommandsLayoutNVX                        (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       createObjectTableNVX                                            (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const = 0;
+virtual void           destroyObjectTableNVX                                           (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       registerObjectsNVX                                                      (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const = 0;
+virtual VkResult       unregisterObjectsNVX                                            (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const = 0;
+virtual void           cmdSetViewportWScalingNV                                        (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings) const = 0;
+virtual VkResult       displayPowerControlEXT                                          (VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const = 0;
+virtual VkResult       registerDeviceEventEXT                                          (VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
+virtual VkResult       registerDisplayEventEXT                                         (VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
+virtual VkResult       getSwapchainCounterEXT                                          (VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, deUint64* pCounterValue) const = 0;
+virtual VkResult       getRefreshCycleDurationGOOGLE                           (VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) const = 0;
+virtual VkResult       getPastPresentationTimingGOOGLE                         (VkDevice device, VkSwapchainKHR swapchain, deUint32* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings) const = 0;
+virtual void           cmdSetDiscardRectangleEXT                                       (VkCommandBuffer commandBuffer, deUint32 firstDiscardRectangle, deUint32 discardRectangleCount, const VkRect2D* pDiscardRectangles) const = 0;
+virtual void           setHdrMetadataEXT                                                       (VkDevice device, deUint32 swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata) const = 0;
+virtual void           cmdSetSampleLocationsEXT                                        (VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo) const = 0;
+virtual VkResult       createValidationCacheEXT                                        (VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache) const = 0;
+virtual void           destroyValidationCacheEXT                                       (VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult       mergeValidationCachesEXT                                        (VkDevice device, VkValidationCacheEXT dstCache, deUint32 srcCacheCount, const VkValidationCacheEXT* pSrcCaches) const = 0;
+virtual VkResult       getValidationCacheDataEXT                                       (VkDevice device, VkValidationCacheEXT validationCache, deUintptr* pDataSize, void* pData) const = 0;
+virtual VkResult       getAndroidHardwareBufferPropertiesANDROID       (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const = 0;
+virtual VkResult       getMemoryAndroidHardwareBufferANDROID           (VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const = 0;
index 76aeff9..866c085 100644 (file)
@@ -64,4 +64,3 @@ virtual VkResult                      getPhysicalDeviceSurfaceCapabilities2EXT                        (VkPhysicalDevice
 virtual VkResult                       createIOSSurfaceMVK                                                                     (VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
 virtual VkResult                       createMacOSSurfaceMVK                                                           (VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface) const = 0;
 virtual void                           getPhysicalDeviceMultisamplePropertiesEXT                       (VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties) const = 0;
-virtual void                           getPhysicalDeviceAndroidHardwareBufferUsageANDROID      (VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage) const = 0;
index beee0ea..3c26035 100644 (file)
@@ -131,6 +131,8 @@ void writeHostMemory (const vk::DeviceInterface&    vkd,
 
        deMemcpy(ptr, data, size);
 
+       flushMappedMemoryRange(vkd, device, memory, 0, size);
+
        vkd.unmapMemory(device, memory);
 }
 
@@ -142,6 +144,8 @@ void checkHostMemory (const vk::DeviceInterface&    vkd,
 {
        void* const ptr = vk::mapMemory(vkd, device, memory, 0, size, 0);
 
+       invalidateMappedMemoryRange(vkd, device, memory, 0, size);
+
        if (deMemCmp(ptr, data, size) != 0)
                TCU_FAIL("Memory contents don't match");
 
@@ -284,6 +288,12 @@ vk::Move<vk::VkDevice> createDevice (const deUint32                                                                        apiVersion,
                deviceExtensions.push_back("VK_KHR_external_memory_win32");
        }
 
+       if ((externalMemoryTypes
+                       & vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID) != 0)
+       {
+               deviceExtensions.push_back("VK_ANDROID_external_memory_android_hardware_buffer");
+       }
+
        const float                                                             priority                                = 0.5f;
        const vk::VkDeviceQueueCreateInfo               queues[]                                =
        {
@@ -3937,6 +3947,7 @@ de::MovePtr<tcu::TestCaseGroup> createMemoryTests (tcu::TestContext& testCtx)
        group->addChild(createMemoryTests(testCtx, vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT).release());
        group->addChild(createMemoryTests(testCtx, vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT).release());
        group->addChild(createMemoryTests(testCtx, vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT).release());
+       group->addChild(createMemoryTests(testCtx, vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID).release());
 
        return group;
 }
index 0929aa5..ee3ef1c 100644 (file)
 #      include <windows.h>
 #endif
 
+#if (DE_OS == DE_OS_ANDROID) && defined(__ANDROID_API_O__) && (DE_ANDROID_API >= __ANDROID_API_O__)
+#      include <android/hardware_buffer.h>
+#      define USE_ANDROID_O_HARDWARE_BUFFER 1
+#endif
+
 namespace vkt
 {
 namespace ExternalMemoryUtil
@@ -59,21 +64,24 @@ deUint32 chooseMemoryType (deUint32 bits)
 } // anonymous
 
 NativeHandle::NativeHandle (void)
-       : m_fd                          (-1)
-       , m_win32HandleType     (WIN32HANDLETYPE_LAST)
-       , m_win32Handle         (DE_NULL)
+       : m_fd                                          (-1)
+       , m_win32HandleType                     (WIN32HANDLETYPE_LAST)
+       , m_win32Handle                         (DE_NULL)
+       , m_androidHardwareBuffer       (DE_NULL)
 {
 }
 
 NativeHandle::NativeHandle (const NativeHandle& other)
-       : m_fd                          (-1)
-       , m_win32HandleType     (WIN32HANDLETYPE_LAST)
-       , m_win32Handle         (DE_NULL)
+       : m_fd                                          (-1)
+       , m_win32HandleType                     (WIN32HANDLETYPE_LAST)
+       , m_win32Handle                         (DE_NULL)
+       , m_androidHardwareBuffer       (DE_NULL)
 {
        if (other.m_fd >= 0)
        {
 #if (DE_OS == DE_OS_ANDROID) || (DE_OS == DE_OS_UNIX)
                DE_ASSERT(!other.m_win32Handle.internal);
+               DE_ASSERT(!other.m_androidHardwareBuffer.internal);
                m_fd = dup(other.m_fd);
                TCU_CHECK(m_fd >= 0);
 #else
@@ -90,6 +98,7 @@ NativeHandle::NativeHandle (const NativeHandle& other)
                        case WIN32HANDLETYPE_NT:
                        {
                                DE_ASSERT(other.m_fd == -1);
+                               DE_ASSERT(!other.m_androidHardwareBuffer.internal);
 
                                const HANDLE process = ::GetCurrentProcess();
                                ::DuplicateHandle(process, other.m_win32Handle.internal, process, &m_win32Handle.internal, 0, TRUE, DUPLICATE_SAME_ACCESS);
@@ -110,21 +119,40 @@ NativeHandle::NativeHandle (const NativeHandle& other)
                DE_FATAL("Platform doesn't support win32 handles");
 #endif
        }
+#if defined(USE_ANDROID_O_HARDWARE_BUFFER)
+       else if (other.m_androidHardwareBuffer.internal)
+       {
+               DE_ASSERT(other.m_fd == -1);
+               DE_ASSERT(!other.m_win32Handle.internal);
+               m_androidHardwareBuffer = other.m_androidHardwareBuffer;
+               AHardwareBuffer_acquire((AHardwareBuffer*)m_androidHardwareBuffer.internal);
+       }
+#endif
        else
                DE_FATAL("Native handle can't be duplicated");
 }
 
 NativeHandle::NativeHandle (int fd)
-       : m_fd                          (fd)
-       , m_win32HandleType     (WIN32HANDLETYPE_LAST)
-       , m_win32Handle         (DE_NULL)
+       : m_fd                                          (fd)
+       , m_win32HandleType                     (WIN32HANDLETYPE_LAST)
+       , m_win32Handle                         (DE_NULL)
+       , m_androidHardwareBuffer       (DE_NULL)
 {
 }
 
 NativeHandle::NativeHandle (Win32HandleType handleType, vk::pt::Win32Handle handle)
-       : m_fd                          (-1)
-       , m_win32HandleType     (handleType)
-       , m_win32Handle         (handle)
+       : m_fd                                          (-1)
+       , m_win32HandleType                     (handleType)
+       , m_win32Handle                         (handle)
+       , m_androidHardwareBuffer       (DE_NULL)
+{
+}
+
+NativeHandle::NativeHandle (vk::pt::AndroidHardwareBufferPtr buffer)
+       : m_fd                                          (-1)
+       , m_win32HandleType                     (WIN32HANDLETYPE_LAST)
+       , m_win32Handle                         (DE_NULL)
+       , m_androidHardwareBuffer       (buffer)
 {
 }
 
@@ -139,6 +167,7 @@ void NativeHandle::reset (void)
        {
 #if (DE_OS == DE_OS_ANDROID) || (DE_OS == DE_OS_UNIX)
                DE_ASSERT(!m_win32Handle.internal);
+               DE_ASSERT(!m_androidHardwareBuffer.internal);
                ::close(m_fd);
 #else
                DE_FATAL("Platform doesn't support file descriptors");
@@ -152,6 +181,7 @@ void NativeHandle::reset (void)
                {
                        case WIN32HANDLETYPE_NT:
                                DE_ASSERT(m_fd == -1);
+                               DE_ASSERT(!m_androidHardwareBuffer.internal);
                                ::CloseHandle((HANDLE)m_win32Handle.internal);
                                break;
 
@@ -166,9 +196,19 @@ void NativeHandle::reset (void)
 #endif
        }
 
-       m_fd                            = -1;
-       m_win32Handle           = vk::pt::Win32Handle(DE_NULL);
-       m_win32HandleType       = WIN32HANDLETYPE_LAST;
+#if defined(USE_ANDROID_O_HARDWARE_BUFFER)
+       if (m_androidHardwareBuffer.internal)
+       {
+               DE_ASSERT(m_fd == -1);
+               DE_ASSERT(!m_win32Handle.internal);
+               AHardwareBuffer_release((AHardwareBuffer*)m_androidHardwareBuffer.internal);
+       }
+#endif
+
+       m_fd                                    = -1;
+       m_win32Handle                   = vk::pt::Win32Handle(DE_NULL);
+       m_win32HandleType               = WIN32HANDLETYPE_LAST;
+       m_androidHardwareBuffer = vk::pt::AndroidHardwareBufferPtr(DE_NULL);
 }
 
 NativeHandle& NativeHandle::operator= (int fd)
@@ -180,6 +220,15 @@ NativeHandle& NativeHandle::operator= (int fd)
        return *this;
 }
 
+NativeHandle& NativeHandle::operator= (vk::pt::AndroidHardwareBufferPtr buffer)
+{
+       reset();
+
+       m_androidHardwareBuffer = buffer;
+
+       return *this;
+}
+
 void NativeHandle::setWin32Handle (Win32HandleType type, vk::pt::Win32Handle handle)
 {
        reset();
@@ -192,21 +241,31 @@ void NativeHandle::disown (void)
 {
        m_fd = -1;
        m_win32Handle = vk::pt::Win32Handle(DE_NULL);
+       m_androidHardwareBuffer = vk::pt::AndroidHardwareBufferPtr(DE_NULL);
 }
 
 vk::pt::Win32Handle NativeHandle::getWin32Handle (void) const
 {
        DE_ASSERT(m_fd == -1);
+       DE_ASSERT(!m_androidHardwareBuffer.internal);
        return m_win32Handle;
 }
 
 int NativeHandle::getFd (void) const
 {
        DE_ASSERT(!m_win32Handle.internal);
-
+       DE_ASSERT(!m_androidHardwareBuffer.internal);
        return m_fd;
 }
 
+
+vk::pt::AndroidHardwareBufferPtr NativeHandle::getAndroidHardwareBuffer (void) const
+{
+       DE_ASSERT(m_fd == -1);
+       DE_ASSERT(!m_win32Handle.internal);
+       return m_androidHardwareBuffer;
+}
+
 const char* externalSemaphoreTypeToName (vk::VkExternalSemaphoreHandleTypeFlagBits type)
 {
        switch (type)
@@ -279,6 +338,9 @@ const char* externalMemoryTypeToName (vk::VkExternalMemoryHandleTypeFlagBits typ
                case vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT:
                        return "d3d12_resource";
 
+               case vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID:
+                       return "android_hardware_buffer";
+
                default:
                        DE_FATAL("Unknown external memory type");
                        return DE_NULL;
@@ -436,11 +498,26 @@ void getMemoryNative (const vk::DeviceInterface&                                  vkd,
                                break;
 
                        default:
-                               DE_FATAL("Unknow external memory handle type");
+                               DE_FATAL("Unknown external memory handle type");
                }
        }
+       else if (externalType == vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID)
+       {
+               const vk::VkMemoryGetAndroidHardwareBufferInfoANDROID   info    =
+               {
+                       vk::VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
+                       DE_NULL,
+
+                       memory,
+               };
+               vk::pt::AndroidHardwareBufferPtr                                                ahb     (DE_NULL);
+
+               VK_CHECK(vkd.getMemoryAndroidHardwareBufferANDROID(device, &info, &ahb));
+               TCU_CHECK(ahb.internal);
+               nativeHandle = ahb;
+       }
        else
-               DE_FATAL("Unknow external memory handle type");
+               DE_FATAL("Unknown external memory handle type");
 }
 
 vk::Move<vk::VkFence> createExportableFence (const vk::DeviceInterface&                                        vkd,
@@ -937,6 +1014,41 @@ static vk::Move<vk::VkDeviceMemory> importMemory (const vk::DeviceInterface&
 
                return memory;
        }
+#if defined(USE_ANDROID_O_HARDWARE_BUFFER)
+       else if (externalType == vk::VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID)
+       {
+               AHardwareBuffer_Desc desc;
+               AHardwareBuffer_describe(static_cast<const AHardwareBuffer*>(handle.getAndroidHardwareBuffer().internal), &desc);
+
+               DE_ASSERT(desc.format == AHARDWAREBUFFER_FORMAT_BLOB || image != 0);
+
+               vk::VkImportAndroidHardwareBufferInfoANDROID    importInfo =
+               {
+                       vk::VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
+                       DE_NULL,
+                       handle.getAndroidHardwareBuffer()
+               };
+               const vk::VkMemoryDedicatedAllocateInfo         dedicatedInfo =
+               {
+                       vk::VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR,
+                       &importInfo,
+                       image,
+                       buffer,
+               };
+               const vk::VkMemoryAllocateInfo                                  info =
+               {
+                       vk::VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
+                       (isDedicated ? (const void*)&dedicatedInfo : (const void*)&importInfo),
+                       requirements.size,
+                       (memoryTypeIndex == ~0U) ? chooseMemoryType(requirements.memoryTypeBits)  : memoryTypeIndex
+               };
+               vk::Move<vk::VkDeviceMemory> memory (vk::allocateMemory(vkd, device, &info));
+
+               handle.disown();
+
+               return memory;
+       }
+#endif // (USE_ANDROID_O_HARDWARE_BUFFER)
        else
        {
                DE_FATAL("Unknown external memory type");
index cb7f655..96b159a 100644 (file)
@@ -42,28 +42,32 @@ public:
                WIN32HANDLETYPE_LAST
        };
 
-                                               NativeHandle    (void);
-                                               NativeHandle    (const NativeHandle& other);
-                                               NativeHandle    (int fd);
-                                               NativeHandle    (Win32HandleType type, vk::pt::Win32Handle handle);
-                                               ~NativeHandle   (void);
+                                                                               NativeHandle                            (void);
+                                                                               NativeHandle                            (const NativeHandle& other);
+                                                                               NativeHandle                            (int fd);
+                                                                               NativeHandle                            (Win32HandleType type, vk::pt::Win32Handle handle);
+                                                                               NativeHandle                            (vk::pt::AndroidHardwareBufferPtr buffer);
+                                                                               ~NativeHandle                           (void);
 
-       NativeHandle&           operator=               (int fd);
+       NativeHandle&                                           operator=                                       (int fd);
+       NativeHandle&                                           operator=                                       (vk::pt::AndroidHardwareBufferPtr buffer);
 
-       void                            setWin32Handle  (Win32HandleType type, vk::pt::Win32Handle handle);
+       void                                                            setWin32Handle                          (Win32HandleType type, vk::pt::Win32Handle handle);
 
-       vk::pt::Win32Handle     getWin32Handle  (void) const;
-       int                                     getFd                   (void) const;
-       void                            disown                  (void);
-       void                            reset                   (void);
+       vk::pt::Win32Handle                                     getWin32Handle                          (void) const;
+       int                                                                     getFd                                           (void) const;
+       vk::pt::AndroidHardwareBufferPtr        getAndroidHardwareBuffer        (void) const;
+       void                                                            disown                                          (void);
+       void                                                            reset                                           (void);
 
 private:
-       int                                     m_fd;
-       Win32HandleType         m_win32HandleType;
-       vk::pt::Win32Handle     m_win32Handle;
+       int                                                                     m_fd;
+       Win32HandleType                                         m_win32HandleType;
+       vk::pt::Win32Handle                                     m_win32Handle;
+       vk::pt::AndroidHardwareBufferPtr        m_androidHardwareBuffer;
 
        // Disabled
-       NativeHandle&           operator=               (const NativeHandle&);
+       NativeHandle&                                           operator=                                       (const NativeHandle&);
 };
 
 const char*                                            externalSemaphoreTypeToName     (vk::VkExternalSemaphoreHandleTypeFlagBits      type);
index be97abd..5a56a12 100644 (file)
@@ -71333,6 +71333,30 @@ dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.info
 dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.bind_export_import_bind
 dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.export_bind_import_bind
 dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.device_only.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.device_only.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.host_visible.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.host_visible.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.info
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.info
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.device_only.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.device_only.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.host_visible.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.host_visible.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.info
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.info
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.export_import_bind_bind
 dEQP-VK.api.external.fence.sync_fd.info
 dEQP-VK.api.external.fence.sync_fd.import_twice_temporary
 dEQP-VK.api.external.fence.sync_fd.reimport_temporary
index a1994bf..ee7eb4d 100755 (executable)
@@ -71333,6 +71333,30 @@ dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.info
 dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.bind_export_import_bind
 dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.export_bind_import_bind
 dEQP-VK.api.external.memory.opaque_win32_kmt.dedicated.image.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.device_only.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.device_only.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.host_visible.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.host_visible.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.info
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.buffer.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.info
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.suballocated.image.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.device_only.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.device_only.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.host_visible.import_twice
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.host_visible.import_multiple_times
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.info
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.buffer.export_import_bind_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.info
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.bind_export_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.export_bind_import_bind
+dEQP-VK.api.external.memory.android_hardware_buffer.dedicated.image.export_import_bind_bind
 dEQP-VK.api.external.fence.sync_fd.info
 dEQP-VK.api.external.fence.sync_fd.import_twice_temporary
 dEQP-VK.api.external.fence.sync_fd.reimport_temporary
index 89e6b33..92e48a5 100644 (file)
@@ -209,13 +209,6 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
-    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129000,
-    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129001,
-    VK_STRUCTURE_TYPE_MEMORY_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129002,
-    VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
-    VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
-    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_EXTERNAL_FORMAT_PROPERTIES_ANDROID = 1000129005,
-    VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129006,
     VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
     VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
     VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
@@ -358,6 +351,12 @@ typedef enum VkStructureType {
     VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
     VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
     VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
+    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
+    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
+    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
+    VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
+    VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
+    VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
     VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
     VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
@@ -3622,7 +3621,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits {
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
-    VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000080,
+    VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
     VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkExternalMemoryHandleTypeFlagBits;
 typedef VkFlags VkExternalMemoryHandleTypeFlags;
@@ -7424,35 +7423,39 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
 
 #define VK_ANDROID_external_memory_android_hardware_buffer 1
-#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 1
+#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 2
+struct AHardwareBuffer;
 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
 
-typedef struct VkPhysicalDeviceAndroidHardwareBufferInfoANDROID {
-    VkStructureType       sType;
-    void*                 pNext;
-    VkFormat              format;
-    VkImageTiling         tiling;
-    VkImageUsageFlags     imageUsage;
-    VkImageCreateFlags    imageFlags;
-} VkPhysicalDeviceAndroidHardwareBufferInfoANDROID;
-
 typedef struct VkAndroidHardwareBufferUsageANDROID {
     VkStructureType    sType;
     void*              pNext;
     uint64_t           androidHardwareBufferUsage;
 } VkAndroidHardwareBufferUsageANDROID;
 
-typedef struct VkMemoryAndroidHardwareBufferPropertiesANDROID {
+typedef struct VkAndroidHardwareBufferPropertiesANDROID {
     VkStructureType    sType;
     void*              pNext;
     VkDeviceSize       allocationSize;
     uint32_t           memoryTypeBits;
-} VkMemoryAndroidHardwareBufferPropertiesANDROID;
+} VkAndroidHardwareBufferPropertiesANDROID;
+
+typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
+    VkStructureType                  sType;
+    void*                            pNext;
+    VkFormat                         format;
+    uint64_t                         externalFormat;
+    VkFormatFeatureFlags             formatFeatures;
+    VkSamplerYcbcrModelConversion    suggestedYcbcrModel;
+    VkSamplerYcbcrRange              suggestedYcbcrRange;
+    VkChromaLocation                 suggestedXChromaOffset;
+    VkChromaLocation                 suggestedYChromaOffset;
+} VkAndroidHardwareBufferFormatPropertiesANDROID;
 
 typedef struct VkImportAndroidHardwareBufferInfoANDROID {
-    VkStructureType     sType;
-    const void*         pNext;
-    AHardwareBuffer*    buffer;
+    VkStructureType            sType;
+    const void*                pNext;
+    struct AHardwareBuffer*    buffer;
 } VkImportAndroidHardwareBufferInfoANDROID;
 
 typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
@@ -7461,46 +7464,26 @@ typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
     VkDeviceMemory     memory;
 } VkMemoryGetAndroidHardwareBufferInfoANDROID;
 
-typedef struct VkAndroidHardwareBufferExternalFormatPropertiesANDROID {
-    VkStructureType                     sType;
-    void*                               pNext;
-    uint32_t                            externalFormat;
-    VkFormatFeatureFlags                formatFeatures;
-    VkSamplerYcbcrModelConversion       suggestedYcbcrModel;
-    VkSamplerYcbcrRange                 suggestedYcbcrRange;
-    VkChromaLocation                    suggestedXChromaOffset;
-    VkChromaLocation                    suggestedYChromaOffset;
-} VkAndroidHardwareBufferExternalFormatPropertiesANDROID;
-
-typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
-typedef VkSamplerYcbcrRange           VkSamplerYcbcrRangeKHR;
-typedef VkChromaLocation              VkChromaLocationKHR;
-
 typedef struct VkExternalFormatANDROID {
     VkStructureType    sType;
     void*              pNext;
-    uint32_t           externalFormat;
+    uint64_t           externalFormat;
 } VkExternalFormatANDROID;
 
-typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceAndroidHardwareBufferUsageANDROID)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo, VkAndroidHardwareBufferUsageANDROID* pUsage);
-typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const AHardwareBuffer* buffer, VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties);
-typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, AHardwareBuffer** pBuffer);
 
-#ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceAndroidHardwareBufferUsageANDROID(
-    VkPhysicalDevice                            physicalDevice,
-    const VkPhysicalDeviceAndroidHardwareBufferInfoANDROID* pInfo,
-    VkAndroidHardwareBufferUsageANDROID*        pUsage);
+typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
+typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
 
-VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferPropertiesANDROID(
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID(
     VkDevice                                    device,
-    const AHardwareBuffer*                      buffer,
-    VkMemoryAndroidHardwareBufferPropertiesANDROID* pProperties);
+    const struct AHardwareBuffer*               buffer,
+    VkAndroidHardwareBufferPropertiesANDROID*   pProperties);
 
 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID(
     VkDevice                                    device,
     const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
-    AHardwareBuffer**                           pBuffer);
+    struct AHardwareBuffer**                    pBuffer);
 #endif
 
 #ifdef __cplusplus