/* WARNING: This is auto-generated file. Do not modify, since changes will
 * be lost! Modify the generating script instead.
 */
GetDeviceProcAddrFunc							getDeviceProcAddr;
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;
CreateRenderPass2KHRFunc						createRenderPass2KHR;
CmdBeginRenderPass2KHRFunc						cmdBeginRenderPass2KHR;
CmdNextSubpass2KHRFunc							cmdNextSubpass2KHR;
CmdEndRenderPass2KHRFunc						cmdEndRenderPass2KHR;
GetSwapchainStatusKHRFunc						getSwapchainStatusKHR;
ImportFenceWin32HandleKHRFunc					importFenceWin32HandleKHR;
GetFenceWin32HandleKHRFunc						getFenceWin32HandleKHR;
ImportFenceFdKHRFunc							importFenceFdKHR;
GetFenceFdKHRFunc								getFenceFdKHR;
DebugMarkerSetObjectTagEXTFunc					debugMarkerSetObjectTagEXT;
DebugMarkerSetObjectNameEXTFunc					debugMarkerSetObjectNameEXT;
CmdDebugMarkerBeginEXTFunc						cmdDebugMarkerBeginEXT;
CmdDebugMarkerEndEXTFunc						cmdDebugMarkerEndEXT;
CmdDebugMarkerInsertEXTFunc						cmdDebugMarkerInsertEXT;
CmdDrawIndirectCountAMDFunc						cmdDrawIndirectCountAMD;
CmdDrawIndexedIndirectCountAMDFunc				cmdDrawIndexedIndirectCountAMD;
CmdDrawIndirectCountKHRFunc						cmdDrawIndirectCountKHR;
CmdDrawIndexedIndirectCountKHRFunc				cmdDrawIndexedIndirectCountKHR;
GetMemoryWin32HandleNVFunc						getMemoryWin32HandleNV;
CmdBeginConditionalRenderingEXTFunc				cmdBeginConditionalRenderingEXT;
CmdEndConditionalRenderingEXTFunc				cmdEndConditionalRenderingEXT;
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;
GetMemoryHostPointerPropertiesEXTFunc			getMemoryHostPointerPropertiesEXT;
GetAndroidHardwareBufferPropertiesANDROIDFunc	getAndroidHardwareBufferPropertiesANDROID;
GetMemoryAndroidHardwareBufferANDROIDFunc		getMemoryAndroidHardwareBufferANDROID;
GetBufferDeviceAddressEXTFunc					getBufferDeviceAddressEXT;
ResetQueryPoolEXTFunc							resetQueryPoolEXT;
