1 /** 2 * Dlang vulkan function pointer prototypes, declarations and loader from vkGetInstanceProcAddr 3 * 4 * Copyright: Copyright 2015-2016 The Khronos Group Inc.; Copyright 2016 Alex Parrill, Peter Particle. 5 * License: $(https://opensource.org/licenses/MIT, MIT License). 6 * Authors: Copyright 2016 Alex Parrill, Peter Particle 7 */ 8 module erupted.functions; 9 10 public import erupted.types; 11 12 nothrow @nogc: 13 14 15 /// function type aliases 16 extern( System ) { 17 18 // VK_VERSION_1_0 19 alias PFN_vkCreateInstance = VkResult function( const( VkInstanceCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkInstance* pInstance ); 20 alias PFN_vkDestroyInstance = void function( VkInstance instance, const( VkAllocationCallbacks )* pAllocator ); 21 alias PFN_vkEnumeratePhysicalDevices = VkResult function( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ); 22 alias PFN_vkGetPhysicalDeviceFeatures = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ); 23 alias PFN_vkGetPhysicalDeviceFormatProperties = void function( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ); 24 alias PFN_vkGetPhysicalDeviceImageFormatProperties = VkResult function( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ); 25 alias PFN_vkGetPhysicalDeviceProperties = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ); 26 alias PFN_vkGetPhysicalDeviceQueueFamilyProperties = void function( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ); 27 alias PFN_vkGetPhysicalDeviceMemoryProperties = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ); 28 alias PFN_vkGetInstanceProcAddr = PFN_vkVoidFunction function( VkInstance instance, const( char )* pName ); 29 alias PFN_vkGetDeviceProcAddr = PFN_vkVoidFunction function( VkDevice device, const( char )* pName ); 30 alias PFN_vkCreateDevice = VkResult function( VkPhysicalDevice physicalDevice, const( VkDeviceCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDevice* pDevice ); 31 alias PFN_vkDestroyDevice = void function( VkDevice device, const( VkAllocationCallbacks )* pAllocator ); 32 alias PFN_vkEnumerateInstanceExtensionProperties = VkResult function( const( char )* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ); 33 alias PFN_vkEnumerateDeviceExtensionProperties = VkResult function( VkPhysicalDevice physicalDevice, const( char )* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ); 34 alias PFN_vkEnumerateInstanceLayerProperties = VkResult function( uint32_t* pPropertyCount, VkLayerProperties* pProperties ); 35 alias PFN_vkEnumerateDeviceLayerProperties = VkResult function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ); 36 alias PFN_vkGetDeviceQueue = void function( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ); 37 alias PFN_vkQueueSubmit = VkResult function( VkQueue queue, uint32_t submitCount, const( VkSubmitInfo )* pSubmits, VkFence fence ); 38 alias PFN_vkQueueWaitIdle = VkResult function( VkQueue queue ); 39 alias PFN_vkDeviceWaitIdle = VkResult function( VkDevice device ); 40 alias PFN_vkAllocateMemory = VkResult function( VkDevice device, const( VkMemoryAllocateInfo )* pAllocateInfo, const( VkAllocationCallbacks )* pAllocator, VkDeviceMemory* pMemory ); 41 alias PFN_vkFreeMemory = void function( VkDevice device, VkDeviceMemory memory, const( VkAllocationCallbacks )* pAllocator ); 42 alias PFN_vkMapMemory = VkResult function( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ); 43 alias PFN_vkUnmapMemory = void function( VkDevice device, VkDeviceMemory memory ); 44 alias PFN_vkFlushMappedMemoryRanges = VkResult function( VkDevice device, uint32_t memoryRangeCount, const( VkMappedMemoryRange )* pMemoryRanges ); 45 alias PFN_vkInvalidateMappedMemoryRanges = VkResult function( VkDevice device, uint32_t memoryRangeCount, const( VkMappedMemoryRange )* pMemoryRanges ); 46 alias PFN_vkGetDeviceMemoryCommitment = void function( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ); 47 alias PFN_vkBindBufferMemory = VkResult function( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ); 48 alias PFN_vkBindImageMemory = VkResult function( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ); 49 alias PFN_vkGetBufferMemoryRequirements = void function( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ); 50 alias PFN_vkGetImageMemoryRequirements = void function( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ); 51 alias PFN_vkGetImageSparseMemoryRequirements = void function( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ); 52 alias PFN_vkGetPhysicalDeviceSparseImageFormatProperties = void function( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ); 53 alias PFN_vkQueueBindSparse = VkResult function( VkQueue queue, uint32_t bindInfoCount, const( VkBindSparseInfo )* pBindInfo, VkFence fence ); 54 alias PFN_vkCreateFence = VkResult function( VkDevice device, const( VkFenceCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkFence* pFence ); 55 alias PFN_vkDestroyFence = void function( VkDevice device, VkFence fence, const( VkAllocationCallbacks )* pAllocator ); 56 alias PFN_vkResetFences = VkResult function( VkDevice device, uint32_t fenceCount, const( VkFence )* pFences ); 57 alias PFN_vkGetFenceStatus = VkResult function( VkDevice device, VkFence fence ); 58 alias PFN_vkWaitForFences = VkResult function( VkDevice device, uint32_t fenceCount, const( VkFence )* pFences, VkBool32 waitAll, uint64_t timeout ); 59 alias PFN_vkCreateSemaphore = VkResult function( VkDevice device, const( VkSemaphoreCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSemaphore* pSemaphore ); 60 alias PFN_vkDestroySemaphore = void function( VkDevice device, VkSemaphore semaphore, const( VkAllocationCallbacks )* pAllocator ); 61 alias PFN_vkCreateEvent = VkResult function( VkDevice device, const( VkEventCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkEvent* pEvent ); 62 alias PFN_vkDestroyEvent = void function( VkDevice device, VkEvent event, const( VkAllocationCallbacks )* pAllocator ); 63 alias PFN_vkGetEventStatus = VkResult function( VkDevice device, VkEvent event ); 64 alias PFN_vkSetEvent = VkResult function( VkDevice device, VkEvent event ); 65 alias PFN_vkResetEvent = VkResult function( VkDevice device, VkEvent event ); 66 alias PFN_vkCreateQueryPool = VkResult function( VkDevice device, const( VkQueryPoolCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkQueryPool* pQueryPool ); 67 alias PFN_vkDestroyQueryPool = void function( VkDevice device, VkQueryPool queryPool, const( VkAllocationCallbacks )* pAllocator ); 68 alias PFN_vkGetQueryPoolResults = VkResult function( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ); 69 alias PFN_vkCreateBuffer = VkResult function( VkDevice device, const( VkBufferCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkBuffer* pBuffer ); 70 alias PFN_vkDestroyBuffer = void function( VkDevice device, VkBuffer buffer, const( VkAllocationCallbacks )* pAllocator ); 71 alias PFN_vkCreateBufferView = VkResult function( VkDevice device, const( VkBufferViewCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkBufferView* pView ); 72 alias PFN_vkDestroyBufferView = void function( VkDevice device, VkBufferView bufferView, const( VkAllocationCallbacks )* pAllocator ); 73 alias PFN_vkCreateImage = VkResult function( VkDevice device, const( VkImageCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkImage* pImage ); 74 alias PFN_vkDestroyImage = void function( VkDevice device, VkImage image, const( VkAllocationCallbacks )* pAllocator ); 75 alias PFN_vkGetImageSubresourceLayout = void function( VkDevice device, VkImage image, const( VkImageSubresource )* pSubresource, VkSubresourceLayout* pLayout ); 76 alias PFN_vkCreateImageView = VkResult function( VkDevice device, const( VkImageViewCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkImageView* pView ); 77 alias PFN_vkDestroyImageView = void function( VkDevice device, VkImageView imageView, const( VkAllocationCallbacks )* pAllocator ); 78 alias PFN_vkCreateShaderModule = VkResult function( VkDevice device, const( VkShaderModuleCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkShaderModule* pShaderModule ); 79 alias PFN_vkDestroyShaderModule = void function( VkDevice device, VkShaderModule shaderModule, const( VkAllocationCallbacks )* pAllocator ); 80 alias PFN_vkCreatePipelineCache = VkResult function( VkDevice device, const( VkPipelineCacheCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkPipelineCache* pPipelineCache ); 81 alias PFN_vkDestroyPipelineCache = void function( VkDevice device, VkPipelineCache pipelineCache, const( VkAllocationCallbacks )* pAllocator ); 82 alias PFN_vkGetPipelineCacheData = VkResult function( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ); 83 alias PFN_vkMergePipelineCaches = VkResult function( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const( VkPipelineCache )* pSrcCaches ); 84 alias PFN_vkCreateGraphicsPipelines = VkResult function( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkGraphicsPipelineCreateInfo )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkPipeline* pPipelines ); 85 alias PFN_vkCreateComputePipelines = VkResult function( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkComputePipelineCreateInfo )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkPipeline* pPipelines ); 86 alias PFN_vkDestroyPipeline = void function( VkDevice device, VkPipeline pipeline, const( VkAllocationCallbacks )* pAllocator ); 87 alias PFN_vkCreatePipelineLayout = VkResult function( VkDevice device, const( VkPipelineLayoutCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkPipelineLayout* pPipelineLayout ); 88 alias PFN_vkDestroyPipelineLayout = void function( VkDevice device, VkPipelineLayout pipelineLayout, const( VkAllocationCallbacks )* pAllocator ); 89 alias PFN_vkCreateSampler = VkResult function( VkDevice device, const( VkSamplerCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSampler* pSampler ); 90 alias PFN_vkDestroySampler = void function( VkDevice device, VkSampler sampler, const( VkAllocationCallbacks )* pAllocator ); 91 alias PFN_vkCreateDescriptorSetLayout = VkResult function( VkDevice device, const( VkDescriptorSetLayoutCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDescriptorSetLayout* pSetLayout ); 92 alias PFN_vkDestroyDescriptorSetLayout = void function( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const( VkAllocationCallbacks )* pAllocator ); 93 alias PFN_vkCreateDescriptorPool = VkResult function( VkDevice device, const( VkDescriptorPoolCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDescriptorPool* pDescriptorPool ); 94 alias PFN_vkDestroyDescriptorPool = void function( VkDevice device, VkDescriptorPool descriptorPool, const( VkAllocationCallbacks )* pAllocator ); 95 alias PFN_vkResetDescriptorPool = VkResult function( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ); 96 alias PFN_vkAllocateDescriptorSets = VkResult function( VkDevice device, const( VkDescriptorSetAllocateInfo )* pAllocateInfo, VkDescriptorSet* pDescriptorSets ); 97 alias PFN_vkFreeDescriptorSets = VkResult function( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const( VkDescriptorSet )* pDescriptorSets ); 98 alias PFN_vkUpdateDescriptorSets = void function( VkDevice device, uint32_t descriptorWriteCount, const( VkWriteDescriptorSet )* pDescriptorWrites, uint32_t descriptorCopyCount, const( VkCopyDescriptorSet )* pDescriptorCopies ); 99 alias PFN_vkCreateFramebuffer = VkResult function( VkDevice device, const( VkFramebufferCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkFramebuffer* pFramebuffer ); 100 alias PFN_vkDestroyFramebuffer = void function( VkDevice device, VkFramebuffer framebuffer, const( VkAllocationCallbacks )* pAllocator ); 101 alias PFN_vkCreateRenderPass = VkResult function( VkDevice device, const( VkRenderPassCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkRenderPass* pRenderPass ); 102 alias PFN_vkDestroyRenderPass = void function( VkDevice device, VkRenderPass renderPass, const( VkAllocationCallbacks )* pAllocator ); 103 alias PFN_vkGetRenderAreaGranularity = void function( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ); 104 alias PFN_vkCreateCommandPool = VkResult function( VkDevice device, const( VkCommandPoolCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkCommandPool* pCommandPool ); 105 alias PFN_vkDestroyCommandPool = void function( VkDevice device, VkCommandPool commandPool, const( VkAllocationCallbacks )* pAllocator ); 106 alias PFN_vkResetCommandPool = VkResult function( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ); 107 alias PFN_vkAllocateCommandBuffers = VkResult function( VkDevice device, const( VkCommandBufferAllocateInfo )* pAllocateInfo, VkCommandBuffer* pCommandBuffers ); 108 alias PFN_vkFreeCommandBuffers = void function( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const( VkCommandBuffer )* pCommandBuffers ); 109 alias PFN_vkBeginCommandBuffer = VkResult function( VkCommandBuffer commandBuffer, const( VkCommandBufferBeginInfo )* pBeginInfo ); 110 alias PFN_vkEndCommandBuffer = VkResult function( VkCommandBuffer commandBuffer ); 111 alias PFN_vkResetCommandBuffer = VkResult function( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ); 112 alias PFN_vkCmdBindPipeline = void function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ); 113 alias PFN_vkCmdSetViewport = void function( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const( VkViewport )* pViewports ); 114 alias PFN_vkCmdSetScissor = void function( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const( VkRect2D )* pScissors ); 115 alias PFN_vkCmdSetLineWidth = void function( VkCommandBuffer commandBuffer, float lineWidth ); 116 alias PFN_vkCmdSetDepthBias = void function( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ); 117 alias PFN_vkCmdSetBlendConstants = void function( VkCommandBuffer commandBuffer, const float[4] blendConstants ); 118 alias PFN_vkCmdSetDepthBounds = void function( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ); 119 alias PFN_vkCmdSetStencilCompareMask = void function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ); 120 alias PFN_vkCmdSetStencilWriteMask = void function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ); 121 alias PFN_vkCmdSetStencilReference = void function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ); 122 alias PFN_vkCmdBindDescriptorSets = void function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const( VkDescriptorSet )* pDescriptorSets, uint32_t dynamicOffsetCount, const( uint32_t )* pDynamicOffsets ); 123 alias PFN_vkCmdBindIndexBuffer = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ); 124 alias PFN_vkCmdBindVertexBuffers = void function( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const( VkBuffer )* pBuffers, const( VkDeviceSize )* pOffsets ); 125 alias PFN_vkCmdDraw = void function( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ); 126 alias PFN_vkCmdDrawIndexed = void function( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ); 127 alias PFN_vkCmdDrawIndirect = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ); 128 alias PFN_vkCmdDrawIndexedIndirect = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ); 129 alias PFN_vkCmdDispatch = void function( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ); 130 alias PFN_vkCmdDispatchIndirect = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ); 131 alias PFN_vkCmdCopyBuffer = void function( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const( VkBufferCopy )* pRegions ); 132 alias PFN_vkCmdCopyImage = void function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageCopy )* pRegions ); 133 alias PFN_vkCmdBlitImage = void function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageBlit )* pRegions, VkFilter filter ); 134 alias PFN_vkCmdCopyBufferToImage = void function( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkBufferImageCopy )* pRegions ); 135 alias PFN_vkCmdCopyImageToBuffer = void function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const( VkBufferImageCopy )* pRegions ); 136 alias PFN_vkCmdUpdateBuffer = void function( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const( void )* pData ); 137 alias PFN_vkCmdFillBuffer = void function( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ); 138 alias PFN_vkCmdClearColorImage = void function( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const( VkClearColorValue )* pColor, uint32_t rangeCount, const( VkImageSubresourceRange )* pRanges ); 139 alias PFN_vkCmdClearDepthStencilImage = void function( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const( VkClearDepthStencilValue )* pDepthStencil, uint32_t rangeCount, const( VkImageSubresourceRange )* pRanges ); 140 alias PFN_vkCmdClearAttachments = void function( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const( VkClearAttachment )* pAttachments, uint32_t rectCount, const( VkClearRect )* pRects ); 141 alias PFN_vkCmdResolveImage = void function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageResolve )* pRegions ); 142 alias PFN_vkCmdSetEvent = void function( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ); 143 alias PFN_vkCmdResetEvent = void function( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ); 144 alias PFN_vkCmdWaitEvents = void function( 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 ); 145 alias PFN_vkCmdPipelineBarrier = void function( 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 ); 146 alias PFN_vkCmdBeginQuery = void function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ); 147 alias PFN_vkCmdEndQuery = void function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ); 148 alias PFN_vkCmdResetQueryPool = void function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ); 149 alias PFN_vkCmdWriteTimestamp = void function( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ); 150 alias PFN_vkCmdCopyQueryPoolResults = void function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ); 151 alias PFN_vkCmdPushConstants = void function( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const( void )* pValues ); 152 alias PFN_vkCmdBeginRenderPass = void function( VkCommandBuffer commandBuffer, const( VkRenderPassBeginInfo )* pRenderPassBegin, VkSubpassContents contents ); 153 alias PFN_vkCmdNextSubpass = void function( VkCommandBuffer commandBuffer, VkSubpassContents contents ); 154 alias PFN_vkCmdEndRenderPass = void function( VkCommandBuffer commandBuffer ); 155 alias PFN_vkCmdExecuteCommands = void function( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const( VkCommandBuffer )* pCommandBuffers ); 156 157 // VK_VERSION_1_1 158 alias PFN_vkEnumerateInstanceVersion = VkResult function( uint32_t* pApiVersion ); 159 alias PFN_vkBindBufferMemory2 = VkResult function( VkDevice device, uint32_t bindInfoCount, const( VkBindBufferMemoryInfo )* pBindInfos ); 160 alias PFN_vkBindImageMemory2 = VkResult function( VkDevice device, uint32_t bindInfoCount, const( VkBindImageMemoryInfo )* pBindInfos ); 161 alias PFN_vkGetDeviceGroupPeerMemoryFeatures = void function( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ); 162 alias PFN_vkCmdSetDeviceMask = void function( VkCommandBuffer commandBuffer, uint32_t deviceMask ); 163 alias PFN_vkCmdDispatchBase = void function( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ); 164 alias PFN_vkEnumeratePhysicalDeviceGroups = VkResult function( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ); 165 alias PFN_vkGetImageMemoryRequirements2 = void function( VkDevice device, const( VkImageMemoryRequirementsInfo2 )* pInfo, VkMemoryRequirements2* pMemoryRequirements ); 166 alias PFN_vkGetBufferMemoryRequirements2 = void function( VkDevice device, const( VkBufferMemoryRequirementsInfo2 )* pInfo, VkMemoryRequirements2* pMemoryRequirements ); 167 alias PFN_vkGetImageSparseMemoryRequirements2 = void function( VkDevice device, const( VkImageSparseMemoryRequirementsInfo2 )* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ); 168 alias PFN_vkGetPhysicalDeviceFeatures2 = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ); 169 alias PFN_vkGetPhysicalDeviceProperties2 = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ); 170 alias PFN_vkGetPhysicalDeviceFormatProperties2 = void function( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ); 171 alias PFN_vkGetPhysicalDeviceImageFormatProperties2 = VkResult function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceImageFormatInfo2 )* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ); 172 alias PFN_vkGetPhysicalDeviceQueueFamilyProperties2 = void function( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ); 173 alias PFN_vkGetPhysicalDeviceMemoryProperties2 = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ); 174 alias PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 = void function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceSparseImageFormatInfo2 )* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ); 175 alias PFN_vkTrimCommandPool = void function( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ); 176 alias PFN_vkGetDeviceQueue2 = void function( VkDevice device, const( VkDeviceQueueInfo2 )* pQueueInfo, VkQueue* pQueue ); 177 alias PFN_vkCreateSamplerYcbcrConversion = VkResult function( VkDevice device, const( VkSamplerYcbcrConversionCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ); 178 alias PFN_vkDestroySamplerYcbcrConversion = void function( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const( VkAllocationCallbacks )* pAllocator ); 179 alias PFN_vkCreateDescriptorUpdateTemplate = VkResult function( VkDevice device, const( VkDescriptorUpdateTemplateCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ); 180 alias PFN_vkDestroyDescriptorUpdateTemplate = void function( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const( VkAllocationCallbacks )* pAllocator ); 181 alias PFN_vkUpdateDescriptorSetWithTemplate = void function( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const( void )* pData ); 182 alias PFN_vkGetPhysicalDeviceExternalBufferProperties = void function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceExternalBufferInfo )* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ); 183 alias PFN_vkGetPhysicalDeviceExternalFenceProperties = void function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceExternalFenceInfo )* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ); 184 alias PFN_vkGetPhysicalDeviceExternalSemaphoreProperties = void function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceExternalSemaphoreInfo )* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ); 185 alias PFN_vkGetDescriptorSetLayoutSupport = void function( VkDevice device, const( VkDescriptorSetLayoutCreateInfo )* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ); 186 187 // VK_KHR_surface 188 alias PFN_vkDestroySurfaceKHR = void function( VkInstance instance, VkSurfaceKHR surface, const( VkAllocationCallbacks )* pAllocator ); 189 alias PFN_vkGetPhysicalDeviceSurfaceSupportKHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ); 190 alias PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ); 191 alias PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ); 192 alias PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ); 193 194 // VK_KHR_swapchain 195 alias PFN_vkCreateSwapchainKHR = VkResult function( VkDevice device, const( VkSwapchainCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSwapchainKHR* pSwapchain ); 196 alias PFN_vkDestroySwapchainKHR = void function( VkDevice device, VkSwapchainKHR swapchain, const( VkAllocationCallbacks )* pAllocator ); 197 alias PFN_vkGetSwapchainImagesKHR = VkResult function( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ); 198 alias PFN_vkAcquireNextImageKHR = VkResult function( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ); 199 alias PFN_vkQueuePresentKHR = VkResult function( VkQueue queue, const( VkPresentInfoKHR )* pPresentInfo ); 200 alias PFN_vkGetDeviceGroupPresentCapabilitiesKHR = VkResult function( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ); 201 alias PFN_vkGetDeviceGroupSurfacePresentModesKHR = VkResult function( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ); 202 alias PFN_vkGetPhysicalDevicePresentRectanglesKHR = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ); 203 alias PFN_vkAcquireNextImage2KHR = VkResult function( VkDevice device, const( VkAcquireNextImageInfoKHR )* pAcquireInfo, uint32_t* pImageIndex ); 204 205 // VK_KHR_display 206 alias PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ); 207 alias PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ); 208 alias PFN_vkGetDisplayPlaneSupportedDisplaysKHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ); 209 alias PFN_vkGetDisplayModePropertiesKHR = VkResult function( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ); 210 alias PFN_vkCreateDisplayModeKHR = VkResult function( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const( VkDisplayModeCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDisplayModeKHR* pMode ); 211 alias PFN_vkGetDisplayPlaneCapabilitiesKHR = VkResult function( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ); 212 alias PFN_vkCreateDisplayPlaneSurfaceKHR = VkResult function( VkInstance instance, const( VkDisplaySurfaceCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 213 214 // VK_KHR_display_swapchain 215 alias PFN_vkCreateSharedSwapchainsKHR = VkResult function( VkDevice device, uint32_t swapchainCount, const( VkSwapchainCreateInfoKHR )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkSwapchainKHR* pSwapchains ); 216 217 // VK_KHR_external_memory_fd 218 alias PFN_vkGetMemoryFdKHR = VkResult function( VkDevice device, const( VkMemoryGetFdInfoKHR )* pGetFdInfo, int* pFd ); 219 alias PFN_vkGetMemoryFdPropertiesKHR = VkResult function( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ); 220 221 // VK_KHR_external_semaphore_fd 222 alias PFN_vkImportSemaphoreFdKHR = VkResult function( VkDevice device, const( VkImportSemaphoreFdInfoKHR )* pImportSemaphoreFdInfo ); 223 alias PFN_vkGetSemaphoreFdKHR = VkResult function( VkDevice device, const( VkSemaphoreGetFdInfoKHR )* pGetFdInfo, int* pFd ); 224 225 // VK_KHR_push_descriptor 226 alias PFN_vkCmdPushDescriptorSetKHR = void function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const( VkWriteDescriptorSet )* pDescriptorWrites ); 227 alias PFN_vkCmdPushDescriptorSetWithTemplateKHR = void function( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const( void )* pData ); 228 229 // VK_KHR_create_renderpass2 230 alias PFN_vkCreateRenderPass2KHR = VkResult function( VkDevice device, const( VkRenderPassCreateInfo2KHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkRenderPass* pRenderPass ); 231 alias PFN_vkCmdBeginRenderPass2KHR = void function( VkCommandBuffer commandBuffer, const( VkRenderPassBeginInfo )* pRenderPassBegin, const( VkSubpassBeginInfoKHR )* pSubpassBeginInfo ); 232 alias PFN_vkCmdNextSubpass2KHR = void function( VkCommandBuffer commandBuffer, const( VkSubpassBeginInfoKHR )* pSubpassBeginInfo, const( VkSubpassEndInfoKHR )* pSubpassEndInfo ); 233 alias PFN_vkCmdEndRenderPass2KHR = void function( VkCommandBuffer commandBuffer, const( VkSubpassEndInfoKHR )* pSubpassEndInfo ); 234 235 // VK_KHR_shared_presentable_image 236 alias PFN_vkGetSwapchainStatusKHR = VkResult function( VkDevice device, VkSwapchainKHR swapchain ); 237 238 // VK_KHR_external_fence_fd 239 alias PFN_vkImportFenceFdKHR = VkResult function( VkDevice device, const( VkImportFenceFdInfoKHR )* pImportFenceFdInfo ); 240 alias PFN_vkGetFenceFdKHR = VkResult function( VkDevice device, const( VkFenceGetFdInfoKHR )* pGetFdInfo, int* pFd ); 241 242 // VK_KHR_get_surface_capabilities2 243 alias PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = VkResult function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceSurfaceInfo2KHR )* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ); 244 alias PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = VkResult function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceSurfaceInfo2KHR )* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ); 245 246 // VK_KHR_get_display_properties2 247 alias PFN_vkGetPhysicalDeviceDisplayProperties2KHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ); 248 alias PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ); 249 alias PFN_vkGetDisplayModeProperties2KHR = VkResult function( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ); 250 alias PFN_vkGetDisplayPlaneCapabilities2KHR = VkResult function( VkPhysicalDevice physicalDevice, const( VkDisplayPlaneInfo2KHR )* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ); 251 252 // VK_KHR_draw_indirect_count 253 alias PFN_vkCmdDrawIndirectCountKHR = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ); 254 alias PFN_vkCmdDrawIndexedIndirectCountKHR = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ); 255 256 // VK_EXT_debug_report 257 alias PFN_vkCreateDebugReportCallbackEXT = VkResult function( VkInstance instance, const( VkDebugReportCallbackCreateInfoEXT )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDebugReportCallbackEXT* pCallback ); 258 alias PFN_vkDestroyDebugReportCallbackEXT = void function( VkInstance instance, VkDebugReportCallbackEXT callback, const( VkAllocationCallbacks )* pAllocator ); 259 alias PFN_vkDebugReportMessageEXT = void function( VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const( char )* pLayerPrefix, const( char )* pMessage ); 260 261 // VK_EXT_debug_marker 262 alias PFN_vkDebugMarkerSetObjectTagEXT = VkResult function( VkDevice device, const( VkDebugMarkerObjectTagInfoEXT )* pTagInfo ); 263 alias PFN_vkDebugMarkerSetObjectNameEXT = VkResult function( VkDevice device, const( VkDebugMarkerObjectNameInfoEXT )* pNameInfo ); 264 alias PFN_vkCmdDebugMarkerBeginEXT = void function( VkCommandBuffer commandBuffer, const( VkDebugMarkerMarkerInfoEXT )* pMarkerInfo ); 265 alias PFN_vkCmdDebugMarkerEndEXT = void function( VkCommandBuffer commandBuffer ); 266 alias PFN_vkCmdDebugMarkerInsertEXT = void function( VkCommandBuffer commandBuffer, const( VkDebugMarkerMarkerInfoEXT )* pMarkerInfo ); 267 268 // VK_AMD_draw_indirect_count 269 alias PFN_vkCmdDrawIndirectCountAMD = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ); 270 alias PFN_vkCmdDrawIndexedIndirectCountAMD = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ); 271 272 // VK_AMD_shader_info 273 alias PFN_vkGetShaderInfoAMD = VkResult function( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ); 274 275 // VK_NV_external_memory_capabilities 276 alias PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = VkResult function( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ); 277 278 // VK_EXT_conditional_rendering 279 alias PFN_vkCmdBeginConditionalRenderingEXT = void function( VkCommandBuffer commandBuffer, const( VkConditionalRenderingBeginInfoEXT )* pConditionalRenderingBegin ); 280 alias PFN_vkCmdEndConditionalRenderingEXT = void function( VkCommandBuffer commandBuffer ); 281 282 // VK_NVX_device_generated_commands 283 alias PFN_vkCmdProcessCommandsNVX = void function( VkCommandBuffer commandBuffer, const( VkCmdProcessCommandsInfoNVX )* pProcessCommandsInfo ); 284 alias PFN_vkCmdReserveSpaceForCommandsNVX = void function( VkCommandBuffer commandBuffer, const( VkCmdReserveSpaceForCommandsInfoNVX )* pReserveSpaceInfo ); 285 alias PFN_vkCreateIndirectCommandsLayoutNVX = VkResult function( VkDevice device, const( VkIndirectCommandsLayoutCreateInfoNVX )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout ); 286 alias PFN_vkDestroyIndirectCommandsLayoutNVX = void function( VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const( VkAllocationCallbacks )* pAllocator ); 287 alias PFN_vkCreateObjectTableNVX = VkResult function( VkDevice device, const( VkObjectTableCreateInfoNVX )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkObjectTableNVX* pObjectTable ); 288 alias PFN_vkDestroyObjectTableNVX = void function( VkDevice device, VkObjectTableNVX objectTable, const( VkAllocationCallbacks )* pAllocator ); 289 alias PFN_vkRegisterObjectsNVX = VkResult function( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const( VkObjectTableEntryNVX* )* ppObjectTableEntries, const( uint32_t )* pObjectIndices ); 290 alias PFN_vkUnregisterObjectsNVX = VkResult function( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const( VkObjectEntryTypeNVX )* pObjectEntryTypes, const( uint32_t )* pObjectIndices ); 291 alias PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = void function( VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits ); 292 293 // VK_NV_clip_space_w_scaling 294 alias PFN_vkCmdSetViewportWScalingNV = void function( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const( VkViewportWScalingNV )* pViewportWScalings ); 295 296 // VK_EXT_direct_mode_display 297 alias PFN_vkReleaseDisplayEXT = VkResult function( VkPhysicalDevice physicalDevice, VkDisplayKHR display ); 298 299 // VK_EXT_display_surface_counter 300 alias PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ); 301 302 // VK_EXT_display_control 303 alias PFN_vkDisplayPowerControlEXT = VkResult function( VkDevice device, VkDisplayKHR display, const( VkDisplayPowerInfoEXT )* pDisplayPowerInfo ); 304 alias PFN_vkRegisterDeviceEventEXT = VkResult function( VkDevice device, const( VkDeviceEventInfoEXT )* pDeviceEventInfo, const( VkAllocationCallbacks )* pAllocator, VkFence* pFence ); 305 alias PFN_vkRegisterDisplayEventEXT = VkResult function( VkDevice device, VkDisplayKHR display, const( VkDisplayEventInfoEXT )* pDisplayEventInfo, const( VkAllocationCallbacks )* pAllocator, VkFence* pFence ); 306 alias PFN_vkGetSwapchainCounterEXT = VkResult function( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ); 307 308 // VK_GOOGLE_display_timing 309 alias PFN_vkGetRefreshCycleDurationGOOGLE = VkResult function( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ); 310 alias PFN_vkGetPastPresentationTimingGOOGLE = VkResult function( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ); 311 312 // VK_EXT_discard_rectangles 313 alias PFN_vkCmdSetDiscardRectangleEXT = void function( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const( VkRect2D )* pDiscardRectangles ); 314 315 // VK_EXT_hdr_metadata 316 alias PFN_vkSetHdrMetadataEXT = void function( VkDevice device, uint32_t swapchainCount, const( VkSwapchainKHR )* pSwapchains, const( VkHdrMetadataEXT )* pMetadata ); 317 318 // VK_EXT_debug_utils 319 alias PFN_vkSetDebugUtilsObjectNameEXT = VkResult function( VkDevice device, const( VkDebugUtilsObjectNameInfoEXT )* pNameInfo ); 320 alias PFN_vkSetDebugUtilsObjectTagEXT = VkResult function( VkDevice device, const( VkDebugUtilsObjectTagInfoEXT )* pTagInfo ); 321 alias PFN_vkQueueBeginDebugUtilsLabelEXT = void function( VkQueue queue, const( VkDebugUtilsLabelEXT )* pLabelInfo ); 322 alias PFN_vkQueueEndDebugUtilsLabelEXT = void function( VkQueue queue ); 323 alias PFN_vkQueueInsertDebugUtilsLabelEXT = void function( VkQueue queue, const( VkDebugUtilsLabelEXT )* pLabelInfo ); 324 alias PFN_vkCmdBeginDebugUtilsLabelEXT = void function( VkCommandBuffer commandBuffer, const( VkDebugUtilsLabelEXT )* pLabelInfo ); 325 alias PFN_vkCmdEndDebugUtilsLabelEXT = void function( VkCommandBuffer commandBuffer ); 326 alias PFN_vkCmdInsertDebugUtilsLabelEXT = void function( VkCommandBuffer commandBuffer, const( VkDebugUtilsLabelEXT )* pLabelInfo ); 327 alias PFN_vkCreateDebugUtilsMessengerEXT = VkResult function( VkInstance instance, const( VkDebugUtilsMessengerCreateInfoEXT )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ); 328 alias PFN_vkDestroyDebugUtilsMessengerEXT = void function( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const( VkAllocationCallbacks )* pAllocator ); 329 alias PFN_vkSubmitDebugUtilsMessageEXT = void function( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const( VkDebugUtilsMessengerCallbackDataEXT )* pCallbackData ); 330 331 // VK_EXT_sample_locations 332 alias PFN_vkCmdSetSampleLocationsEXT = void function( VkCommandBuffer commandBuffer, const( VkSampleLocationsInfoEXT )* pSampleLocationsInfo ); 333 alias PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = void function( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ); 334 335 // VK_EXT_validation_cache 336 alias PFN_vkCreateValidationCacheEXT = VkResult function( VkDevice device, const( VkValidationCacheCreateInfoEXT )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkValidationCacheEXT* pValidationCache ); 337 alias PFN_vkDestroyValidationCacheEXT = void function( VkDevice device, VkValidationCacheEXT validationCache, const( VkAllocationCallbacks )* pAllocator ); 338 alias PFN_vkMergeValidationCachesEXT = VkResult function( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const( VkValidationCacheEXT )* pSrcCaches ); 339 alias PFN_vkGetValidationCacheDataEXT = VkResult function( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ); 340 341 // VK_NV_shading_rate_image 342 alias PFN_vkCmdBindShadingRateImageNV = void function( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ); 343 alias PFN_vkCmdSetViewportShadingRatePaletteNV = void function( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const( VkShadingRatePaletteNV )* pShadingRatePalettes ); 344 alias PFN_vkCmdSetCoarseSampleOrderNV = void function( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const( VkCoarseSampleOrderCustomNV )* pCustomSampleOrders ); 345 346 // VK_NVX_raytracing 347 alias PFN_vkCreateAccelerationStructureNVX = VkResult function( VkDevice device, const( VkAccelerationStructureCreateInfoNVX )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkAccelerationStructureNVX* pAccelerationStructure ); 348 alias PFN_vkDestroyAccelerationStructureNVX = void function( VkDevice device, VkAccelerationStructureNVX accelerationStructure, const( VkAllocationCallbacks )* pAllocator ); 349 alias PFN_vkGetAccelerationStructureMemoryRequirementsNVX = void function( VkDevice device, const( VkAccelerationStructureMemoryRequirementsInfoNVX )* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ); 350 alias PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX = void function( VkDevice device, const( VkAccelerationStructureMemoryRequirementsInfoNVX )* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ); 351 alias PFN_vkBindAccelerationStructureMemoryNVX = VkResult function( VkDevice device, uint32_t bindInfoCount, const( VkBindAccelerationStructureMemoryInfoNVX )* pBindInfos ); 352 alias PFN_vkCmdBuildAccelerationStructureNVX = void function( VkCommandBuffer cmdBuf, VkAccelerationStructureTypeNVX type, uint32_t instanceCount, VkBuffer instanceData, VkDeviceSize instanceOffset, uint32_t geometryCount, const( VkGeometryNVX )* pGeometries, VkBuildAccelerationStructureFlagsNVX flags, VkBool32 update, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkBuffer scratch, VkDeviceSize scratchOffset ); 353 alias PFN_vkCmdCopyAccelerationStructureNVX = void function( VkCommandBuffer cmdBuf, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkCopyAccelerationStructureModeNVX mode ); 354 alias PFN_vkCmdTraceRaysNVX = void function( VkCommandBuffer cmdBuf, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, uint32_t width, uint32_t height ); 355 alias PFN_vkCreateRaytracingPipelinesNVX = VkResult function( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkRaytracingPipelineCreateInfoNVX )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkPipeline* pPipelines ); 356 alias PFN_vkGetRaytracingShaderHandlesNVX = VkResult function( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ); 357 alias PFN_vkGetAccelerationStructureHandleNVX = VkResult function( VkDevice device, VkAccelerationStructureNVX accelerationStructure, size_t dataSize, void* pData ); 358 alias PFN_vkCmdWriteAccelerationStructurePropertiesNVX = void function( VkCommandBuffer cmdBuf, VkAccelerationStructureNVX accelerationStructure, VkQueryType queryType, VkQueryPool queryPool, uint32_t query ); 359 alias PFN_vkCompileDeferredNVX = VkResult function( VkDevice device, VkPipeline pipeline, uint32_t shader ); 360 361 // VK_EXT_external_memory_host 362 alias PFN_vkGetMemoryHostPointerPropertiesEXT = VkResult function( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const( void )* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ); 363 364 // VK_AMD_buffer_marker 365 alias PFN_vkCmdWriteBufferMarkerAMD = void function( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ); 366 367 // VK_NV_mesh_shader 368 alias PFN_vkCmdDrawMeshTasksNV = void function( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ); 369 alias PFN_vkCmdDrawMeshTasksIndirectNV = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ); 370 alias PFN_vkCmdDrawMeshTasksIndirectCountNV = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ); 371 372 // VK_NV_scissor_exclusive 373 alias PFN_vkCmdSetExclusiveScissorNV = void function( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const( VkRect2D )* pExclusiveScissors ); 374 375 // VK_NV_device_diagnostic_checkpoints 376 alias PFN_vkCmdSetCheckpointNV = void function( VkCommandBuffer commandBuffer, const( void )* pCheckpointMarker ); 377 alias PFN_vkGetQueueCheckpointDataNV = void function( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ); 378 } 379 380 381 /// function declarations 382 __gshared { 383 384 // VK_VERSION_1_0 385 PFN_vkCreateInstance vkCreateInstance; 386 PFN_vkDestroyInstance vkDestroyInstance; 387 PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; 388 PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; 389 PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; 390 PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; 391 PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; 392 PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; 393 PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; 394 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; 395 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; 396 PFN_vkCreateDevice vkCreateDevice; 397 PFN_vkDestroyDevice vkDestroyDevice; 398 PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; 399 PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; 400 PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; 401 PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; 402 PFN_vkGetDeviceQueue vkGetDeviceQueue; 403 PFN_vkQueueSubmit vkQueueSubmit; 404 PFN_vkQueueWaitIdle vkQueueWaitIdle; 405 PFN_vkDeviceWaitIdle vkDeviceWaitIdle; 406 PFN_vkAllocateMemory vkAllocateMemory; 407 PFN_vkFreeMemory vkFreeMemory; 408 PFN_vkMapMemory vkMapMemory; 409 PFN_vkUnmapMemory vkUnmapMemory; 410 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 411 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; 412 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; 413 PFN_vkBindBufferMemory vkBindBufferMemory; 414 PFN_vkBindImageMemory vkBindImageMemory; 415 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 416 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; 417 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; 418 PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; 419 PFN_vkQueueBindSparse vkQueueBindSparse; 420 PFN_vkCreateFence vkCreateFence; 421 PFN_vkDestroyFence vkDestroyFence; 422 PFN_vkResetFences vkResetFences; 423 PFN_vkGetFenceStatus vkGetFenceStatus; 424 PFN_vkWaitForFences vkWaitForFences; 425 PFN_vkCreateSemaphore vkCreateSemaphore; 426 PFN_vkDestroySemaphore vkDestroySemaphore; 427 PFN_vkCreateEvent vkCreateEvent; 428 PFN_vkDestroyEvent vkDestroyEvent; 429 PFN_vkGetEventStatus vkGetEventStatus; 430 PFN_vkSetEvent vkSetEvent; 431 PFN_vkResetEvent vkResetEvent; 432 PFN_vkCreateQueryPool vkCreateQueryPool; 433 PFN_vkDestroyQueryPool vkDestroyQueryPool; 434 PFN_vkGetQueryPoolResults vkGetQueryPoolResults; 435 PFN_vkCreateBuffer vkCreateBuffer; 436 PFN_vkDestroyBuffer vkDestroyBuffer; 437 PFN_vkCreateBufferView vkCreateBufferView; 438 PFN_vkDestroyBufferView vkDestroyBufferView; 439 PFN_vkCreateImage vkCreateImage; 440 PFN_vkDestroyImage vkDestroyImage; 441 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; 442 PFN_vkCreateImageView vkCreateImageView; 443 PFN_vkDestroyImageView vkDestroyImageView; 444 PFN_vkCreateShaderModule vkCreateShaderModule; 445 PFN_vkDestroyShaderModule vkDestroyShaderModule; 446 PFN_vkCreatePipelineCache vkCreatePipelineCache; 447 PFN_vkDestroyPipelineCache vkDestroyPipelineCache; 448 PFN_vkGetPipelineCacheData vkGetPipelineCacheData; 449 PFN_vkMergePipelineCaches vkMergePipelineCaches; 450 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; 451 PFN_vkCreateComputePipelines vkCreateComputePipelines; 452 PFN_vkDestroyPipeline vkDestroyPipeline; 453 PFN_vkCreatePipelineLayout vkCreatePipelineLayout; 454 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; 455 PFN_vkCreateSampler vkCreateSampler; 456 PFN_vkDestroySampler vkDestroySampler; 457 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; 458 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; 459 PFN_vkCreateDescriptorPool vkCreateDescriptorPool; 460 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; 461 PFN_vkResetDescriptorPool vkResetDescriptorPool; 462 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; 463 PFN_vkFreeDescriptorSets vkFreeDescriptorSets; 464 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; 465 PFN_vkCreateFramebuffer vkCreateFramebuffer; 466 PFN_vkDestroyFramebuffer vkDestroyFramebuffer; 467 PFN_vkCreateRenderPass vkCreateRenderPass; 468 PFN_vkDestroyRenderPass vkDestroyRenderPass; 469 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; 470 PFN_vkCreateCommandPool vkCreateCommandPool; 471 PFN_vkDestroyCommandPool vkDestroyCommandPool; 472 PFN_vkResetCommandPool vkResetCommandPool; 473 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; 474 PFN_vkFreeCommandBuffers vkFreeCommandBuffers; 475 PFN_vkBeginCommandBuffer vkBeginCommandBuffer; 476 PFN_vkEndCommandBuffer vkEndCommandBuffer; 477 PFN_vkResetCommandBuffer vkResetCommandBuffer; 478 PFN_vkCmdBindPipeline vkCmdBindPipeline; 479 PFN_vkCmdSetViewport vkCmdSetViewport; 480 PFN_vkCmdSetScissor vkCmdSetScissor; 481 PFN_vkCmdSetLineWidth vkCmdSetLineWidth; 482 PFN_vkCmdSetDepthBias vkCmdSetDepthBias; 483 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; 484 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; 485 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; 486 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; 487 PFN_vkCmdSetStencilReference vkCmdSetStencilReference; 488 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; 489 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; 490 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; 491 PFN_vkCmdDraw vkCmdDraw; 492 PFN_vkCmdDrawIndexed vkCmdDrawIndexed; 493 PFN_vkCmdDrawIndirect vkCmdDrawIndirect; 494 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; 495 PFN_vkCmdDispatch vkCmdDispatch; 496 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; 497 PFN_vkCmdCopyBuffer vkCmdCopyBuffer; 498 PFN_vkCmdCopyImage vkCmdCopyImage; 499 PFN_vkCmdBlitImage vkCmdBlitImage; 500 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; 501 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; 502 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; 503 PFN_vkCmdFillBuffer vkCmdFillBuffer; 504 PFN_vkCmdClearColorImage vkCmdClearColorImage; 505 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; 506 PFN_vkCmdClearAttachments vkCmdClearAttachments; 507 PFN_vkCmdResolveImage vkCmdResolveImage; 508 PFN_vkCmdSetEvent vkCmdSetEvent; 509 PFN_vkCmdResetEvent vkCmdResetEvent; 510 PFN_vkCmdWaitEvents vkCmdWaitEvents; 511 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; 512 PFN_vkCmdBeginQuery vkCmdBeginQuery; 513 PFN_vkCmdEndQuery vkCmdEndQuery; 514 PFN_vkCmdResetQueryPool vkCmdResetQueryPool; 515 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; 516 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; 517 PFN_vkCmdPushConstants vkCmdPushConstants; 518 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; 519 PFN_vkCmdNextSubpass vkCmdNextSubpass; 520 PFN_vkCmdEndRenderPass vkCmdEndRenderPass; 521 PFN_vkCmdExecuteCommands vkCmdExecuteCommands; 522 523 // VK_VERSION_1_1 524 PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion; 525 PFN_vkBindBufferMemory2 vkBindBufferMemory2; 526 PFN_vkBindImageMemory2 vkBindImageMemory2; 527 PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; 528 PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; 529 PFN_vkCmdDispatchBase vkCmdDispatchBase; 530 PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; 531 PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; 532 PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; 533 PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; 534 PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; 535 PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; 536 PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; 537 PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; 538 PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; 539 PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; 540 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; 541 PFN_vkTrimCommandPool vkTrimCommandPool; 542 PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; 543 PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; 544 PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; 545 PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; 546 PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; 547 PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; 548 PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; 549 PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; 550 PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; 551 PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; 552 553 // VK_KHR_surface 554 PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; 555 PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; 556 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; 557 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; 558 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; 559 560 // VK_KHR_swapchain 561 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; 562 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; 563 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; 564 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; 565 PFN_vkQueuePresentKHR vkQueuePresentKHR; 566 PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; 567 PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; 568 PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; 569 PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; 570 571 // VK_KHR_display 572 PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; 573 PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; 574 PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; 575 PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; 576 PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; 577 PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; 578 PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; 579 580 // VK_KHR_display_swapchain 581 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; 582 583 // VK_KHR_external_memory_fd 584 PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; 585 PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; 586 587 // VK_KHR_external_semaphore_fd 588 PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; 589 PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; 590 591 // VK_KHR_push_descriptor 592 PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; 593 PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; 594 595 // VK_KHR_create_renderpass2 596 PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; 597 PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; 598 PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; 599 PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; 600 601 // VK_KHR_shared_presentable_image 602 PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; 603 604 // VK_KHR_external_fence_fd 605 PFN_vkImportFenceFdKHR vkImportFenceFdKHR; 606 PFN_vkGetFenceFdKHR vkGetFenceFdKHR; 607 608 // VK_KHR_get_surface_capabilities2 609 PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; 610 PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; 611 612 // VK_KHR_get_display_properties2 613 PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; 614 PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; 615 PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; 616 PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; 617 618 // VK_KHR_draw_indirect_count 619 PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; 620 PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; 621 622 // VK_EXT_debug_report 623 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; 624 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; 625 PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; 626 627 // VK_EXT_debug_marker 628 PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; 629 PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; 630 PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; 631 PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; 632 PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; 633 634 // VK_AMD_draw_indirect_count 635 PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; 636 PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; 637 638 // VK_AMD_shader_info 639 PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; 640 641 // VK_NV_external_memory_capabilities 642 PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; 643 644 // VK_EXT_conditional_rendering 645 PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; 646 PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; 647 648 // VK_NVX_device_generated_commands 649 PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX; 650 PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX; 651 PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX; 652 PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX; 653 PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX; 654 PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX; 655 PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX; 656 PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX; 657 PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX; 658 659 // VK_NV_clip_space_w_scaling 660 PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; 661 662 // VK_EXT_direct_mode_display 663 PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; 664 665 // VK_EXT_display_surface_counter 666 PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; 667 668 // VK_EXT_display_control 669 PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; 670 PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; 671 PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; 672 PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; 673 674 // VK_GOOGLE_display_timing 675 PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; 676 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; 677 678 // VK_EXT_discard_rectangles 679 PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; 680 681 // VK_EXT_hdr_metadata 682 PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; 683 684 // VK_EXT_debug_utils 685 PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; 686 PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; 687 PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; 688 PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; 689 PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; 690 PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; 691 PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; 692 PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; 693 PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; 694 PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; 695 PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; 696 697 // VK_EXT_sample_locations 698 PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; 699 PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; 700 701 // VK_EXT_validation_cache 702 PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; 703 PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; 704 PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; 705 PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; 706 707 // VK_NV_shading_rate_image 708 PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; 709 PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; 710 PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; 711 712 // VK_NVX_raytracing 713 PFN_vkCreateAccelerationStructureNVX vkCreateAccelerationStructureNVX; 714 PFN_vkDestroyAccelerationStructureNVX vkDestroyAccelerationStructureNVX; 715 PFN_vkGetAccelerationStructureMemoryRequirementsNVX vkGetAccelerationStructureMemoryRequirementsNVX; 716 PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX vkGetAccelerationStructureScratchMemoryRequirementsNVX; 717 PFN_vkBindAccelerationStructureMemoryNVX vkBindAccelerationStructureMemoryNVX; 718 PFN_vkCmdBuildAccelerationStructureNVX vkCmdBuildAccelerationStructureNVX; 719 PFN_vkCmdCopyAccelerationStructureNVX vkCmdCopyAccelerationStructureNVX; 720 PFN_vkCmdTraceRaysNVX vkCmdTraceRaysNVX; 721 PFN_vkCreateRaytracingPipelinesNVX vkCreateRaytracingPipelinesNVX; 722 PFN_vkGetRaytracingShaderHandlesNVX vkGetRaytracingShaderHandlesNVX; 723 PFN_vkGetAccelerationStructureHandleNVX vkGetAccelerationStructureHandleNVX; 724 PFN_vkCmdWriteAccelerationStructurePropertiesNVX vkCmdWriteAccelerationStructurePropertiesNVX; 725 PFN_vkCompileDeferredNVX vkCompileDeferredNVX; 726 727 // VK_EXT_external_memory_host 728 PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; 729 730 // VK_AMD_buffer_marker 731 PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; 732 733 // VK_NV_mesh_shader 734 PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; 735 PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; 736 PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; 737 738 // VK_NV_scissor_exclusive 739 PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; 740 741 // VK_NV_device_diagnostic_checkpoints 742 PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; 743 PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; 744 745 // VK_KHR_get_physical_device_properties2 746 alias vkGetPhysicalDeviceFeatures2KHR = vkGetPhysicalDeviceFeatures2; 747 alias vkGetPhysicalDeviceProperties2KHR = vkGetPhysicalDeviceProperties2; 748 alias vkGetPhysicalDeviceFormatProperties2KHR = vkGetPhysicalDeviceFormatProperties2; 749 alias vkGetPhysicalDeviceImageFormatProperties2KHR = vkGetPhysicalDeviceImageFormatProperties2; 750 alias vkGetPhysicalDeviceQueueFamilyProperties2KHR = vkGetPhysicalDeviceQueueFamilyProperties2; 751 alias vkGetPhysicalDeviceMemoryProperties2KHR = vkGetPhysicalDeviceMemoryProperties2; 752 alias vkGetPhysicalDeviceSparseImageFormatProperties2KHR = vkGetPhysicalDeviceSparseImageFormatProperties2; 753 754 // VK_KHR_device_group 755 alias vkGetDeviceGroupPeerMemoryFeaturesKHR = vkGetDeviceGroupPeerMemoryFeatures; 756 alias vkCmdSetDeviceMaskKHR = vkCmdSetDeviceMask; 757 alias vkCmdDispatchBaseKHR = vkCmdDispatchBase; 758 759 // VK_KHR_maintenance1 760 alias vkTrimCommandPoolKHR = vkTrimCommandPool; 761 762 // VK_KHR_device_group_creation 763 alias vkEnumeratePhysicalDeviceGroupsKHR = vkEnumeratePhysicalDeviceGroups; 764 765 // VK_KHR_external_memory_capabilities 766 alias vkGetPhysicalDeviceExternalBufferPropertiesKHR = vkGetPhysicalDeviceExternalBufferProperties; 767 768 // VK_KHR_external_semaphore_capabilities 769 alias vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = vkGetPhysicalDeviceExternalSemaphoreProperties; 770 771 // VK_KHR_descriptor_update_template 772 alias vkCreateDescriptorUpdateTemplateKHR = vkCreateDescriptorUpdateTemplate; 773 alias vkDestroyDescriptorUpdateTemplateKHR = vkDestroyDescriptorUpdateTemplate; 774 alias vkUpdateDescriptorSetWithTemplateKHR = vkUpdateDescriptorSetWithTemplate; 775 776 // VK_KHR_external_fence_capabilities 777 alias vkGetPhysicalDeviceExternalFencePropertiesKHR = vkGetPhysicalDeviceExternalFenceProperties; 778 779 // VK_KHR_get_memory_requirements2 780 alias vkGetImageMemoryRequirements2KHR = vkGetImageMemoryRequirements2; 781 alias vkGetBufferMemoryRequirements2KHR = vkGetBufferMemoryRequirements2; 782 alias vkGetImageSparseMemoryRequirements2KHR = vkGetImageSparseMemoryRequirements2; 783 784 // VK_KHR_sampler_ycbcr_conversion 785 alias vkCreateSamplerYcbcrConversionKHR = vkCreateSamplerYcbcrConversion; 786 alias vkDestroySamplerYcbcrConversionKHR = vkDestroySamplerYcbcrConversion; 787 788 // VK_KHR_bind_memory2 789 alias vkBindBufferMemory2KHR = vkBindBufferMemory2; 790 alias vkBindImageMemory2KHR = vkBindImageMemory2; 791 792 // VK_KHR_maintenance3 793 alias vkGetDescriptorSetLayoutSupportKHR = vkGetDescriptorSetLayoutSupport; 794 } 795 796 797 /// sets vkCreateInstance function pointer and acquires basic functions to retrieve information about the implementation 798 /// and create an instance: vkEnumerateInstanceExtensionProperties, vkEnumerateInstanceLayerProperties, vkCreateInstance 799 void loadGlobalLevelFunctions( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) { 800 vkGetInstanceProcAddr = getInstanceProcAddr; 801 802 // VK_VERSION_1_0 803 vkCreateInstance = cast( PFN_vkCreateInstance ) vkGetInstanceProcAddr( null, "vkCreateInstance" ); 804 vkEnumerateInstanceExtensionProperties = cast( PFN_vkEnumerateInstanceExtensionProperties ) vkGetInstanceProcAddr( null, "vkEnumerateInstanceExtensionProperties" ); 805 vkEnumerateInstanceLayerProperties = cast( PFN_vkEnumerateInstanceLayerProperties ) vkGetInstanceProcAddr( null, "vkEnumerateInstanceLayerProperties" ); 806 807 // VK_VERSION_1_1 808 vkEnumerateInstanceVersion = cast( PFN_vkEnumerateInstanceVersion ) vkGetInstanceProcAddr( null, "vkEnumerateInstanceVersion" ); 809 } 810 811 812 /// with a valid VkInstance call this function to retrieve additional VkInstance, VkPhysicalDevice, ... related functions 813 void loadInstanceLevelFunctions( VkInstance instance ) { 814 assert( vkGetInstanceProcAddr !is null, "Function pointer vkGetInstanceProcAddr is null!\nCall loadGlobalLevelFunctions -> loadInstanceLevelFunctions" ); 815 816 // VK_VERSION_1_0 817 vkDestroyInstance = cast( PFN_vkDestroyInstance ) vkGetInstanceProcAddr( instance, "vkDestroyInstance" ); 818 vkEnumeratePhysicalDevices = cast( PFN_vkEnumeratePhysicalDevices ) vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ); 819 vkGetPhysicalDeviceFeatures = cast( PFN_vkGetPhysicalDeviceFeatures ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ); 820 vkGetPhysicalDeviceFormatProperties = cast( PFN_vkGetPhysicalDeviceFormatProperties ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ); 821 vkGetPhysicalDeviceImageFormatProperties = cast( PFN_vkGetPhysicalDeviceImageFormatProperties ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ); 822 vkGetPhysicalDeviceProperties = cast( PFN_vkGetPhysicalDeviceProperties ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ); 823 vkGetPhysicalDeviceQueueFamilyProperties = cast( PFN_vkGetPhysicalDeviceQueueFamilyProperties ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ); 824 vkGetPhysicalDeviceMemoryProperties = cast( PFN_vkGetPhysicalDeviceMemoryProperties ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ); 825 vkGetDeviceProcAddr = cast( PFN_vkGetDeviceProcAddr ) vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ); 826 vkCreateDevice = cast( PFN_vkCreateDevice ) vkGetInstanceProcAddr( instance, "vkCreateDevice" ); 827 vkEnumerateDeviceExtensionProperties = cast( PFN_vkEnumerateDeviceExtensionProperties ) vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ); 828 vkEnumerateDeviceLayerProperties = cast( PFN_vkEnumerateDeviceLayerProperties ) vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ); 829 vkGetPhysicalDeviceSparseImageFormatProperties = cast( PFN_vkGetPhysicalDeviceSparseImageFormatProperties ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ); 830 831 // VK_VERSION_1_1 832 vkEnumeratePhysicalDeviceGroups = cast( PFN_vkEnumeratePhysicalDeviceGroups ) vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ); 833 vkGetPhysicalDeviceFeatures2 = cast( PFN_vkGetPhysicalDeviceFeatures2 ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ); 834 vkGetPhysicalDeviceProperties2 = cast( PFN_vkGetPhysicalDeviceProperties2 ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ); 835 vkGetPhysicalDeviceFormatProperties2 = cast( PFN_vkGetPhysicalDeviceFormatProperties2 ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ); 836 vkGetPhysicalDeviceImageFormatProperties2 = cast( PFN_vkGetPhysicalDeviceImageFormatProperties2 ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ); 837 vkGetPhysicalDeviceQueueFamilyProperties2 = cast( PFN_vkGetPhysicalDeviceQueueFamilyProperties2 ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ); 838 vkGetPhysicalDeviceMemoryProperties2 = cast( PFN_vkGetPhysicalDeviceMemoryProperties2 ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ); 839 vkGetPhysicalDeviceSparseImageFormatProperties2 = cast( PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ); 840 vkGetPhysicalDeviceExternalBufferProperties = cast( PFN_vkGetPhysicalDeviceExternalBufferProperties ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ); 841 vkGetPhysicalDeviceExternalFenceProperties = cast( PFN_vkGetPhysicalDeviceExternalFenceProperties ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ); 842 vkGetPhysicalDeviceExternalSemaphoreProperties = cast( PFN_vkGetPhysicalDeviceExternalSemaphoreProperties ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ); 843 844 // VK_KHR_surface 845 vkDestroySurfaceKHR = cast( PFN_vkDestroySurfaceKHR ) vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ); 846 vkGetPhysicalDeviceSurfaceSupportKHR = cast( PFN_vkGetPhysicalDeviceSurfaceSupportKHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ); 847 vkGetPhysicalDeviceSurfaceCapabilitiesKHR = cast( PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ); 848 vkGetPhysicalDeviceSurfaceFormatsKHR = cast( PFN_vkGetPhysicalDeviceSurfaceFormatsKHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ); 849 vkGetPhysicalDeviceSurfacePresentModesKHR = cast( PFN_vkGetPhysicalDeviceSurfacePresentModesKHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ); 850 851 // VK_KHR_swapchain 852 vkGetPhysicalDevicePresentRectanglesKHR = cast( PFN_vkGetPhysicalDevicePresentRectanglesKHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ); 853 854 // VK_KHR_display 855 vkGetPhysicalDeviceDisplayPropertiesKHR = cast( PFN_vkGetPhysicalDeviceDisplayPropertiesKHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ); 856 vkGetPhysicalDeviceDisplayPlanePropertiesKHR = cast( PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ); 857 vkGetDisplayPlaneSupportedDisplaysKHR = cast( PFN_vkGetDisplayPlaneSupportedDisplaysKHR ) vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ); 858 vkGetDisplayModePropertiesKHR = cast( PFN_vkGetDisplayModePropertiesKHR ) vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ); 859 vkCreateDisplayModeKHR = cast( PFN_vkCreateDisplayModeKHR ) vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ); 860 vkGetDisplayPlaneCapabilitiesKHR = cast( PFN_vkGetDisplayPlaneCapabilitiesKHR ) vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ); 861 vkCreateDisplayPlaneSurfaceKHR = cast( PFN_vkCreateDisplayPlaneSurfaceKHR ) vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ); 862 863 // VK_KHR_get_surface_capabilities2 864 vkGetPhysicalDeviceSurfaceCapabilities2KHR = cast( PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ); 865 vkGetPhysicalDeviceSurfaceFormats2KHR = cast( PFN_vkGetPhysicalDeviceSurfaceFormats2KHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ); 866 867 // VK_KHR_get_display_properties2 868 vkGetPhysicalDeviceDisplayProperties2KHR = cast( PFN_vkGetPhysicalDeviceDisplayProperties2KHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ); 869 vkGetPhysicalDeviceDisplayPlaneProperties2KHR = cast( PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ); 870 vkGetDisplayModeProperties2KHR = cast( PFN_vkGetDisplayModeProperties2KHR ) vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ); 871 vkGetDisplayPlaneCapabilities2KHR = cast( PFN_vkGetDisplayPlaneCapabilities2KHR ) vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ); 872 873 // VK_EXT_debug_report 874 vkCreateDebugReportCallbackEXT = cast( PFN_vkCreateDebugReportCallbackEXT ) vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ); 875 vkDestroyDebugReportCallbackEXT = cast( PFN_vkDestroyDebugReportCallbackEXT ) vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ); 876 vkDebugReportMessageEXT = cast( PFN_vkDebugReportMessageEXT ) vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ); 877 878 // VK_NV_external_memory_capabilities 879 vkGetPhysicalDeviceExternalImageFormatPropertiesNV = cast( PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ); 880 881 // VK_NVX_device_generated_commands 882 vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = cast( PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX" ); 883 884 // VK_EXT_direct_mode_display 885 vkReleaseDisplayEXT = cast( PFN_vkReleaseDisplayEXT ) vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ); 886 887 // VK_EXT_display_surface_counter 888 vkGetPhysicalDeviceSurfaceCapabilities2EXT = cast( PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ); 889 890 // VK_EXT_debug_utils 891 vkCreateDebugUtilsMessengerEXT = cast( PFN_vkCreateDebugUtilsMessengerEXT ) vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ); 892 vkDestroyDebugUtilsMessengerEXT = cast( PFN_vkDestroyDebugUtilsMessengerEXT ) vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ); 893 vkSubmitDebugUtilsMessageEXT = cast( PFN_vkSubmitDebugUtilsMessageEXT ) vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ); 894 895 // VK_EXT_sample_locations 896 vkGetPhysicalDeviceMultisamplePropertiesEXT = cast( PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT ) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ); 897 } 898 899 900 /// with a valid VkInstance call this function to retrieve VkDevice, VkQueue and VkCommandBuffer related functions 901 /// the functions call indirectly through the VkInstance and will be internally dispatched by the implementation 902 /// use loadDeviceLevelFunctions( VkDevice device ) bellow to avoid this indirection and get the pointers directly form a VkDevice 903 void loadDeviceLevelFunctions( VkInstance instance ) { 904 assert( vkGetInstanceProcAddr !is null, "Function pointer vkGetInstanceProcAddr is null!\nCall loadGlobalLevelFunctions -> loadDeviceLevelFunctions( instance )" ); 905 906 // VK_VERSION_1_0 907 vkDestroyDevice = cast( PFN_vkDestroyDevice ) vkGetInstanceProcAddr( instance, "vkDestroyDevice" ); 908 vkGetDeviceQueue = cast( PFN_vkGetDeviceQueue ) vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ); 909 vkQueueSubmit = cast( PFN_vkQueueSubmit ) vkGetInstanceProcAddr( instance, "vkQueueSubmit" ); 910 vkQueueWaitIdle = cast( PFN_vkQueueWaitIdle ) vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ); 911 vkDeviceWaitIdle = cast( PFN_vkDeviceWaitIdle ) vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ); 912 vkAllocateMemory = cast( PFN_vkAllocateMemory ) vkGetInstanceProcAddr( instance, "vkAllocateMemory" ); 913 vkFreeMemory = cast( PFN_vkFreeMemory ) vkGetInstanceProcAddr( instance, "vkFreeMemory" ); 914 vkMapMemory = cast( PFN_vkMapMemory ) vkGetInstanceProcAddr( instance, "vkMapMemory" ); 915 vkUnmapMemory = cast( PFN_vkUnmapMemory ) vkGetInstanceProcAddr( instance, "vkUnmapMemory" ); 916 vkFlushMappedMemoryRanges = cast( PFN_vkFlushMappedMemoryRanges ) vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ); 917 vkInvalidateMappedMemoryRanges = cast( PFN_vkInvalidateMappedMemoryRanges ) vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ); 918 vkGetDeviceMemoryCommitment = cast( PFN_vkGetDeviceMemoryCommitment ) vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ); 919 vkBindBufferMemory = cast( PFN_vkBindBufferMemory ) vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ); 920 vkBindImageMemory = cast( PFN_vkBindImageMemory ) vkGetInstanceProcAddr( instance, "vkBindImageMemory" ); 921 vkGetBufferMemoryRequirements = cast( PFN_vkGetBufferMemoryRequirements ) vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ); 922 vkGetImageMemoryRequirements = cast( PFN_vkGetImageMemoryRequirements ) vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ); 923 vkGetImageSparseMemoryRequirements = cast( PFN_vkGetImageSparseMemoryRequirements ) vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ); 924 vkQueueBindSparse = cast( PFN_vkQueueBindSparse ) vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ); 925 vkCreateFence = cast( PFN_vkCreateFence ) vkGetInstanceProcAddr( instance, "vkCreateFence" ); 926 vkDestroyFence = cast( PFN_vkDestroyFence ) vkGetInstanceProcAddr( instance, "vkDestroyFence" ); 927 vkResetFences = cast( PFN_vkResetFences ) vkGetInstanceProcAddr( instance, "vkResetFences" ); 928 vkGetFenceStatus = cast( PFN_vkGetFenceStatus ) vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ); 929 vkWaitForFences = cast( PFN_vkWaitForFences ) vkGetInstanceProcAddr( instance, "vkWaitForFences" ); 930 vkCreateSemaphore = cast( PFN_vkCreateSemaphore ) vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ); 931 vkDestroySemaphore = cast( PFN_vkDestroySemaphore ) vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ); 932 vkCreateEvent = cast( PFN_vkCreateEvent ) vkGetInstanceProcAddr( instance, "vkCreateEvent" ); 933 vkDestroyEvent = cast( PFN_vkDestroyEvent ) vkGetInstanceProcAddr( instance, "vkDestroyEvent" ); 934 vkGetEventStatus = cast( PFN_vkGetEventStatus ) vkGetInstanceProcAddr( instance, "vkGetEventStatus" ); 935 vkSetEvent = cast( PFN_vkSetEvent ) vkGetInstanceProcAddr( instance, "vkSetEvent" ); 936 vkResetEvent = cast( PFN_vkResetEvent ) vkGetInstanceProcAddr( instance, "vkResetEvent" ); 937 vkCreateQueryPool = cast( PFN_vkCreateQueryPool ) vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ); 938 vkDestroyQueryPool = cast( PFN_vkDestroyQueryPool ) vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ); 939 vkGetQueryPoolResults = cast( PFN_vkGetQueryPoolResults ) vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ); 940 vkCreateBuffer = cast( PFN_vkCreateBuffer ) vkGetInstanceProcAddr( instance, "vkCreateBuffer" ); 941 vkDestroyBuffer = cast( PFN_vkDestroyBuffer ) vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ); 942 vkCreateBufferView = cast( PFN_vkCreateBufferView ) vkGetInstanceProcAddr( instance, "vkCreateBufferView" ); 943 vkDestroyBufferView = cast( PFN_vkDestroyBufferView ) vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ); 944 vkCreateImage = cast( PFN_vkCreateImage ) vkGetInstanceProcAddr( instance, "vkCreateImage" ); 945 vkDestroyImage = cast( PFN_vkDestroyImage ) vkGetInstanceProcAddr( instance, "vkDestroyImage" ); 946 vkGetImageSubresourceLayout = cast( PFN_vkGetImageSubresourceLayout ) vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ); 947 vkCreateImageView = cast( PFN_vkCreateImageView ) vkGetInstanceProcAddr( instance, "vkCreateImageView" ); 948 vkDestroyImageView = cast( PFN_vkDestroyImageView ) vkGetInstanceProcAddr( instance, "vkDestroyImageView" ); 949 vkCreateShaderModule = cast( PFN_vkCreateShaderModule ) vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ); 950 vkDestroyShaderModule = cast( PFN_vkDestroyShaderModule ) vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ); 951 vkCreatePipelineCache = cast( PFN_vkCreatePipelineCache ) vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ); 952 vkDestroyPipelineCache = cast( PFN_vkDestroyPipelineCache ) vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ); 953 vkGetPipelineCacheData = cast( PFN_vkGetPipelineCacheData ) vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ); 954 vkMergePipelineCaches = cast( PFN_vkMergePipelineCaches ) vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ); 955 vkCreateGraphicsPipelines = cast( PFN_vkCreateGraphicsPipelines ) vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ); 956 vkCreateComputePipelines = cast( PFN_vkCreateComputePipelines ) vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ); 957 vkDestroyPipeline = cast( PFN_vkDestroyPipeline ) vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ); 958 vkCreatePipelineLayout = cast( PFN_vkCreatePipelineLayout ) vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ); 959 vkDestroyPipelineLayout = cast( PFN_vkDestroyPipelineLayout ) vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ); 960 vkCreateSampler = cast( PFN_vkCreateSampler ) vkGetInstanceProcAddr( instance, "vkCreateSampler" ); 961 vkDestroySampler = cast( PFN_vkDestroySampler ) vkGetInstanceProcAddr( instance, "vkDestroySampler" ); 962 vkCreateDescriptorSetLayout = cast( PFN_vkCreateDescriptorSetLayout ) vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ); 963 vkDestroyDescriptorSetLayout = cast( PFN_vkDestroyDescriptorSetLayout ) vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ); 964 vkCreateDescriptorPool = cast( PFN_vkCreateDescriptorPool ) vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ); 965 vkDestroyDescriptorPool = cast( PFN_vkDestroyDescriptorPool ) vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ); 966 vkResetDescriptorPool = cast( PFN_vkResetDescriptorPool ) vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ); 967 vkAllocateDescriptorSets = cast( PFN_vkAllocateDescriptorSets ) vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ); 968 vkFreeDescriptorSets = cast( PFN_vkFreeDescriptorSets ) vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ); 969 vkUpdateDescriptorSets = cast( PFN_vkUpdateDescriptorSets ) vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ); 970 vkCreateFramebuffer = cast( PFN_vkCreateFramebuffer ) vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ); 971 vkDestroyFramebuffer = cast( PFN_vkDestroyFramebuffer ) vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ); 972 vkCreateRenderPass = cast( PFN_vkCreateRenderPass ) vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ); 973 vkDestroyRenderPass = cast( PFN_vkDestroyRenderPass ) vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ); 974 vkGetRenderAreaGranularity = cast( PFN_vkGetRenderAreaGranularity ) vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ); 975 vkCreateCommandPool = cast( PFN_vkCreateCommandPool ) vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ); 976 vkDestroyCommandPool = cast( PFN_vkDestroyCommandPool ) vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ); 977 vkResetCommandPool = cast( PFN_vkResetCommandPool ) vkGetInstanceProcAddr( instance, "vkResetCommandPool" ); 978 vkAllocateCommandBuffers = cast( PFN_vkAllocateCommandBuffers ) vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ); 979 vkFreeCommandBuffers = cast( PFN_vkFreeCommandBuffers ) vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ); 980 vkBeginCommandBuffer = cast( PFN_vkBeginCommandBuffer ) vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ); 981 vkEndCommandBuffer = cast( PFN_vkEndCommandBuffer ) vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ); 982 vkResetCommandBuffer = cast( PFN_vkResetCommandBuffer ) vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ); 983 vkCmdBindPipeline = cast( PFN_vkCmdBindPipeline ) vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ); 984 vkCmdSetViewport = cast( PFN_vkCmdSetViewport ) vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ); 985 vkCmdSetScissor = cast( PFN_vkCmdSetScissor ) vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ); 986 vkCmdSetLineWidth = cast( PFN_vkCmdSetLineWidth ) vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ); 987 vkCmdSetDepthBias = cast( PFN_vkCmdSetDepthBias ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ); 988 vkCmdSetBlendConstants = cast( PFN_vkCmdSetBlendConstants ) vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ); 989 vkCmdSetDepthBounds = cast( PFN_vkCmdSetDepthBounds ) vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ); 990 vkCmdSetStencilCompareMask = cast( PFN_vkCmdSetStencilCompareMask ) vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ); 991 vkCmdSetStencilWriteMask = cast( PFN_vkCmdSetStencilWriteMask ) vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ); 992 vkCmdSetStencilReference = cast( PFN_vkCmdSetStencilReference ) vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ); 993 vkCmdBindDescriptorSets = cast( PFN_vkCmdBindDescriptorSets ) vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ); 994 vkCmdBindIndexBuffer = cast( PFN_vkCmdBindIndexBuffer ) vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ); 995 vkCmdBindVertexBuffers = cast( PFN_vkCmdBindVertexBuffers ) vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ); 996 vkCmdDraw = cast( PFN_vkCmdDraw ) vkGetInstanceProcAddr( instance, "vkCmdDraw" ); 997 vkCmdDrawIndexed = cast( PFN_vkCmdDrawIndexed ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ); 998 vkCmdDrawIndirect = cast( PFN_vkCmdDrawIndirect ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ); 999 vkCmdDrawIndexedIndirect = cast( PFN_vkCmdDrawIndexedIndirect ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ); 1000 vkCmdDispatch = cast( PFN_vkCmdDispatch ) vkGetInstanceProcAddr( instance, "vkCmdDispatch" ); 1001 vkCmdDispatchIndirect = cast( PFN_vkCmdDispatchIndirect ) vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ); 1002 vkCmdCopyBuffer = cast( PFN_vkCmdCopyBuffer ) vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ); 1003 vkCmdCopyImage = cast( PFN_vkCmdCopyImage ) vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ); 1004 vkCmdBlitImage = cast( PFN_vkCmdBlitImage ) vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ); 1005 vkCmdCopyBufferToImage = cast( PFN_vkCmdCopyBufferToImage ) vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ); 1006 vkCmdCopyImageToBuffer = cast( PFN_vkCmdCopyImageToBuffer ) vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ); 1007 vkCmdUpdateBuffer = cast( PFN_vkCmdUpdateBuffer ) vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ); 1008 vkCmdFillBuffer = cast( PFN_vkCmdFillBuffer ) vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ); 1009 vkCmdClearColorImage = cast( PFN_vkCmdClearColorImage ) vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ); 1010 vkCmdClearDepthStencilImage = cast( PFN_vkCmdClearDepthStencilImage ) vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ); 1011 vkCmdClearAttachments = cast( PFN_vkCmdClearAttachments ) vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ); 1012 vkCmdResolveImage = cast( PFN_vkCmdResolveImage ) vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ); 1013 vkCmdSetEvent = cast( PFN_vkCmdSetEvent ) vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ); 1014 vkCmdResetEvent = cast( PFN_vkCmdResetEvent ) vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ); 1015 vkCmdWaitEvents = cast( PFN_vkCmdWaitEvents ) vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ); 1016 vkCmdPipelineBarrier = cast( PFN_vkCmdPipelineBarrier ) vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ); 1017 vkCmdBeginQuery = cast( PFN_vkCmdBeginQuery ) vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ); 1018 vkCmdEndQuery = cast( PFN_vkCmdEndQuery ) vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ); 1019 vkCmdResetQueryPool = cast( PFN_vkCmdResetQueryPool ) vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ); 1020 vkCmdWriteTimestamp = cast( PFN_vkCmdWriteTimestamp ) vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ); 1021 vkCmdCopyQueryPoolResults = cast( PFN_vkCmdCopyQueryPoolResults ) vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ); 1022 vkCmdPushConstants = cast( PFN_vkCmdPushConstants ) vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ); 1023 vkCmdBeginRenderPass = cast( PFN_vkCmdBeginRenderPass ) vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ); 1024 vkCmdNextSubpass = cast( PFN_vkCmdNextSubpass ) vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ); 1025 vkCmdEndRenderPass = cast( PFN_vkCmdEndRenderPass ) vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ); 1026 vkCmdExecuteCommands = cast( PFN_vkCmdExecuteCommands ) vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ); 1027 1028 // VK_VERSION_1_1 1029 vkBindBufferMemory2 = cast( PFN_vkBindBufferMemory2 ) vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ); 1030 vkBindImageMemory2 = cast( PFN_vkBindImageMemory2 ) vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ); 1031 vkGetDeviceGroupPeerMemoryFeatures = cast( PFN_vkGetDeviceGroupPeerMemoryFeatures ) vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ); 1032 vkCmdSetDeviceMask = cast( PFN_vkCmdSetDeviceMask ) vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ); 1033 vkCmdDispatchBase = cast( PFN_vkCmdDispatchBase ) vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ); 1034 vkGetImageMemoryRequirements2 = cast( PFN_vkGetImageMemoryRequirements2 ) vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ); 1035 vkGetBufferMemoryRequirements2 = cast( PFN_vkGetBufferMemoryRequirements2 ) vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ); 1036 vkGetImageSparseMemoryRequirements2 = cast( PFN_vkGetImageSparseMemoryRequirements2 ) vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ); 1037 vkTrimCommandPool = cast( PFN_vkTrimCommandPool ) vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ); 1038 vkGetDeviceQueue2 = cast( PFN_vkGetDeviceQueue2 ) vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ); 1039 vkCreateSamplerYcbcrConversion = cast( PFN_vkCreateSamplerYcbcrConversion ) vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ); 1040 vkDestroySamplerYcbcrConversion = cast( PFN_vkDestroySamplerYcbcrConversion ) vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ); 1041 vkCreateDescriptorUpdateTemplate = cast( PFN_vkCreateDescriptorUpdateTemplate ) vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ); 1042 vkDestroyDescriptorUpdateTemplate = cast( PFN_vkDestroyDescriptorUpdateTemplate ) vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ); 1043 vkUpdateDescriptorSetWithTemplate = cast( PFN_vkUpdateDescriptorSetWithTemplate ) vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ); 1044 vkGetDescriptorSetLayoutSupport = cast( PFN_vkGetDescriptorSetLayoutSupport ) vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ); 1045 1046 // VK_KHR_swapchain 1047 vkCreateSwapchainKHR = cast( PFN_vkCreateSwapchainKHR ) vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ); 1048 vkDestroySwapchainKHR = cast( PFN_vkDestroySwapchainKHR ) vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ); 1049 vkGetSwapchainImagesKHR = cast( PFN_vkGetSwapchainImagesKHR ) vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ); 1050 vkAcquireNextImageKHR = cast( PFN_vkAcquireNextImageKHR ) vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ); 1051 vkQueuePresentKHR = cast( PFN_vkQueuePresentKHR ) vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ); 1052 vkGetDeviceGroupPresentCapabilitiesKHR = cast( PFN_vkGetDeviceGroupPresentCapabilitiesKHR ) vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ); 1053 vkGetDeviceGroupSurfacePresentModesKHR = cast( PFN_vkGetDeviceGroupSurfacePresentModesKHR ) vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ); 1054 vkAcquireNextImage2KHR = cast( PFN_vkAcquireNextImage2KHR ) vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ); 1055 1056 // VK_KHR_display_swapchain 1057 vkCreateSharedSwapchainsKHR = cast( PFN_vkCreateSharedSwapchainsKHR ) vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ); 1058 1059 // VK_KHR_external_memory_fd 1060 vkGetMemoryFdKHR = cast( PFN_vkGetMemoryFdKHR ) vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ); 1061 vkGetMemoryFdPropertiesKHR = cast( PFN_vkGetMemoryFdPropertiesKHR ) vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ); 1062 1063 // VK_KHR_external_semaphore_fd 1064 vkImportSemaphoreFdKHR = cast( PFN_vkImportSemaphoreFdKHR ) vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ); 1065 vkGetSemaphoreFdKHR = cast( PFN_vkGetSemaphoreFdKHR ) vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ); 1066 1067 // VK_KHR_push_descriptor 1068 vkCmdPushDescriptorSetKHR = cast( PFN_vkCmdPushDescriptorSetKHR ) vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ); 1069 vkCmdPushDescriptorSetWithTemplateKHR = cast( PFN_vkCmdPushDescriptorSetWithTemplateKHR ) vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ); 1070 1071 // VK_KHR_create_renderpass2 1072 vkCreateRenderPass2KHR = cast( PFN_vkCreateRenderPass2KHR ) vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ); 1073 vkCmdBeginRenderPass2KHR = cast( PFN_vkCmdBeginRenderPass2KHR ) vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ); 1074 vkCmdNextSubpass2KHR = cast( PFN_vkCmdNextSubpass2KHR ) vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ); 1075 vkCmdEndRenderPass2KHR = cast( PFN_vkCmdEndRenderPass2KHR ) vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ); 1076 1077 // VK_KHR_shared_presentable_image 1078 vkGetSwapchainStatusKHR = cast( PFN_vkGetSwapchainStatusKHR ) vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ); 1079 1080 // VK_KHR_external_fence_fd 1081 vkImportFenceFdKHR = cast( PFN_vkImportFenceFdKHR ) vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ); 1082 vkGetFenceFdKHR = cast( PFN_vkGetFenceFdKHR ) vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ); 1083 1084 // VK_KHR_draw_indirect_count 1085 vkCmdDrawIndirectCountKHR = cast( PFN_vkCmdDrawIndirectCountKHR ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ); 1086 vkCmdDrawIndexedIndirectCountKHR = cast( PFN_vkCmdDrawIndexedIndirectCountKHR ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ); 1087 1088 // VK_EXT_debug_marker 1089 vkDebugMarkerSetObjectTagEXT = cast( PFN_vkDebugMarkerSetObjectTagEXT ) vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ); 1090 vkDebugMarkerSetObjectNameEXT = cast( PFN_vkDebugMarkerSetObjectNameEXT ) vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ); 1091 vkCmdDebugMarkerBeginEXT = cast( PFN_vkCmdDebugMarkerBeginEXT ) vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ); 1092 vkCmdDebugMarkerEndEXT = cast( PFN_vkCmdDebugMarkerEndEXT ) vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ); 1093 vkCmdDebugMarkerInsertEXT = cast( PFN_vkCmdDebugMarkerInsertEXT ) vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ); 1094 1095 // VK_AMD_draw_indirect_count 1096 vkCmdDrawIndirectCountAMD = cast( PFN_vkCmdDrawIndirectCountAMD ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ); 1097 vkCmdDrawIndexedIndirectCountAMD = cast( PFN_vkCmdDrawIndexedIndirectCountAMD ) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ); 1098 1099 // VK_AMD_shader_info 1100 vkGetShaderInfoAMD = cast( PFN_vkGetShaderInfoAMD ) vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ); 1101 1102 // VK_EXT_conditional_rendering 1103 vkCmdBeginConditionalRenderingEXT = cast( PFN_vkCmdBeginConditionalRenderingEXT ) vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ); 1104 vkCmdEndConditionalRenderingEXT = cast( PFN_vkCmdEndConditionalRenderingEXT ) vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ); 1105 1106 // VK_NVX_device_generated_commands 1107 vkCmdProcessCommandsNVX = cast( PFN_vkCmdProcessCommandsNVX ) vkGetInstanceProcAddr( instance, "vkCmdProcessCommandsNVX" ); 1108 vkCmdReserveSpaceForCommandsNVX = cast( PFN_vkCmdReserveSpaceForCommandsNVX ) vkGetInstanceProcAddr( instance, "vkCmdReserveSpaceForCommandsNVX" ); 1109 vkCreateIndirectCommandsLayoutNVX = cast( PFN_vkCreateIndirectCommandsLayoutNVX ) vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNVX" ); 1110 vkDestroyIndirectCommandsLayoutNVX = cast( PFN_vkDestroyIndirectCommandsLayoutNVX ) vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNVX" ); 1111 vkCreateObjectTableNVX = cast( PFN_vkCreateObjectTableNVX ) vkGetInstanceProcAddr( instance, "vkCreateObjectTableNVX" ); 1112 vkDestroyObjectTableNVX = cast( PFN_vkDestroyObjectTableNVX ) vkGetInstanceProcAddr( instance, "vkDestroyObjectTableNVX" ); 1113 vkRegisterObjectsNVX = cast( PFN_vkRegisterObjectsNVX ) vkGetInstanceProcAddr( instance, "vkRegisterObjectsNVX" ); 1114 vkUnregisterObjectsNVX = cast( PFN_vkUnregisterObjectsNVX ) vkGetInstanceProcAddr( instance, "vkUnregisterObjectsNVX" ); 1115 1116 // VK_NV_clip_space_w_scaling 1117 vkCmdSetViewportWScalingNV = cast( PFN_vkCmdSetViewportWScalingNV ) vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ); 1118 1119 // VK_EXT_display_control 1120 vkDisplayPowerControlEXT = cast( PFN_vkDisplayPowerControlEXT ) vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ); 1121 vkRegisterDeviceEventEXT = cast( PFN_vkRegisterDeviceEventEXT ) vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ); 1122 vkRegisterDisplayEventEXT = cast( PFN_vkRegisterDisplayEventEXT ) vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ); 1123 vkGetSwapchainCounterEXT = cast( PFN_vkGetSwapchainCounterEXT ) vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ); 1124 1125 // VK_GOOGLE_display_timing 1126 vkGetRefreshCycleDurationGOOGLE = cast( PFN_vkGetRefreshCycleDurationGOOGLE ) vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ); 1127 vkGetPastPresentationTimingGOOGLE = cast( PFN_vkGetPastPresentationTimingGOOGLE ) vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ); 1128 1129 // VK_EXT_discard_rectangles 1130 vkCmdSetDiscardRectangleEXT = cast( PFN_vkCmdSetDiscardRectangleEXT ) vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ); 1131 1132 // VK_EXT_hdr_metadata 1133 vkSetHdrMetadataEXT = cast( PFN_vkSetHdrMetadataEXT ) vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ); 1134 1135 // VK_EXT_debug_utils 1136 vkSetDebugUtilsObjectNameEXT = cast( PFN_vkSetDebugUtilsObjectNameEXT ) vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ); 1137 vkSetDebugUtilsObjectTagEXT = cast( PFN_vkSetDebugUtilsObjectTagEXT ) vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ); 1138 vkQueueBeginDebugUtilsLabelEXT = cast( PFN_vkQueueBeginDebugUtilsLabelEXT ) vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ); 1139 vkQueueEndDebugUtilsLabelEXT = cast( PFN_vkQueueEndDebugUtilsLabelEXT ) vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ); 1140 vkQueueInsertDebugUtilsLabelEXT = cast( PFN_vkQueueInsertDebugUtilsLabelEXT ) vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ); 1141 vkCmdBeginDebugUtilsLabelEXT = cast( PFN_vkCmdBeginDebugUtilsLabelEXT ) vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ); 1142 vkCmdEndDebugUtilsLabelEXT = cast( PFN_vkCmdEndDebugUtilsLabelEXT ) vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ); 1143 vkCmdInsertDebugUtilsLabelEXT = cast( PFN_vkCmdInsertDebugUtilsLabelEXT ) vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ); 1144 1145 // VK_EXT_sample_locations 1146 vkCmdSetSampleLocationsEXT = cast( PFN_vkCmdSetSampleLocationsEXT ) vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ); 1147 1148 // VK_EXT_validation_cache 1149 vkCreateValidationCacheEXT = cast( PFN_vkCreateValidationCacheEXT ) vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ); 1150 vkDestroyValidationCacheEXT = cast( PFN_vkDestroyValidationCacheEXT ) vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ); 1151 vkMergeValidationCachesEXT = cast( PFN_vkMergeValidationCachesEXT ) vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ); 1152 vkGetValidationCacheDataEXT = cast( PFN_vkGetValidationCacheDataEXT ) vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ); 1153 1154 // VK_NV_shading_rate_image 1155 vkCmdBindShadingRateImageNV = cast( PFN_vkCmdBindShadingRateImageNV ) vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ); 1156 vkCmdSetViewportShadingRatePaletteNV = cast( PFN_vkCmdSetViewportShadingRatePaletteNV ) vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ); 1157 vkCmdSetCoarseSampleOrderNV = cast( PFN_vkCmdSetCoarseSampleOrderNV ) vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ); 1158 1159 // VK_NVX_raytracing 1160 vkCreateAccelerationStructureNVX = cast( PFN_vkCreateAccelerationStructureNVX ) vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNVX" ); 1161 vkDestroyAccelerationStructureNVX = cast( PFN_vkDestroyAccelerationStructureNVX ) vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNVX" ); 1162 vkGetAccelerationStructureMemoryRequirementsNVX = cast( PFN_vkGetAccelerationStructureMemoryRequirementsNVX ) vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNVX" ); 1163 vkGetAccelerationStructureScratchMemoryRequirementsNVX = cast( PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX ) vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureScratchMemoryRequirementsNVX" ); 1164 vkBindAccelerationStructureMemoryNVX = cast( PFN_vkBindAccelerationStructureMemoryNVX ) vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNVX" ); 1165 vkCmdBuildAccelerationStructureNVX = cast( PFN_vkCmdBuildAccelerationStructureNVX ) vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNVX" ); 1166 vkCmdCopyAccelerationStructureNVX = cast( PFN_vkCmdCopyAccelerationStructureNVX ) vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNVX" ); 1167 vkCmdTraceRaysNVX = cast( PFN_vkCmdTraceRaysNVX ) vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNVX" ); 1168 vkCreateRaytracingPipelinesNVX = cast( PFN_vkCreateRaytracingPipelinesNVX ) vkGetInstanceProcAddr( instance, "vkCreateRaytracingPipelinesNVX" ); 1169 vkGetRaytracingShaderHandlesNVX = cast( PFN_vkGetRaytracingShaderHandlesNVX ) vkGetInstanceProcAddr( instance, "vkGetRaytracingShaderHandlesNVX" ); 1170 vkGetAccelerationStructureHandleNVX = cast( PFN_vkGetAccelerationStructureHandleNVX ) vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNVX" ); 1171 vkCmdWriteAccelerationStructurePropertiesNVX = cast( PFN_vkCmdWriteAccelerationStructurePropertiesNVX ) vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructurePropertiesNVX" ); 1172 vkCompileDeferredNVX = cast( PFN_vkCompileDeferredNVX ) vkGetInstanceProcAddr( instance, "vkCompileDeferredNVX" ); 1173 1174 // VK_EXT_external_memory_host 1175 vkGetMemoryHostPointerPropertiesEXT = cast( PFN_vkGetMemoryHostPointerPropertiesEXT ) vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ); 1176 1177 // VK_AMD_buffer_marker 1178 vkCmdWriteBufferMarkerAMD = cast( PFN_vkCmdWriteBufferMarkerAMD ) vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ); 1179 1180 // VK_NV_mesh_shader 1181 vkCmdDrawMeshTasksNV = cast( PFN_vkCmdDrawMeshTasksNV ) vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ); 1182 vkCmdDrawMeshTasksIndirectNV = cast( PFN_vkCmdDrawMeshTasksIndirectNV ) vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ); 1183 vkCmdDrawMeshTasksIndirectCountNV = cast( PFN_vkCmdDrawMeshTasksIndirectCountNV ) vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ); 1184 1185 // VK_NV_scissor_exclusive 1186 vkCmdSetExclusiveScissorNV = cast( PFN_vkCmdSetExclusiveScissorNV ) vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ); 1187 1188 // VK_NV_device_diagnostic_checkpoints 1189 vkCmdSetCheckpointNV = cast( PFN_vkCmdSetCheckpointNV ) vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ); 1190 vkGetQueueCheckpointDataNV = cast( PFN_vkGetQueueCheckpointDataNV ) vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ); 1191 } 1192 1193 1194 /// with a valid VkDevice call this function to retrieve VkDevice, VkQueue and VkCommandBuffer related functions 1195 /// the functions call directly VkDevice and related resources and can be retrieved for one and only one VkDevice 1196 /// calling this function again with another VkDevices will overwrite the __gshared functions retrieved previously 1197 /// see module erupted.dispatch_device if multiple VkDevices will be used 1198 void loadDeviceLevelFunctions( VkDevice device ) { 1199 assert( vkGetDeviceProcAddr !is null, "Function pointer vkGetDeviceProcAddr is null!\nCall loadGlobalLevelFunctions -> loadInstanceLevelFunctions -> loadDeviceLevelFunctions( device )" ); 1200 1201 // VK_VERSION_1_0 1202 vkDestroyDevice = cast( PFN_vkDestroyDevice ) vkGetDeviceProcAddr( device, "vkDestroyDevice" ); 1203 vkGetDeviceQueue = cast( PFN_vkGetDeviceQueue ) vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ); 1204 vkQueueSubmit = cast( PFN_vkQueueSubmit ) vkGetDeviceProcAddr( device, "vkQueueSubmit" ); 1205 vkQueueWaitIdle = cast( PFN_vkQueueWaitIdle ) vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ); 1206 vkDeviceWaitIdle = cast( PFN_vkDeviceWaitIdle ) vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ); 1207 vkAllocateMemory = cast( PFN_vkAllocateMemory ) vkGetDeviceProcAddr( device, "vkAllocateMemory" ); 1208 vkFreeMemory = cast( PFN_vkFreeMemory ) vkGetDeviceProcAddr( device, "vkFreeMemory" ); 1209 vkMapMemory = cast( PFN_vkMapMemory ) vkGetDeviceProcAddr( device, "vkMapMemory" ); 1210 vkUnmapMemory = cast( PFN_vkUnmapMemory ) vkGetDeviceProcAddr( device, "vkUnmapMemory" ); 1211 vkFlushMappedMemoryRanges = cast( PFN_vkFlushMappedMemoryRanges ) vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ); 1212 vkInvalidateMappedMemoryRanges = cast( PFN_vkInvalidateMappedMemoryRanges ) vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ); 1213 vkGetDeviceMemoryCommitment = cast( PFN_vkGetDeviceMemoryCommitment ) vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ); 1214 vkBindBufferMemory = cast( PFN_vkBindBufferMemory ) vkGetDeviceProcAddr( device, "vkBindBufferMemory" ); 1215 vkBindImageMemory = cast( PFN_vkBindImageMemory ) vkGetDeviceProcAddr( device, "vkBindImageMemory" ); 1216 vkGetBufferMemoryRequirements = cast( PFN_vkGetBufferMemoryRequirements ) vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ); 1217 vkGetImageMemoryRequirements = cast( PFN_vkGetImageMemoryRequirements ) vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ); 1218 vkGetImageSparseMemoryRequirements = cast( PFN_vkGetImageSparseMemoryRequirements ) vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ); 1219 vkQueueBindSparse = cast( PFN_vkQueueBindSparse ) vkGetDeviceProcAddr( device, "vkQueueBindSparse" ); 1220 vkCreateFence = cast( PFN_vkCreateFence ) vkGetDeviceProcAddr( device, "vkCreateFence" ); 1221 vkDestroyFence = cast( PFN_vkDestroyFence ) vkGetDeviceProcAddr( device, "vkDestroyFence" ); 1222 vkResetFences = cast( PFN_vkResetFences ) vkGetDeviceProcAddr( device, "vkResetFences" ); 1223 vkGetFenceStatus = cast( PFN_vkGetFenceStatus ) vkGetDeviceProcAddr( device, "vkGetFenceStatus" ); 1224 vkWaitForFences = cast( PFN_vkWaitForFences ) vkGetDeviceProcAddr( device, "vkWaitForFences" ); 1225 vkCreateSemaphore = cast( PFN_vkCreateSemaphore ) vkGetDeviceProcAddr( device, "vkCreateSemaphore" ); 1226 vkDestroySemaphore = cast( PFN_vkDestroySemaphore ) vkGetDeviceProcAddr( device, "vkDestroySemaphore" ); 1227 vkCreateEvent = cast( PFN_vkCreateEvent ) vkGetDeviceProcAddr( device, "vkCreateEvent" ); 1228 vkDestroyEvent = cast( PFN_vkDestroyEvent ) vkGetDeviceProcAddr( device, "vkDestroyEvent" ); 1229 vkGetEventStatus = cast( PFN_vkGetEventStatus ) vkGetDeviceProcAddr( device, "vkGetEventStatus" ); 1230 vkSetEvent = cast( PFN_vkSetEvent ) vkGetDeviceProcAddr( device, "vkSetEvent" ); 1231 vkResetEvent = cast( PFN_vkResetEvent ) vkGetDeviceProcAddr( device, "vkResetEvent" ); 1232 vkCreateQueryPool = cast( PFN_vkCreateQueryPool ) vkGetDeviceProcAddr( device, "vkCreateQueryPool" ); 1233 vkDestroyQueryPool = cast( PFN_vkDestroyQueryPool ) vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ); 1234 vkGetQueryPoolResults = cast( PFN_vkGetQueryPoolResults ) vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ); 1235 vkCreateBuffer = cast( PFN_vkCreateBuffer ) vkGetDeviceProcAddr( device, "vkCreateBuffer" ); 1236 vkDestroyBuffer = cast( PFN_vkDestroyBuffer ) vkGetDeviceProcAddr( device, "vkDestroyBuffer" ); 1237 vkCreateBufferView = cast( PFN_vkCreateBufferView ) vkGetDeviceProcAddr( device, "vkCreateBufferView" ); 1238 vkDestroyBufferView = cast( PFN_vkDestroyBufferView ) vkGetDeviceProcAddr( device, "vkDestroyBufferView" ); 1239 vkCreateImage = cast( PFN_vkCreateImage ) vkGetDeviceProcAddr( device, "vkCreateImage" ); 1240 vkDestroyImage = cast( PFN_vkDestroyImage ) vkGetDeviceProcAddr( device, "vkDestroyImage" ); 1241 vkGetImageSubresourceLayout = cast( PFN_vkGetImageSubresourceLayout ) vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ); 1242 vkCreateImageView = cast( PFN_vkCreateImageView ) vkGetDeviceProcAddr( device, "vkCreateImageView" ); 1243 vkDestroyImageView = cast( PFN_vkDestroyImageView ) vkGetDeviceProcAddr( device, "vkDestroyImageView" ); 1244 vkCreateShaderModule = cast( PFN_vkCreateShaderModule ) vkGetDeviceProcAddr( device, "vkCreateShaderModule" ); 1245 vkDestroyShaderModule = cast( PFN_vkDestroyShaderModule ) vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ); 1246 vkCreatePipelineCache = cast( PFN_vkCreatePipelineCache ) vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ); 1247 vkDestroyPipelineCache = cast( PFN_vkDestroyPipelineCache ) vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ); 1248 vkGetPipelineCacheData = cast( PFN_vkGetPipelineCacheData ) vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ); 1249 vkMergePipelineCaches = cast( PFN_vkMergePipelineCaches ) vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ); 1250 vkCreateGraphicsPipelines = cast( PFN_vkCreateGraphicsPipelines ) vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ); 1251 vkCreateComputePipelines = cast( PFN_vkCreateComputePipelines ) vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ); 1252 vkDestroyPipeline = cast( PFN_vkDestroyPipeline ) vkGetDeviceProcAddr( device, "vkDestroyPipeline" ); 1253 vkCreatePipelineLayout = cast( PFN_vkCreatePipelineLayout ) vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ); 1254 vkDestroyPipelineLayout = cast( PFN_vkDestroyPipelineLayout ) vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ); 1255 vkCreateSampler = cast( PFN_vkCreateSampler ) vkGetDeviceProcAddr( device, "vkCreateSampler" ); 1256 vkDestroySampler = cast( PFN_vkDestroySampler ) vkGetDeviceProcAddr( device, "vkDestroySampler" ); 1257 vkCreateDescriptorSetLayout = cast( PFN_vkCreateDescriptorSetLayout ) vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ); 1258 vkDestroyDescriptorSetLayout = cast( PFN_vkDestroyDescriptorSetLayout ) vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ); 1259 vkCreateDescriptorPool = cast( PFN_vkCreateDescriptorPool ) vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ); 1260 vkDestroyDescriptorPool = cast( PFN_vkDestroyDescriptorPool ) vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ); 1261 vkResetDescriptorPool = cast( PFN_vkResetDescriptorPool ) vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ); 1262 vkAllocateDescriptorSets = cast( PFN_vkAllocateDescriptorSets ) vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ); 1263 vkFreeDescriptorSets = cast( PFN_vkFreeDescriptorSets ) vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ); 1264 vkUpdateDescriptorSets = cast( PFN_vkUpdateDescriptorSets ) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ); 1265 vkCreateFramebuffer = cast( PFN_vkCreateFramebuffer ) vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ); 1266 vkDestroyFramebuffer = cast( PFN_vkDestroyFramebuffer ) vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ); 1267 vkCreateRenderPass = cast( PFN_vkCreateRenderPass ) vkGetDeviceProcAddr( device, "vkCreateRenderPass" ); 1268 vkDestroyRenderPass = cast( PFN_vkDestroyRenderPass ) vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ); 1269 vkGetRenderAreaGranularity = cast( PFN_vkGetRenderAreaGranularity ) vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ); 1270 vkCreateCommandPool = cast( PFN_vkCreateCommandPool ) vkGetDeviceProcAddr( device, "vkCreateCommandPool" ); 1271 vkDestroyCommandPool = cast( PFN_vkDestroyCommandPool ) vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ); 1272 vkResetCommandPool = cast( PFN_vkResetCommandPool ) vkGetDeviceProcAddr( device, "vkResetCommandPool" ); 1273 vkAllocateCommandBuffers = cast( PFN_vkAllocateCommandBuffers ) vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ); 1274 vkFreeCommandBuffers = cast( PFN_vkFreeCommandBuffers ) vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ); 1275 vkBeginCommandBuffer = cast( PFN_vkBeginCommandBuffer ) vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ); 1276 vkEndCommandBuffer = cast( PFN_vkEndCommandBuffer ) vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ); 1277 vkResetCommandBuffer = cast( PFN_vkResetCommandBuffer ) vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ); 1278 vkCmdBindPipeline = cast( PFN_vkCmdBindPipeline ) vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ); 1279 vkCmdSetViewport = cast( PFN_vkCmdSetViewport ) vkGetDeviceProcAddr( device, "vkCmdSetViewport" ); 1280 vkCmdSetScissor = cast( PFN_vkCmdSetScissor ) vkGetDeviceProcAddr( device, "vkCmdSetScissor" ); 1281 vkCmdSetLineWidth = cast( PFN_vkCmdSetLineWidth ) vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ); 1282 vkCmdSetDepthBias = cast( PFN_vkCmdSetDepthBias ) vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ); 1283 vkCmdSetBlendConstants = cast( PFN_vkCmdSetBlendConstants ) vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ); 1284 vkCmdSetDepthBounds = cast( PFN_vkCmdSetDepthBounds ) vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ); 1285 vkCmdSetStencilCompareMask = cast( PFN_vkCmdSetStencilCompareMask ) vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ); 1286 vkCmdSetStencilWriteMask = cast( PFN_vkCmdSetStencilWriteMask ) vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ); 1287 vkCmdSetStencilReference = cast( PFN_vkCmdSetStencilReference ) vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ); 1288 vkCmdBindDescriptorSets = cast( PFN_vkCmdBindDescriptorSets ) vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ); 1289 vkCmdBindIndexBuffer = cast( PFN_vkCmdBindIndexBuffer ) vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ); 1290 vkCmdBindVertexBuffers = cast( PFN_vkCmdBindVertexBuffers ) vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ); 1291 vkCmdDraw = cast( PFN_vkCmdDraw ) vkGetDeviceProcAddr( device, "vkCmdDraw" ); 1292 vkCmdDrawIndexed = cast( PFN_vkCmdDrawIndexed ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ); 1293 vkCmdDrawIndirect = cast( PFN_vkCmdDrawIndirect ) vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ); 1294 vkCmdDrawIndexedIndirect = cast( PFN_vkCmdDrawIndexedIndirect ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ); 1295 vkCmdDispatch = cast( PFN_vkCmdDispatch ) vkGetDeviceProcAddr( device, "vkCmdDispatch" ); 1296 vkCmdDispatchIndirect = cast( PFN_vkCmdDispatchIndirect ) vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ); 1297 vkCmdCopyBuffer = cast( PFN_vkCmdCopyBuffer ) vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ); 1298 vkCmdCopyImage = cast( PFN_vkCmdCopyImage ) vkGetDeviceProcAddr( device, "vkCmdCopyImage" ); 1299 vkCmdBlitImage = cast( PFN_vkCmdBlitImage ) vkGetDeviceProcAddr( device, "vkCmdBlitImage" ); 1300 vkCmdCopyBufferToImage = cast( PFN_vkCmdCopyBufferToImage ) vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ); 1301 vkCmdCopyImageToBuffer = cast( PFN_vkCmdCopyImageToBuffer ) vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ); 1302 vkCmdUpdateBuffer = cast( PFN_vkCmdUpdateBuffer ) vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ); 1303 vkCmdFillBuffer = cast( PFN_vkCmdFillBuffer ) vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ); 1304 vkCmdClearColorImage = cast( PFN_vkCmdClearColorImage ) vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ); 1305 vkCmdClearDepthStencilImage = cast( PFN_vkCmdClearDepthStencilImage ) vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ); 1306 vkCmdClearAttachments = cast( PFN_vkCmdClearAttachments ) vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ); 1307 vkCmdResolveImage = cast( PFN_vkCmdResolveImage ) vkGetDeviceProcAddr( device, "vkCmdResolveImage" ); 1308 vkCmdSetEvent = cast( PFN_vkCmdSetEvent ) vkGetDeviceProcAddr( device, "vkCmdSetEvent" ); 1309 vkCmdResetEvent = cast( PFN_vkCmdResetEvent ) vkGetDeviceProcAddr( device, "vkCmdResetEvent" ); 1310 vkCmdWaitEvents = cast( PFN_vkCmdWaitEvents ) vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ); 1311 vkCmdPipelineBarrier = cast( PFN_vkCmdPipelineBarrier ) vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ); 1312 vkCmdBeginQuery = cast( PFN_vkCmdBeginQuery ) vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ); 1313 vkCmdEndQuery = cast( PFN_vkCmdEndQuery ) vkGetDeviceProcAddr( device, "vkCmdEndQuery" ); 1314 vkCmdResetQueryPool = cast( PFN_vkCmdResetQueryPool ) vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ); 1315 vkCmdWriteTimestamp = cast( PFN_vkCmdWriteTimestamp ) vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ); 1316 vkCmdCopyQueryPoolResults = cast( PFN_vkCmdCopyQueryPoolResults ) vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ); 1317 vkCmdPushConstants = cast( PFN_vkCmdPushConstants ) vkGetDeviceProcAddr( device, "vkCmdPushConstants" ); 1318 vkCmdBeginRenderPass = cast( PFN_vkCmdBeginRenderPass ) vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ); 1319 vkCmdNextSubpass = cast( PFN_vkCmdNextSubpass ) vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ); 1320 vkCmdEndRenderPass = cast( PFN_vkCmdEndRenderPass ) vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ); 1321 vkCmdExecuteCommands = cast( PFN_vkCmdExecuteCommands ) vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ); 1322 1323 // VK_VERSION_1_1 1324 vkBindBufferMemory2 = cast( PFN_vkBindBufferMemory2 ) vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ); 1325 vkBindImageMemory2 = cast( PFN_vkBindImageMemory2 ) vkGetDeviceProcAddr( device, "vkBindImageMemory2" ); 1326 vkGetDeviceGroupPeerMemoryFeatures = cast( PFN_vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ); 1327 vkCmdSetDeviceMask = cast( PFN_vkCmdSetDeviceMask ) vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ); 1328 vkCmdDispatchBase = cast( PFN_vkCmdDispatchBase ) vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ); 1329 vkGetImageMemoryRequirements2 = cast( PFN_vkGetImageMemoryRequirements2 ) vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ); 1330 vkGetBufferMemoryRequirements2 = cast( PFN_vkGetBufferMemoryRequirements2 ) vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ); 1331 vkGetImageSparseMemoryRequirements2 = cast( PFN_vkGetImageSparseMemoryRequirements2 ) vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ); 1332 vkTrimCommandPool = cast( PFN_vkTrimCommandPool ) vkGetDeviceProcAddr( device, "vkTrimCommandPool" ); 1333 vkGetDeviceQueue2 = cast( PFN_vkGetDeviceQueue2 ) vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ); 1334 vkCreateSamplerYcbcrConversion = cast( PFN_vkCreateSamplerYcbcrConversion ) vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ); 1335 vkDestroySamplerYcbcrConversion = cast( PFN_vkDestroySamplerYcbcrConversion ) vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ); 1336 vkCreateDescriptorUpdateTemplate = cast( PFN_vkCreateDescriptorUpdateTemplate ) vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ); 1337 vkDestroyDescriptorUpdateTemplate = cast( PFN_vkDestroyDescriptorUpdateTemplate ) vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ); 1338 vkUpdateDescriptorSetWithTemplate = cast( PFN_vkUpdateDescriptorSetWithTemplate ) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ); 1339 vkGetDescriptorSetLayoutSupport = cast( PFN_vkGetDescriptorSetLayoutSupport ) vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ); 1340 1341 // VK_KHR_swapchain 1342 vkCreateSwapchainKHR = cast( PFN_vkCreateSwapchainKHR ) vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ); 1343 vkDestroySwapchainKHR = cast( PFN_vkDestroySwapchainKHR ) vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ); 1344 vkGetSwapchainImagesKHR = cast( PFN_vkGetSwapchainImagesKHR ) vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ); 1345 vkAcquireNextImageKHR = cast( PFN_vkAcquireNextImageKHR ) vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ); 1346 vkQueuePresentKHR = cast( PFN_vkQueuePresentKHR ) vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ); 1347 vkGetDeviceGroupPresentCapabilitiesKHR = cast( PFN_vkGetDeviceGroupPresentCapabilitiesKHR ) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ); 1348 vkGetDeviceGroupSurfacePresentModesKHR = cast( PFN_vkGetDeviceGroupSurfacePresentModesKHR ) vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ); 1349 vkAcquireNextImage2KHR = cast( PFN_vkAcquireNextImage2KHR ) vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ); 1350 1351 // VK_KHR_display_swapchain 1352 vkCreateSharedSwapchainsKHR = cast( PFN_vkCreateSharedSwapchainsKHR ) vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ); 1353 1354 // VK_KHR_external_memory_fd 1355 vkGetMemoryFdKHR = cast( PFN_vkGetMemoryFdKHR ) vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ); 1356 vkGetMemoryFdPropertiesKHR = cast( PFN_vkGetMemoryFdPropertiesKHR ) vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ); 1357 1358 // VK_KHR_external_semaphore_fd 1359 vkImportSemaphoreFdKHR = cast( PFN_vkImportSemaphoreFdKHR ) vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ); 1360 vkGetSemaphoreFdKHR = cast( PFN_vkGetSemaphoreFdKHR ) vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ); 1361 1362 // VK_KHR_push_descriptor 1363 vkCmdPushDescriptorSetKHR = cast( PFN_vkCmdPushDescriptorSetKHR ) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ); 1364 vkCmdPushDescriptorSetWithTemplateKHR = cast( PFN_vkCmdPushDescriptorSetWithTemplateKHR ) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ); 1365 1366 // VK_KHR_create_renderpass2 1367 vkCreateRenderPass2KHR = cast( PFN_vkCreateRenderPass2KHR ) vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ); 1368 vkCmdBeginRenderPass2KHR = cast( PFN_vkCmdBeginRenderPass2KHR ) vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ); 1369 vkCmdNextSubpass2KHR = cast( PFN_vkCmdNextSubpass2KHR ) vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ); 1370 vkCmdEndRenderPass2KHR = cast( PFN_vkCmdEndRenderPass2KHR ) vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ); 1371 1372 // VK_KHR_shared_presentable_image 1373 vkGetSwapchainStatusKHR = cast( PFN_vkGetSwapchainStatusKHR ) vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ); 1374 1375 // VK_KHR_external_fence_fd 1376 vkImportFenceFdKHR = cast( PFN_vkImportFenceFdKHR ) vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ); 1377 vkGetFenceFdKHR = cast( PFN_vkGetFenceFdKHR ) vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ); 1378 1379 // VK_KHR_draw_indirect_count 1380 vkCmdDrawIndirectCountKHR = cast( PFN_vkCmdDrawIndirectCountKHR ) vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ); 1381 vkCmdDrawIndexedIndirectCountKHR = cast( PFN_vkCmdDrawIndexedIndirectCountKHR ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ); 1382 1383 // VK_EXT_debug_marker 1384 vkDebugMarkerSetObjectTagEXT = cast( PFN_vkDebugMarkerSetObjectTagEXT ) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ); 1385 vkDebugMarkerSetObjectNameEXT = cast( PFN_vkDebugMarkerSetObjectNameEXT ) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ); 1386 vkCmdDebugMarkerBeginEXT = cast( PFN_vkCmdDebugMarkerBeginEXT ) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ); 1387 vkCmdDebugMarkerEndEXT = cast( PFN_vkCmdDebugMarkerEndEXT ) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ); 1388 vkCmdDebugMarkerInsertEXT = cast( PFN_vkCmdDebugMarkerInsertEXT ) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ); 1389 1390 // VK_AMD_draw_indirect_count 1391 vkCmdDrawIndirectCountAMD = cast( PFN_vkCmdDrawIndirectCountAMD ) vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ); 1392 vkCmdDrawIndexedIndirectCountAMD = cast( PFN_vkCmdDrawIndexedIndirectCountAMD ) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ); 1393 1394 // VK_AMD_shader_info 1395 vkGetShaderInfoAMD = cast( PFN_vkGetShaderInfoAMD ) vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ); 1396 1397 // VK_EXT_conditional_rendering 1398 vkCmdBeginConditionalRenderingEXT = cast( PFN_vkCmdBeginConditionalRenderingEXT ) vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ); 1399 vkCmdEndConditionalRenderingEXT = cast( PFN_vkCmdEndConditionalRenderingEXT ) vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ); 1400 1401 // VK_NVX_device_generated_commands 1402 vkCmdProcessCommandsNVX = cast( PFN_vkCmdProcessCommandsNVX ) vkGetDeviceProcAddr( device, "vkCmdProcessCommandsNVX" ); 1403 vkCmdReserveSpaceForCommandsNVX = cast( PFN_vkCmdReserveSpaceForCommandsNVX ) vkGetDeviceProcAddr( device, "vkCmdReserveSpaceForCommandsNVX" ); 1404 vkCreateIndirectCommandsLayoutNVX = cast( PFN_vkCreateIndirectCommandsLayoutNVX ) vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNVX" ); 1405 vkDestroyIndirectCommandsLayoutNVX = cast( PFN_vkDestroyIndirectCommandsLayoutNVX ) vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNVX" ); 1406 vkCreateObjectTableNVX = cast( PFN_vkCreateObjectTableNVX ) vkGetDeviceProcAddr( device, "vkCreateObjectTableNVX" ); 1407 vkDestroyObjectTableNVX = cast( PFN_vkDestroyObjectTableNVX ) vkGetDeviceProcAddr( device, "vkDestroyObjectTableNVX" ); 1408 vkRegisterObjectsNVX = cast( PFN_vkRegisterObjectsNVX ) vkGetDeviceProcAddr( device, "vkRegisterObjectsNVX" ); 1409 vkUnregisterObjectsNVX = cast( PFN_vkUnregisterObjectsNVX ) vkGetDeviceProcAddr( device, "vkUnregisterObjectsNVX" ); 1410 1411 // VK_NV_clip_space_w_scaling 1412 vkCmdSetViewportWScalingNV = cast( PFN_vkCmdSetViewportWScalingNV ) vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ); 1413 1414 // VK_EXT_display_control 1415 vkDisplayPowerControlEXT = cast( PFN_vkDisplayPowerControlEXT ) vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ); 1416 vkRegisterDeviceEventEXT = cast( PFN_vkRegisterDeviceEventEXT ) vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ); 1417 vkRegisterDisplayEventEXT = cast( PFN_vkRegisterDisplayEventEXT ) vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ); 1418 vkGetSwapchainCounterEXT = cast( PFN_vkGetSwapchainCounterEXT ) vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ); 1419 1420 // VK_GOOGLE_display_timing 1421 vkGetRefreshCycleDurationGOOGLE = cast( PFN_vkGetRefreshCycleDurationGOOGLE ) vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ); 1422 vkGetPastPresentationTimingGOOGLE = cast( PFN_vkGetPastPresentationTimingGOOGLE ) vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ); 1423 1424 // VK_EXT_discard_rectangles 1425 vkCmdSetDiscardRectangleEXT = cast( PFN_vkCmdSetDiscardRectangleEXT ) vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ); 1426 1427 // VK_EXT_hdr_metadata 1428 vkSetHdrMetadataEXT = cast( PFN_vkSetHdrMetadataEXT ) vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ); 1429 1430 // VK_EXT_debug_utils 1431 vkSetDebugUtilsObjectNameEXT = cast( PFN_vkSetDebugUtilsObjectNameEXT ) vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ); 1432 vkSetDebugUtilsObjectTagEXT = cast( PFN_vkSetDebugUtilsObjectTagEXT ) vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ); 1433 vkQueueBeginDebugUtilsLabelEXT = cast( PFN_vkQueueBeginDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ); 1434 vkQueueEndDebugUtilsLabelEXT = cast( PFN_vkQueueEndDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ); 1435 vkQueueInsertDebugUtilsLabelEXT = cast( PFN_vkQueueInsertDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ); 1436 vkCmdBeginDebugUtilsLabelEXT = cast( PFN_vkCmdBeginDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ); 1437 vkCmdEndDebugUtilsLabelEXT = cast( PFN_vkCmdEndDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ); 1438 vkCmdInsertDebugUtilsLabelEXT = cast( PFN_vkCmdInsertDebugUtilsLabelEXT ) vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ); 1439 1440 // VK_EXT_sample_locations 1441 vkCmdSetSampleLocationsEXT = cast( PFN_vkCmdSetSampleLocationsEXT ) vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ); 1442 1443 // VK_EXT_validation_cache 1444 vkCreateValidationCacheEXT = cast( PFN_vkCreateValidationCacheEXT ) vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ); 1445 vkDestroyValidationCacheEXT = cast( PFN_vkDestroyValidationCacheEXT ) vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ); 1446 vkMergeValidationCachesEXT = cast( PFN_vkMergeValidationCachesEXT ) vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ); 1447 vkGetValidationCacheDataEXT = cast( PFN_vkGetValidationCacheDataEXT ) vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ); 1448 1449 // VK_NV_shading_rate_image 1450 vkCmdBindShadingRateImageNV = cast( PFN_vkCmdBindShadingRateImageNV ) vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ); 1451 vkCmdSetViewportShadingRatePaletteNV = cast( PFN_vkCmdSetViewportShadingRatePaletteNV ) vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ); 1452 vkCmdSetCoarseSampleOrderNV = cast( PFN_vkCmdSetCoarseSampleOrderNV ) vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ); 1453 1454 // VK_NVX_raytracing 1455 vkCreateAccelerationStructureNVX = cast( PFN_vkCreateAccelerationStructureNVX ) vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNVX" ); 1456 vkDestroyAccelerationStructureNVX = cast( PFN_vkDestroyAccelerationStructureNVX ) vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNVX" ); 1457 vkGetAccelerationStructureMemoryRequirementsNVX = cast( PFN_vkGetAccelerationStructureMemoryRequirementsNVX ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNVX" ); 1458 vkGetAccelerationStructureScratchMemoryRequirementsNVX = cast( PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureScratchMemoryRequirementsNVX" ); 1459 vkBindAccelerationStructureMemoryNVX = cast( PFN_vkBindAccelerationStructureMemoryNVX ) vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNVX" ); 1460 vkCmdBuildAccelerationStructureNVX = cast( PFN_vkCmdBuildAccelerationStructureNVX ) vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNVX" ); 1461 vkCmdCopyAccelerationStructureNVX = cast( PFN_vkCmdCopyAccelerationStructureNVX ) vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNVX" ); 1462 vkCmdTraceRaysNVX = cast( PFN_vkCmdTraceRaysNVX ) vkGetDeviceProcAddr( device, "vkCmdTraceRaysNVX" ); 1463 vkCreateRaytracingPipelinesNVX = cast( PFN_vkCreateRaytracingPipelinesNVX ) vkGetDeviceProcAddr( device, "vkCreateRaytracingPipelinesNVX" ); 1464 vkGetRaytracingShaderHandlesNVX = cast( PFN_vkGetRaytracingShaderHandlesNVX ) vkGetDeviceProcAddr( device, "vkGetRaytracingShaderHandlesNVX" ); 1465 vkGetAccelerationStructureHandleNVX = cast( PFN_vkGetAccelerationStructureHandleNVX ) vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNVX" ); 1466 vkCmdWriteAccelerationStructurePropertiesNVX = cast( PFN_vkCmdWriteAccelerationStructurePropertiesNVX ) vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructurePropertiesNVX" ); 1467 vkCompileDeferredNVX = cast( PFN_vkCompileDeferredNVX ) vkGetDeviceProcAddr( device, "vkCompileDeferredNVX" ); 1468 1469 // VK_EXT_external_memory_host 1470 vkGetMemoryHostPointerPropertiesEXT = cast( PFN_vkGetMemoryHostPointerPropertiesEXT ) vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ); 1471 1472 // VK_AMD_buffer_marker 1473 vkCmdWriteBufferMarkerAMD = cast( PFN_vkCmdWriteBufferMarkerAMD ) vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ); 1474 1475 // VK_NV_mesh_shader 1476 vkCmdDrawMeshTasksNV = cast( PFN_vkCmdDrawMeshTasksNV ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ); 1477 vkCmdDrawMeshTasksIndirectNV = cast( PFN_vkCmdDrawMeshTasksIndirectNV ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ); 1478 vkCmdDrawMeshTasksIndirectCountNV = cast( PFN_vkCmdDrawMeshTasksIndirectCountNV ) vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ); 1479 1480 // VK_NV_scissor_exclusive 1481 vkCmdSetExclusiveScissorNV = cast( PFN_vkCmdSetExclusiveScissorNV ) vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ); 1482 1483 // VK_NV_device_diagnostic_checkpoints 1484 vkCmdSetCheckpointNV = cast( PFN_vkCmdSetCheckpointNV ) vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ); 1485 vkGetQueueCheckpointDataNV = cast( PFN_vkGetQueueCheckpointDataNV ) vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ); 1486 } 1487