blob: b936022d15fb777e0c1c328c95aaeec51e311713 [file] [log] [blame]
/*
* Copyright 2015, The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* THIS FILE WAS GENERATED BY apic. DO NOT EDIT.
*/
#ifndef GAPII_VULKAN_IMPORTS_H
#define GAPII_VULKAN_IMPORTS_H
#include "vulkan_types.h"
#include "vulkan_extras.h"
#include <gapic/target.h> // STDCALL
namespace gapii {
struct VulkanImports {
VulkanImports();
void resolve();
typedef uint32_t (VKAPI_PTR *PFNVKCREATEANDROIDSURFACEKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
typedef uint32_t (VKAPI_PTR *PFNVKGETSWAPCHAINGRALLOCUSAGEANDROID)(VkDevice device, uint32_t format, VkImageUsageFlags imageUsage, int* grallocUsage);
typedef uint32_t (VKAPI_PTR *PFNVKACQUIREIMAGEANDROID)(VkDevice device, VkImage image, int nativeFenceFd, VkSemaphore semaphore, VkFence fence);
typedef uint32_t (VKAPI_PTR *PFNVKQUEUESIGNALRELEASEIMAGEANDROID)(VkQueue queue, uint32_t waitSemaphoreCount, const VkSemaphore* pWaitSemaphores, VkImage image, int* pNativeFenceFd);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEINSTANCE)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
typedef void (VKAPI_PTR *PFNVKDESTROYINSTANCE)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKENUMERATEPHYSICALDEVICES)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
typedef void (VKAPI_PTR *PFNVKGETPHYSICALDEVICEFEATURES)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
typedef void (VKAPI_PTR *PFNVKGETPHYSICALDEVICEFORMATPROPERTIES)(VkPhysicalDevice physicalDevice, uint32_t format, VkFormatProperties* pFormatProperties);
typedef uint32_t (VKAPI_PTR *PFNVKGETPHYSICALDEVICEIMAGEFORMATPROPERTIES)(VkPhysicalDevice physicalDevice, uint32_t format, uint32_t type, uint32_t tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
typedef void (VKAPI_PTR *PFNVKGETPHYSICALDEVICEPROPERTIES)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
typedef void (VKAPI_PTR *PFNVKGETPHYSICALDEVICEQUEUEFAMILYPROPERTIES)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
typedef void (VKAPI_PTR *PFNVKGETPHYSICALDEVICEMEMORYPROPERTIES)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
typedef PFN_vkVoidFunction (VKAPI_PTR *PFNVKGETINSTANCEPROCADDR)(VkInstance instance, const char* pName);
typedef PFN_vkVoidFunction (VKAPI_PTR *PFNVKGETDEVICEPROCADDR)(VkDevice device, const char* pName);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEDEVICE)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
typedef void (VKAPI_PTR *PFNVKDESTROYDEVICE)(VkDevice device, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKENUMERATEINSTANCEEXTENSIONPROPERTIES)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
typedef uint32_t (VKAPI_PTR *PFNVKENUMERATEDEVICEEXTENSIONPROPERTIES)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
typedef uint32_t (VKAPI_PTR *PFNVKENUMERATEINSTANCELAYERPROPERTIES)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
typedef uint32_t (VKAPI_PTR *PFNVKENUMERATEDEVICELAYERPROPERTIES)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
typedef void (VKAPI_PTR *PFNVKGETDEVICEQUEUE)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
typedef uint32_t (VKAPI_PTR *PFNVKQUEUESUBMIT)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
typedef uint32_t (VKAPI_PTR *PFNVKQUEUEWAITIDLE)(VkQueue queue);
typedef uint32_t (VKAPI_PTR *PFNVKDEVICEWAITIDLE)(VkDevice device);
typedef uint32_t (VKAPI_PTR *PFNVKALLOCATEMEMORY)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
typedef void (VKAPI_PTR *PFNVKFREEMEMORY)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKMAPMEMORY)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
typedef void (VKAPI_PTR *PFNVKUNMAPMEMORY)(VkDevice device, VkDeviceMemory memory);
typedef uint32_t (VKAPI_PTR *PFNVKFLUSHMAPPEDMEMORYRANGES)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
typedef uint32_t (VKAPI_PTR *PFNVKINVALIDATEMAPPEDMEMORYRANGES)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
typedef void (VKAPI_PTR *PFNVKGETDEVICEMEMORYCOMMITMENT)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
typedef uint32_t (VKAPI_PTR *PFNVKBINDBUFFERMEMORY)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
typedef uint32_t (VKAPI_PTR *PFNVKBINDIMAGEMEMORY)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
typedef void (VKAPI_PTR *PFNVKGETBUFFERMEMORYREQUIREMENTS)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
typedef void (VKAPI_PTR *PFNVKGETIMAGEMEMORYREQUIREMENTS)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
typedef void (VKAPI_PTR *PFNVKGETIMAGESPARSEMEMORYREQUIREMENTS)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
typedef void (VKAPI_PTR *PFNVKGETPHYSICALDEVICESPARSEIMAGEFORMATPROPERTIES)(VkPhysicalDevice physicalDevice, uint32_t format, uint32_t type, uint32_t samples, VkImageUsageFlags usage, uint32_t tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
typedef uint32_t (VKAPI_PTR *PFNVKQUEUEBINDSPARSE)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEFENCE)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
typedef void (VKAPI_PTR *PFNVKDESTROYFENCE)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKRESETFENCES)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
typedef uint32_t (VKAPI_PTR *PFNVKGETFENCESTATUS)(VkDevice device, VkFence fence);
typedef uint32_t (VKAPI_PTR *PFNVKWAITFORFENCES)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
typedef uint32_t (VKAPI_PTR *PFNVKCREATESEMAPHORE)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
typedef void (VKAPI_PTR *PFNVKDESTROYSEMAPHORE)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEEVENT)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
typedef void (VKAPI_PTR *PFNVKDESTROYEVENT)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKGETEVENTSTATUS)(VkDevice device, VkEvent event);
typedef uint32_t (VKAPI_PTR *PFNVKSETEVENT)(VkDevice device, VkEvent event);
typedef uint32_t (VKAPI_PTR *PFNVKRESETEVENT)(VkDevice device, VkEvent event);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEQUERYPOOL)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
typedef void (VKAPI_PTR *PFNVKDESTROYQUERYPOOL)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKGETQUERYPOOLRESULTS)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEBUFFER)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
typedef void (VKAPI_PTR *PFNVKDESTROYBUFFER)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEBUFFERVIEW)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
typedef void (VKAPI_PTR *PFNVKDESTROYBUFFERVIEW)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEIMAGE)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
typedef void (VKAPI_PTR *PFNVKDESTROYIMAGE)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
typedef void (VKAPI_PTR *PFNVKGETIMAGESUBRESOURCELAYOUT)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEIMAGEVIEW)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
typedef void (VKAPI_PTR *PFNVKDESTROYIMAGEVIEW)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATESHADERMODULE)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
typedef void (VKAPI_PTR *PFNVKDESTROYSHADERMODULE)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEPIPELINECACHE)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
typedef void (VKAPI_PTR *PFNVKDESTROYPIPELINECACHE)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKGETPIPELINECACHEDATA)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
typedef uint32_t (VKAPI_PTR *PFNVKMERGEPIPELINECACHES)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEGRAPHICSPIPELINES)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
typedef uint32_t (VKAPI_PTR *PFNVKCREATECOMPUTEPIPELINES)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
typedef void (VKAPI_PTR *PFNVKDESTROYPIPELINE)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEPIPELINELAYOUT)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
typedef void (VKAPI_PTR *PFNVKDESTROYPIPELINELAYOUT)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATESAMPLER)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
typedef void (VKAPI_PTR *PFNVKDESTROYSAMPLER)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEDESCRIPTORSETLAYOUT)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
typedef void (VKAPI_PTR *PFNVKDESTROYDESCRIPTORSETLAYOUT)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEDESCRIPTORPOOL)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
typedef void (VKAPI_PTR *PFNVKDESTROYDESCRIPTORPOOL)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKRESETDESCRIPTORPOOL)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
typedef uint32_t (VKAPI_PTR *PFNVKALLOCATEDESCRIPTORSETS)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
typedef uint32_t (VKAPI_PTR *PFNVKFREEDESCRIPTORSETS)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
typedef void (VKAPI_PTR *PFNVKUPDATEDESCRIPTORSETS)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEFRAMEBUFFER)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
typedef void (VKAPI_PTR *PFNVKDESTROYFRAMEBUFFER)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKCREATERENDERPASS)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
typedef void (VKAPI_PTR *PFNVKDESTROYRENDERPASS)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
typedef void (VKAPI_PTR *PFNVKGETRENDERAREAGRANULARITY)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
typedef uint32_t (VKAPI_PTR *PFNVKCREATECOMMANDPOOL)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
typedef void (VKAPI_PTR *PFNVKDESTROYCOMMANDPOOL)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKRESETCOMMANDPOOL)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
typedef uint32_t (VKAPI_PTR *PFNVKALLOCATECOMMANDBUFFERS)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
typedef void (VKAPI_PTR *PFNVKFREECOMMANDBUFFERS)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
typedef uint32_t (VKAPI_PTR *PFNVKBEGINCOMMANDBUFFER)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
typedef uint32_t (VKAPI_PTR *PFNVKENDCOMMANDBUFFER)(VkCommandBuffer commandBuffer);
typedef uint32_t (VKAPI_PTR *PFNVKRESETCOMMANDBUFFER)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
typedef void (VKAPI_PTR *PFNVKCMDBINDPIPELINE)(VkCommandBuffer commandBuffer, uint32_t pipelineBindPoint, VkPipeline pipeline);
typedef void (VKAPI_PTR *PFNVKCMDSETVIEWPORT)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
typedef void (VKAPI_PTR *PFNVKCMDSETSCISSOR)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
typedef void (VKAPI_PTR *PFNVKCMDSETLINEWIDTH)(VkCommandBuffer commandBuffer, float lineWidth);
typedef void (VKAPI_PTR *PFNVKCMDSETDEPTHBIAS)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
typedef void (VKAPI_PTR *PFNVKCMDSETBLENDCONSTANTS)(VkCommandBuffer commandBuffer, gapic::StaticArray<float, 4> blendConstants);
typedef void (VKAPI_PTR *PFNVKCMDSETDEPTHBOUNDS)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
typedef void (VKAPI_PTR *PFNVKCMDSETSTENCILCOMPAREMASK)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
typedef void (VKAPI_PTR *PFNVKCMDSETSTENCILWRITEMASK)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
typedef void (VKAPI_PTR *PFNVKCMDSETSTENCILREFERENCE)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
typedef void (VKAPI_PTR *PFNVKCMDBINDDESCRIPTORSETS)(VkCommandBuffer commandBuffer, uint32_t pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
typedef void (VKAPI_PTR *PFNVKCMDBINDINDEXBUFFER)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t indexType);
typedef void (VKAPI_PTR *PFNVKCMDBINDVERTEXBUFFERS)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
typedef void (VKAPI_PTR *PFNVKCMDDRAW)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
typedef void (VKAPI_PTR *PFNVKCMDDRAWINDEXED)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
typedef void (VKAPI_PTR *PFNVKCMDDRAWINDIRECT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
typedef void (VKAPI_PTR *PFNVKCMDDRAWINDEXEDINDIRECT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
typedef void (VKAPI_PTR *PFNVKCMDDISPATCH)(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z);
typedef void (VKAPI_PTR *PFNVKCMDDISPATCHINDIRECT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
typedef void (VKAPI_PTR *PFNVKCMDCOPYBUFFER)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
typedef void (VKAPI_PTR *PFNVKCMDCOPYIMAGE)(VkCommandBuffer commandBuffer, VkImage srcImage, uint32_t srcImageLayout, VkImage dstImage, uint32_t dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
typedef void (VKAPI_PTR *PFNVKCMDBLITIMAGE)(VkCommandBuffer commandBuffer, VkImage srcImage, uint32_t srcImageLayout, VkImage dstImage, uint32_t dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, uint32_t filter);
typedef void (VKAPI_PTR *PFNVKCMDCOPYBUFFERTOIMAGE)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, uint32_t dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
typedef void (VKAPI_PTR *PFNVKCMDCOPYIMAGETOBUFFER)(VkCommandBuffer commandBuffer, VkImage srcImage, uint32_t srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
typedef void (VKAPI_PTR *PFNVKCMDUPDATEBUFFER)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const uint32_t* pData);
typedef void (VKAPI_PTR *PFNVKCMDFILLBUFFER)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
typedef void (VKAPI_PTR *PFNVKCMDCLEARCOLORIMAGE)(VkCommandBuffer commandBuffer, VkImage image, uint32_t imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
typedef void (VKAPI_PTR *PFNVKCMDCLEARDEPTHSTENCILIMAGE)(VkCommandBuffer commandBuffer, VkImage image, uint32_t imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
typedef void (VKAPI_PTR *PFNVKCMDCLEARATTACHMENTS)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
typedef void (VKAPI_PTR *PFNVKCMDRESOLVEIMAGE)(VkCommandBuffer commandBuffer, VkImage srcImage, uint32_t srcImageLayout, VkImage dstImage, uint32_t dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
typedef void (VKAPI_PTR *PFNVKCMDSETEVENT)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
typedef void (VKAPI_PTR *PFNVKCMDRESETEVENT)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
typedef void (VKAPI_PTR *PFNVKCMDWAITEVENTS)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
typedef void (VKAPI_PTR *PFNVKCMDPIPELINEBARRIER)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
typedef void (VKAPI_PTR *PFNVKCMDBEGINQUERY)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
typedef void (VKAPI_PTR *PFNVKCMDENDQUERY)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
typedef void (VKAPI_PTR *PFNVKCMDRESETQUERYPOOL)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
typedef void (VKAPI_PTR *PFNVKCMDWRITETIMESTAMP)(VkCommandBuffer commandBuffer, uint32_t pipelineStage, VkQueryPool queryPool, uint32_t query);
typedef void (VKAPI_PTR *PFNVKCMDCOPYQUERYPOOLRESULTS)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
typedef void (VKAPI_PTR *PFNVKCMDPUSHCONSTANTS)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
typedef void (VKAPI_PTR *PFNVKCMDBEGINRENDERPASS)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, uint32_t contents);
typedef void (VKAPI_PTR *PFNVKCMDNEXTSUBPASS)(VkCommandBuffer commandBuffer, uint32_t contents);
typedef void (VKAPI_PTR *PFNVKCMDENDRENDERPASS)(VkCommandBuffer commandBuffer);
typedef void (VKAPI_PTR *PFNVKCMDEXECUTECOMMANDS)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
typedef void (VKAPI_PTR *PFNVKDESTROYSURFACEKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKGETPHYSICALDEVICESURFACESUPPORTKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
typedef uint32_t (VKAPI_PTR *PFNVKGETPHYSICALDEVICESURFACECAPABILITIESKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
typedef uint32_t (VKAPI_PTR *PFNVKGETPHYSICALDEVICESURFACEFORMATSKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
typedef uint32_t (VKAPI_PTR *PFNVKGETPHYSICALDEVICESURFACEPRESENTMODESKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, uint32_t* pPresentModes);
typedef uint32_t (VKAPI_PTR *PFNVKCREATESWAPCHAINKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
typedef void (VKAPI_PTR *PFNVKDESTROYSWAPCHAINKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
typedef uint32_t (VKAPI_PTR *PFNVKGETSWAPCHAINIMAGESKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
typedef uint32_t (VKAPI_PTR *PFNVKACQUIRENEXTIMAGEKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
typedef uint32_t (VKAPI_PTR *PFNVKQUEUEPRESENTKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
typedef uint32_t (VKAPI_PTR *PFNVKGETPHYSICALDEVICEDISPLAYPROPERTIESKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
typedef uint32_t (VKAPI_PTR *PFNVKGETPHYSICALDEVICEDISPLAYPLANEPROPERTIESKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
typedef uint32_t (VKAPI_PTR *PFNVKGETDISPLAYPLANESUPPORTEDDISPLAYSKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
typedef uint32_t (VKAPI_PTR *PFNVKGETDISPLAYMODEPROPERTIESKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEDISPLAYMODEKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
typedef uint32_t (VKAPI_PTR *PFNVKGETDISPLAYPLANECAPABILITIESKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEDISPLAYPLANESURFACEKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
typedef uint32_t (VKAPI_PTR *PFNVKCREATESHAREDSWAPCHAINSKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
typedef uint32_t (VKAPI_PTR *PFNVKCREATEDEBUGREPORTCALLBACKEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
typedef void (VKAPI_PTR *PFNVKDESTROYDEBUGREPORTCALLBACKEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
typedef void (VKAPI_PTR *PFNVKDEBUGREPORTMESSAGEEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, uint32_t objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
struct InstanceFunctions {
std::vector<VkPhysicalDevice> mPhysicalDevices;
PFNVKENUMERATEINSTANCEEXTENSIONPROPERTIES vkEnumerateInstanceExtensionProperties;
PFNVKCREATEANDROIDSURFACEKHR vkCreateAndroidSurfaceKHR;
PFNVKCREATEINSTANCE vkCreateInstance;
PFNVKDESTROYINSTANCE vkDestroyInstance;
PFNVKENUMERATEPHYSICALDEVICES vkEnumeratePhysicalDevices;
PFNVKGETPHYSICALDEVICEFEATURES vkGetPhysicalDeviceFeatures;
PFNVKGETPHYSICALDEVICEFORMATPROPERTIES vkGetPhysicalDeviceFormatProperties;
PFNVKGETPHYSICALDEVICEIMAGEFORMATPROPERTIES vkGetPhysicalDeviceImageFormatProperties;
PFNVKGETPHYSICALDEVICEPROPERTIES vkGetPhysicalDeviceProperties;
PFNVKGETPHYSICALDEVICEQUEUEFAMILYPROPERTIES vkGetPhysicalDeviceQueueFamilyProperties;
PFNVKGETPHYSICALDEVICEMEMORYPROPERTIES vkGetPhysicalDeviceMemoryProperties;
PFNVKGETINSTANCEPROCADDR vkGetInstanceProcAddr;
PFNVKCREATEDEVICE vkCreateDevice;
PFNVKENUMERATEDEVICEEXTENSIONPROPERTIES vkEnumerateDeviceExtensionProperties;
PFNVKENUMERATEDEVICELAYERPROPERTIES vkEnumerateDeviceLayerProperties;
PFNVKGETPHYSICALDEVICESPARSEIMAGEFORMATPROPERTIES vkGetPhysicalDeviceSparseImageFormatProperties;
PFNVKDESTROYSURFACEKHR vkDestroySurfaceKHR;
PFNVKGETPHYSICALDEVICESURFACESUPPORTKHR vkGetPhysicalDeviceSurfaceSupportKHR;
PFNVKGETPHYSICALDEVICESURFACECAPABILITIESKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
PFNVKGETPHYSICALDEVICESURFACEFORMATSKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
PFNVKGETPHYSICALDEVICESURFACEPRESENTMODESKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
PFNVKGETPHYSICALDEVICEDISPLAYPROPERTIESKHR vkGetPhysicalDeviceDisplayPropertiesKHR;
PFNVKGETPHYSICALDEVICEDISPLAYPLANEPROPERTIESKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
PFNVKGETDISPLAYPLANESUPPORTEDDISPLAYSKHR vkGetDisplayPlaneSupportedDisplaysKHR;
PFNVKGETDISPLAYMODEPROPERTIESKHR vkGetDisplayModePropertiesKHR;
PFNVKCREATEDISPLAYMODEKHR vkCreateDisplayModeKHR;
PFNVKGETDISPLAYPLANECAPABILITIESKHR vkGetDisplayPlaneCapabilitiesKHR;
PFNVKCREATEDISPLAYPLANESURFACEKHR vkCreateDisplayPlaneSurfaceKHR;
PFNVKCREATEDEBUGREPORTCALLBACKEXT vkCreateDebugReportCallbackEXT;
PFNVKDESTROYDEBUGREPORTCALLBACKEXT vkDestroyDebugReportCallbackEXT;
PFNVKDEBUGREPORTMESSAGEEXT vkDebugReportMessageEXT;
};
struct DeviceFunctions {
PFNVKGETSWAPCHAINGRALLOCUSAGEANDROID vkGetSwapchainGrallocUsageANDROID;
PFNVKACQUIREIMAGEANDROID vkAcquireImageANDROID;
PFNVKQUEUESIGNALRELEASEIMAGEANDROID vkQueueSignalReleaseImageANDROID;
PFNVKGETDEVICEPROCADDR vkGetDeviceProcAddr;
PFNVKDESTROYDEVICE vkDestroyDevice;
PFNVKGETDEVICEQUEUE vkGetDeviceQueue;
PFNVKQUEUESUBMIT vkQueueSubmit;
PFNVKQUEUEWAITIDLE vkQueueWaitIdle;
PFNVKDEVICEWAITIDLE vkDeviceWaitIdle;
PFNVKALLOCATEMEMORY vkAllocateMemory;
PFNVKFREEMEMORY vkFreeMemory;
PFNVKMAPMEMORY vkMapMemory;
PFNVKUNMAPMEMORY vkUnmapMemory;
PFNVKFLUSHMAPPEDMEMORYRANGES vkFlushMappedMemoryRanges;
PFNVKINVALIDATEMAPPEDMEMORYRANGES vkInvalidateMappedMemoryRanges;
PFNVKGETDEVICEMEMORYCOMMITMENT vkGetDeviceMemoryCommitment;
PFNVKBINDBUFFERMEMORY vkBindBufferMemory;
PFNVKBINDIMAGEMEMORY vkBindImageMemory;
PFNVKGETBUFFERMEMORYREQUIREMENTS vkGetBufferMemoryRequirements;
PFNVKGETIMAGEMEMORYREQUIREMENTS vkGetImageMemoryRequirements;
PFNVKGETIMAGESPARSEMEMORYREQUIREMENTS vkGetImageSparseMemoryRequirements;
PFNVKQUEUEBINDSPARSE vkQueueBindSparse;
PFNVKCREATEFENCE vkCreateFence;
PFNVKDESTROYFENCE vkDestroyFence;
PFNVKRESETFENCES vkResetFences;
PFNVKGETFENCESTATUS vkGetFenceStatus;
PFNVKWAITFORFENCES vkWaitForFences;
PFNVKCREATESEMAPHORE vkCreateSemaphore;
PFNVKDESTROYSEMAPHORE vkDestroySemaphore;
PFNVKCREATEEVENT vkCreateEvent;
PFNVKDESTROYEVENT vkDestroyEvent;
PFNVKGETEVENTSTATUS vkGetEventStatus;
PFNVKSETEVENT vkSetEvent;
PFNVKRESETEVENT vkResetEvent;
PFNVKCREATEQUERYPOOL vkCreateQueryPool;
PFNVKDESTROYQUERYPOOL vkDestroyQueryPool;
PFNVKGETQUERYPOOLRESULTS vkGetQueryPoolResults;
PFNVKCREATEBUFFER vkCreateBuffer;
PFNVKDESTROYBUFFER vkDestroyBuffer;
PFNVKCREATEBUFFERVIEW vkCreateBufferView;
PFNVKDESTROYBUFFERVIEW vkDestroyBufferView;
PFNVKCREATEIMAGE vkCreateImage;
PFNVKDESTROYIMAGE vkDestroyImage;
PFNVKGETIMAGESUBRESOURCELAYOUT vkGetImageSubresourceLayout;
PFNVKCREATEIMAGEVIEW vkCreateImageView;
PFNVKDESTROYIMAGEVIEW vkDestroyImageView;
PFNVKCREATESHADERMODULE vkCreateShaderModule;
PFNVKDESTROYSHADERMODULE vkDestroyShaderModule;
PFNVKCREATEPIPELINECACHE vkCreatePipelineCache;
PFNVKDESTROYPIPELINECACHE vkDestroyPipelineCache;
PFNVKGETPIPELINECACHEDATA vkGetPipelineCacheData;
PFNVKMERGEPIPELINECACHES vkMergePipelineCaches;
PFNVKCREATEGRAPHICSPIPELINES vkCreateGraphicsPipelines;
PFNVKCREATECOMPUTEPIPELINES vkCreateComputePipelines;
PFNVKDESTROYPIPELINE vkDestroyPipeline;
PFNVKCREATEPIPELINELAYOUT vkCreatePipelineLayout;
PFNVKDESTROYPIPELINELAYOUT vkDestroyPipelineLayout;
PFNVKCREATESAMPLER vkCreateSampler;
PFNVKDESTROYSAMPLER vkDestroySampler;
PFNVKCREATEDESCRIPTORSETLAYOUT vkCreateDescriptorSetLayout;
PFNVKDESTROYDESCRIPTORSETLAYOUT vkDestroyDescriptorSetLayout;
PFNVKCREATEDESCRIPTORPOOL vkCreateDescriptorPool;
PFNVKDESTROYDESCRIPTORPOOL vkDestroyDescriptorPool;
PFNVKRESETDESCRIPTORPOOL vkResetDescriptorPool;
PFNVKALLOCATEDESCRIPTORSETS vkAllocateDescriptorSets;
PFNVKFREEDESCRIPTORSETS vkFreeDescriptorSets;
PFNVKUPDATEDESCRIPTORSETS vkUpdateDescriptorSets;
PFNVKCREATEFRAMEBUFFER vkCreateFramebuffer;
PFNVKDESTROYFRAMEBUFFER vkDestroyFramebuffer;
PFNVKCREATERENDERPASS vkCreateRenderPass;
PFNVKDESTROYRENDERPASS vkDestroyRenderPass;
PFNVKGETRENDERAREAGRANULARITY vkGetRenderAreaGranularity;
PFNVKCREATECOMMANDPOOL vkCreateCommandPool;
PFNVKDESTROYCOMMANDPOOL vkDestroyCommandPool;
PFNVKRESETCOMMANDPOOL vkResetCommandPool;
PFNVKALLOCATECOMMANDBUFFERS vkAllocateCommandBuffers;
PFNVKFREECOMMANDBUFFERS vkFreeCommandBuffers;
PFNVKBEGINCOMMANDBUFFER vkBeginCommandBuffer;
PFNVKENDCOMMANDBUFFER vkEndCommandBuffer;
PFNVKRESETCOMMANDBUFFER vkResetCommandBuffer;
PFNVKCMDBINDPIPELINE vkCmdBindPipeline;
PFNVKCMDSETVIEWPORT vkCmdSetViewport;
PFNVKCMDSETSCISSOR vkCmdSetScissor;
PFNVKCMDSETLINEWIDTH vkCmdSetLineWidth;
PFNVKCMDSETDEPTHBIAS vkCmdSetDepthBias;
PFNVKCMDSETBLENDCONSTANTS vkCmdSetBlendConstants;
PFNVKCMDSETDEPTHBOUNDS vkCmdSetDepthBounds;
PFNVKCMDSETSTENCILCOMPAREMASK vkCmdSetStencilCompareMask;
PFNVKCMDSETSTENCILWRITEMASK vkCmdSetStencilWriteMask;
PFNVKCMDSETSTENCILREFERENCE vkCmdSetStencilReference;
PFNVKCMDBINDDESCRIPTORSETS vkCmdBindDescriptorSets;
PFNVKCMDBINDINDEXBUFFER vkCmdBindIndexBuffer;
PFNVKCMDBINDVERTEXBUFFERS vkCmdBindVertexBuffers;
PFNVKCMDDRAW vkCmdDraw;
PFNVKCMDDRAWINDEXED vkCmdDrawIndexed;
PFNVKCMDDRAWINDIRECT vkCmdDrawIndirect;
PFNVKCMDDRAWINDEXEDINDIRECT vkCmdDrawIndexedIndirect;
PFNVKCMDDISPATCH vkCmdDispatch;
PFNVKCMDDISPATCHINDIRECT vkCmdDispatchIndirect;
PFNVKCMDCOPYBUFFER vkCmdCopyBuffer;
PFNVKCMDCOPYIMAGE vkCmdCopyImage;
PFNVKCMDBLITIMAGE vkCmdBlitImage;
PFNVKCMDCOPYBUFFERTOIMAGE vkCmdCopyBufferToImage;
PFNVKCMDCOPYIMAGETOBUFFER vkCmdCopyImageToBuffer;
PFNVKCMDUPDATEBUFFER vkCmdUpdateBuffer;
PFNVKCMDFILLBUFFER vkCmdFillBuffer;
PFNVKCMDCLEARCOLORIMAGE vkCmdClearColorImage;
PFNVKCMDCLEARDEPTHSTENCILIMAGE vkCmdClearDepthStencilImage;
PFNVKCMDCLEARATTACHMENTS vkCmdClearAttachments;
PFNVKCMDRESOLVEIMAGE vkCmdResolveImage;
PFNVKCMDSETEVENT vkCmdSetEvent;
PFNVKCMDRESETEVENT vkCmdResetEvent;
PFNVKCMDWAITEVENTS vkCmdWaitEvents;
PFNVKCMDPIPELINEBARRIER vkCmdPipelineBarrier;
PFNVKCMDBEGINQUERY vkCmdBeginQuery;
PFNVKCMDENDQUERY vkCmdEndQuery;
PFNVKCMDRESETQUERYPOOL vkCmdResetQueryPool;
PFNVKCMDWRITETIMESTAMP vkCmdWriteTimestamp;
PFNVKCMDCOPYQUERYPOOLRESULTS vkCmdCopyQueryPoolResults;
PFNVKCMDPUSHCONSTANTS vkCmdPushConstants;
PFNVKCMDBEGINRENDERPASS vkCmdBeginRenderPass;
PFNVKCMDNEXTSUBPASS vkCmdNextSubpass;
PFNVKCMDENDRENDERPASS vkCmdEndRenderPass;
PFNVKCMDEXECUTECOMMANDS vkCmdExecuteCommands;
PFNVKCREATESWAPCHAINKHR vkCreateSwapchainKHR;
PFNVKDESTROYSWAPCHAINKHR vkDestroySwapchainKHR;
PFNVKGETSWAPCHAINIMAGESKHR vkGetSwapchainImagesKHR;
PFNVKACQUIRENEXTIMAGEKHR vkAcquireNextImageKHR;
PFNVKQUEUEPRESENTKHR vkQueuePresentKHR;
PFNVKCREATESHAREDSWAPCHAINSKHR vkCreateSharedSwapchainsKHR;
};
// These maps contain both the device/instance specific function pointers
// for any vulkan call. Since these can be different per-device we collect them
// on calls to VkCreateInstance/VkCreateDevice and store them here.
std::unordered_map<VkInstance, InstanceFunctions> mInstanceFunctions;
std::unordered_map<VkDevice, DeviceFunctions> mDeviceFunctions;
// These maps contain mappings from objects created by an instance/device
// back to the original device. This lets us get back to the correct VkDevice
// VkInstance in order to call the appropriate function.
std::unordered_map<VkCommandBuffer, VkDevice> mCommandBuffersToDevices;
std::unordered_map<VkQueue, VkDevice> mQueuesToDevices;
std::unordered_map<VkPhysicalDevice, VkInstance> mPhysicalDevicesToInstances;
};
} // namespace gapii
#endif // GAPII_VULKAN_IMPORTS_H