1 module erupted.functions; 2 3 public import erupted.types; 4 5 extern( System ) @nogc nothrow { 6 7 // VK_VERSION_1_0 8 alias PFN_vkCreateInstance = VkResult function( const( VkInstanceCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkInstance* pInstance ); 9 alias PFN_vkDestroyInstance = void function( VkInstance instance, const( VkAllocationCallbacks )* pAllocator ); 10 alias PFN_vkEnumeratePhysicalDevices = VkResult function( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ); 11 alias PFN_vkGetPhysicalDeviceFeatures = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ); 12 alias PFN_vkGetPhysicalDeviceFormatProperties = void function( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ); 13 alias PFN_vkGetPhysicalDeviceImageFormatProperties = VkResult function( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ); 14 alias PFN_vkGetPhysicalDeviceProperties = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ); 15 alias PFN_vkGetPhysicalDeviceQueueFamilyProperties = void function( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ); 16 alias PFN_vkGetPhysicalDeviceMemoryProperties = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ); 17 alias PFN_vkGetInstanceProcAddr = PFN_vkVoidFunction function( VkInstance instance, const( char )* pName ); 18 alias PFN_vkGetDeviceProcAddr = PFN_vkVoidFunction function( VkDevice device, const( char )* pName ); 19 alias PFN_vkCreateDevice = VkResult function( VkPhysicalDevice physicalDevice, const( VkDeviceCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDevice* pDevice ); 20 alias PFN_vkDestroyDevice = void function( VkDevice device, const( VkAllocationCallbacks )* pAllocator ); 21 alias PFN_vkEnumerateInstanceExtensionProperties = VkResult function( const( char )* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ); 22 alias PFN_vkEnumerateDeviceExtensionProperties = VkResult function( VkPhysicalDevice physicalDevice, const( char )* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ); 23 alias PFN_vkEnumerateInstanceLayerProperties = VkResult function( uint32_t* pPropertyCount, VkLayerProperties* pProperties ); 24 alias PFN_vkEnumerateDeviceLayerProperties = VkResult function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ); 25 alias PFN_vkGetDeviceQueue = void function( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ); 26 alias PFN_vkQueueSubmit = VkResult function( VkQueue queue, uint32_t submitCount, const( VkSubmitInfo )* pSubmits, VkFence fence ); 27 alias PFN_vkQueueWaitIdle = VkResult function( VkQueue queue ); 28 alias PFN_vkDeviceWaitIdle = VkResult function( VkDevice device ); 29 alias PFN_vkAllocateMemory = VkResult function( VkDevice device, const( VkMemoryAllocateInfo )* pAllocateInfo, const( VkAllocationCallbacks )* pAllocator, VkDeviceMemory* pMemory ); 30 alias PFN_vkFreeMemory = void function( VkDevice device, VkDeviceMemory memory, const( VkAllocationCallbacks )* pAllocator ); 31 alias PFN_vkMapMemory = VkResult function( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ); 32 alias PFN_vkUnmapMemory = void function( VkDevice device, VkDeviceMemory memory ); 33 alias PFN_vkFlushMappedMemoryRanges = VkResult function( VkDevice device, uint32_t memoryRangeCount, const( VkMappedMemoryRange )* pMemoryRanges ); 34 alias PFN_vkInvalidateMappedMemoryRanges = VkResult function( VkDevice device, uint32_t memoryRangeCount, const( VkMappedMemoryRange )* pMemoryRanges ); 35 alias PFN_vkGetDeviceMemoryCommitment = void function( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ); 36 alias PFN_vkBindBufferMemory = VkResult function( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ); 37 alias PFN_vkBindImageMemory = VkResult function( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ); 38 alias PFN_vkGetBufferMemoryRequirements = void function( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ); 39 alias PFN_vkGetImageMemoryRequirements = void function( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ); 40 alias PFN_vkGetImageSparseMemoryRequirements = void function( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ); 41 alias PFN_vkGetPhysicalDeviceSparseImageFormatProperties = void function( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ); 42 alias PFN_vkQueueBindSparse = VkResult function( VkQueue queue, uint32_t bindInfoCount, const( VkBindSparseInfo )* pBindInfo, VkFence fence ); 43 alias PFN_vkCreateFence = VkResult function( VkDevice device, const( VkFenceCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkFence* pFence ); 44 alias PFN_vkDestroyFence = void function( VkDevice device, VkFence fence, const( VkAllocationCallbacks )* pAllocator ); 45 alias PFN_vkResetFences = VkResult function( VkDevice device, uint32_t fenceCount, const( VkFence )* pFences ); 46 alias PFN_vkGetFenceStatus = VkResult function( VkDevice device, VkFence fence ); 47 alias PFN_vkWaitForFences = VkResult function( VkDevice device, uint32_t fenceCount, const( VkFence )* pFences, VkBool32 waitAll, uint64_t timeout ); 48 alias PFN_vkCreateSemaphore = VkResult function( VkDevice device, const( VkSemaphoreCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSemaphore* pSemaphore ); 49 alias PFN_vkDestroySemaphore = void function( VkDevice device, VkSemaphore semaphore, const( VkAllocationCallbacks )* pAllocator ); 50 alias PFN_vkCreateEvent = VkResult function( VkDevice device, const( VkEventCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkEvent* pEvent ); 51 alias PFN_vkDestroyEvent = void function( VkDevice device, VkEvent event, const( VkAllocationCallbacks )* pAllocator ); 52 alias PFN_vkGetEventStatus = VkResult function( VkDevice device, VkEvent event ); 53 alias PFN_vkSetEvent = VkResult function( VkDevice device, VkEvent event ); 54 alias PFN_vkResetEvent = VkResult function( VkDevice device, VkEvent event ); 55 alias PFN_vkCreateQueryPool = VkResult function( VkDevice device, const( VkQueryPoolCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkQueryPool* pQueryPool ); 56 alias PFN_vkDestroyQueryPool = void function( VkDevice device, VkQueryPool queryPool, const( VkAllocationCallbacks )* pAllocator ); 57 alias PFN_vkGetQueryPoolResults = VkResult function( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ); 58 alias PFN_vkCreateBuffer = VkResult function( VkDevice device, const( VkBufferCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkBuffer* pBuffer ); 59 alias PFN_vkDestroyBuffer = void function( VkDevice device, VkBuffer buffer, const( VkAllocationCallbacks )* pAllocator ); 60 alias PFN_vkCreateBufferView = VkResult function( VkDevice device, const( VkBufferViewCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkBufferView* pView ); 61 alias PFN_vkDestroyBufferView = void function( VkDevice device, VkBufferView bufferView, const( VkAllocationCallbacks )* pAllocator ); 62 alias PFN_vkCreateImage = VkResult function( VkDevice device, const( VkImageCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkImage* pImage ); 63 alias PFN_vkDestroyImage = void function( VkDevice device, VkImage image, const( VkAllocationCallbacks )* pAllocator ); 64 alias PFN_vkGetImageSubresourceLayout = void function( VkDevice device, VkImage image, const( VkImageSubresource )* pSubresource, VkSubresourceLayout* pLayout ); 65 alias PFN_vkCreateImageView = VkResult function( VkDevice device, const( VkImageViewCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkImageView* pView ); 66 alias PFN_vkDestroyImageView = void function( VkDevice device, VkImageView imageView, const( VkAllocationCallbacks )* pAllocator ); 67 alias PFN_vkCreateShaderModule = VkResult function( VkDevice device, const( VkShaderModuleCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkShaderModule* pShaderModule ); 68 alias PFN_vkDestroyShaderModule = void function( VkDevice device, VkShaderModule shaderModule, const( VkAllocationCallbacks )* pAllocator ); 69 alias PFN_vkCreatePipelineCache = VkResult function( VkDevice device, const( VkPipelineCacheCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkPipelineCache* pPipelineCache ); 70 alias PFN_vkDestroyPipelineCache = void function( VkDevice device, VkPipelineCache pipelineCache, const( VkAllocationCallbacks )* pAllocator ); 71 alias PFN_vkGetPipelineCacheData = VkResult function( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ); 72 alias PFN_vkMergePipelineCaches = VkResult function( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const( VkPipelineCache )* pSrcCaches ); 73 alias PFN_vkCreateGraphicsPipelines = VkResult function( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkGraphicsPipelineCreateInfo )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkPipeline* pPipelines ); 74 alias PFN_vkCreateComputePipelines = VkResult function( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const( VkComputePipelineCreateInfo )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkPipeline* pPipelines ); 75 alias PFN_vkDestroyPipeline = void function( VkDevice device, VkPipeline pipeline, const( VkAllocationCallbacks )* pAllocator ); 76 alias PFN_vkCreatePipelineLayout = VkResult function( VkDevice device, const( VkPipelineLayoutCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkPipelineLayout* pPipelineLayout ); 77 alias PFN_vkDestroyPipelineLayout = void function( VkDevice device, VkPipelineLayout pipelineLayout, const( VkAllocationCallbacks )* pAllocator ); 78 alias PFN_vkCreateSampler = VkResult function( VkDevice device, const( VkSamplerCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSampler* pSampler ); 79 alias PFN_vkDestroySampler = void function( VkDevice device, VkSampler sampler, const( VkAllocationCallbacks )* pAllocator ); 80 alias PFN_vkCreateDescriptorSetLayout = VkResult function( VkDevice device, const( VkDescriptorSetLayoutCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDescriptorSetLayout* pSetLayout ); 81 alias PFN_vkDestroyDescriptorSetLayout = void function( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const( VkAllocationCallbacks )* pAllocator ); 82 alias PFN_vkCreateDescriptorPool = VkResult function( VkDevice device, const( VkDescriptorPoolCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDescriptorPool* pDescriptorPool ); 83 alias PFN_vkDestroyDescriptorPool = void function( VkDevice device, VkDescriptorPool descriptorPool, const( VkAllocationCallbacks )* pAllocator ); 84 alias PFN_vkResetDescriptorPool = VkResult function( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ); 85 alias PFN_vkAllocateDescriptorSets = VkResult function( VkDevice device, const( VkDescriptorSetAllocateInfo )* pAllocateInfo, VkDescriptorSet* pDescriptorSets ); 86 alias PFN_vkFreeDescriptorSets = VkResult function( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const( VkDescriptorSet )* pDescriptorSets ); 87 alias PFN_vkUpdateDescriptorSets = void function( VkDevice device, uint32_t descriptorWriteCount, const( VkWriteDescriptorSet )* pDescriptorWrites, uint32_t descriptorCopyCount, const( VkCopyDescriptorSet )* pDescriptorCopies ); 88 alias PFN_vkCreateFramebuffer = VkResult function( VkDevice device, const( VkFramebufferCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkFramebuffer* pFramebuffer ); 89 alias PFN_vkDestroyFramebuffer = void function( VkDevice device, VkFramebuffer framebuffer, const( VkAllocationCallbacks )* pAllocator ); 90 alias PFN_vkCreateRenderPass = VkResult function( VkDevice device, const( VkRenderPassCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkRenderPass* pRenderPass ); 91 alias PFN_vkDestroyRenderPass = void function( VkDevice device, VkRenderPass renderPass, const( VkAllocationCallbacks )* pAllocator ); 92 alias PFN_vkGetRenderAreaGranularity = void function( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ); 93 alias PFN_vkCreateCommandPool = VkResult function( VkDevice device, const( VkCommandPoolCreateInfo )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkCommandPool* pCommandPool ); 94 alias PFN_vkDestroyCommandPool = void function( VkDevice device, VkCommandPool commandPool, const( VkAllocationCallbacks )* pAllocator ); 95 alias PFN_vkResetCommandPool = VkResult function( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ); 96 alias PFN_vkAllocateCommandBuffers = VkResult function( VkDevice device, const( VkCommandBufferAllocateInfo )* pAllocateInfo, VkCommandBuffer* pCommandBuffers ); 97 alias PFN_vkFreeCommandBuffers = void function( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const( VkCommandBuffer )* pCommandBuffers ); 98 alias PFN_vkBeginCommandBuffer = VkResult function( VkCommandBuffer commandBuffer, const( VkCommandBufferBeginInfo )* pBeginInfo ); 99 alias PFN_vkEndCommandBuffer = VkResult function( VkCommandBuffer commandBuffer ); 100 alias PFN_vkResetCommandBuffer = VkResult function( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ); 101 alias PFN_vkCmdBindPipeline = void function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ); 102 alias PFN_vkCmdSetViewport = void function( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const( VkViewport )* pViewports ); 103 alias PFN_vkCmdSetScissor = void function( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const( VkRect2D )* pScissors ); 104 alias PFN_vkCmdSetLineWidth = void function( VkCommandBuffer commandBuffer, float lineWidth ); 105 alias PFN_vkCmdSetDepthBias = void function( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ); 106 alias PFN_vkCmdSetBlendConstants = void function( VkCommandBuffer commandBuffer, const float[4] blendConstants ); 107 alias PFN_vkCmdSetDepthBounds = void function( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ); 108 alias PFN_vkCmdSetStencilCompareMask = void function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ); 109 alias PFN_vkCmdSetStencilWriteMask = void function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ); 110 alias PFN_vkCmdSetStencilReference = void function( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ); 111 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 ); 112 alias PFN_vkCmdBindIndexBuffer = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ); 113 alias PFN_vkCmdBindVertexBuffers = void function( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const( VkBuffer )* pBuffers, const( VkDeviceSize )* pOffsets ); 114 alias PFN_vkCmdDraw = void function( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ); 115 alias PFN_vkCmdDrawIndexed = void function( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ); 116 alias PFN_vkCmdDrawIndirect = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ); 117 alias PFN_vkCmdDrawIndexedIndirect = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ); 118 alias PFN_vkCmdDispatch = void function( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ); 119 alias PFN_vkCmdDispatchIndirect = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ); 120 alias PFN_vkCmdCopyBuffer = void function( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const( VkBufferCopy )* pRegions ); 121 alias PFN_vkCmdCopyImage = void function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageCopy )* pRegions ); 122 alias PFN_vkCmdBlitImage = void function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageBlit )* pRegions, VkFilter filter ); 123 alias PFN_vkCmdCopyBufferToImage = void function( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkBufferImageCopy )* pRegions ); 124 alias PFN_vkCmdCopyImageToBuffer = void function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const( VkBufferImageCopy )* pRegions ); 125 alias PFN_vkCmdUpdateBuffer = void function( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const( void )* pData ); 126 alias PFN_vkCmdFillBuffer = void function( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ); 127 alias PFN_vkCmdClearColorImage = void function( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const( VkClearColorValue )* pColor, uint32_t rangeCount, const( VkImageSubresourceRange )* pRanges ); 128 alias PFN_vkCmdClearDepthStencilImage = void function( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const( VkClearDepthStencilValue )* pDepthStencil, uint32_t rangeCount, const( VkImageSubresourceRange )* pRanges ); 129 alias PFN_vkCmdClearAttachments = void function( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const( VkClearAttachment )* pAttachments, uint32_t rectCount, const( VkClearRect )* pRects ); 130 alias PFN_vkCmdResolveImage = void function( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const( VkImageResolve )* pRegions ); 131 alias PFN_vkCmdSetEvent = void function( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ); 132 alias PFN_vkCmdResetEvent = void function( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ); 133 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 ); 134 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 ); 135 alias PFN_vkCmdBeginQuery = void function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ); 136 alias PFN_vkCmdEndQuery = void function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ); 137 alias PFN_vkCmdResetQueryPool = void function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ); 138 alias PFN_vkCmdWriteTimestamp = void function( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ); 139 alias PFN_vkCmdCopyQueryPoolResults = void function( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ); 140 alias PFN_vkCmdPushConstants = void function( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const( void )* pValues ); 141 alias PFN_vkCmdBeginRenderPass = void function( VkCommandBuffer commandBuffer, const( VkRenderPassBeginInfo )* pRenderPassBegin, VkSubpassContents contents ); 142 alias PFN_vkCmdNextSubpass = void function( VkCommandBuffer commandBuffer, VkSubpassContents contents ); 143 alias PFN_vkCmdEndRenderPass = void function( VkCommandBuffer commandBuffer ); 144 alias PFN_vkCmdExecuteCommands = void function( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const( VkCommandBuffer )* pCommandBuffers ); 145 146 // VK_KHR_surface 147 alias PFN_vkDestroySurfaceKHR = void function( VkInstance instance, VkSurfaceKHR surface, const( VkAllocationCallbacks )* pAllocator ); 148 alias PFN_vkGetPhysicalDeviceSurfaceSupportKHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ); 149 alias PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ); 150 alias PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ); 151 alias PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ); 152 153 // VK_KHR_swapchain 154 alias PFN_vkCreateSwapchainKHR = VkResult function( VkDevice device, const( VkSwapchainCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSwapchainKHR* pSwapchain ); 155 alias PFN_vkDestroySwapchainKHR = void function( VkDevice device, VkSwapchainKHR swapchain, const( VkAllocationCallbacks )* pAllocator ); 156 alias PFN_vkGetSwapchainImagesKHR = VkResult function( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ); 157 alias PFN_vkAcquireNextImageKHR = VkResult function( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ); 158 alias PFN_vkQueuePresentKHR = VkResult function( VkQueue queue, const( VkPresentInfoKHR )* pPresentInfo ); 159 160 // VK_KHR_display 161 alias PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ); 162 alias PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ); 163 alias PFN_vkGetDisplayPlaneSupportedDisplaysKHR = VkResult function( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ); 164 alias PFN_vkGetDisplayModePropertiesKHR = VkResult function( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ); 165 alias PFN_vkCreateDisplayModeKHR = VkResult function( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const( VkDisplayModeCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDisplayModeKHR* pMode ); 166 alias PFN_vkGetDisplayPlaneCapabilitiesKHR = VkResult function( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ); 167 alias PFN_vkCreateDisplayPlaneSurfaceKHR = VkResult function( VkInstance instance, const( VkDisplaySurfaceCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 168 169 // VK_KHR_display_swapchain 170 alias PFN_vkCreateSharedSwapchainsKHR = VkResult function( VkDevice device, uint32_t swapchainCount, const( VkSwapchainCreateInfoKHR )* pCreateInfos, const( VkAllocationCallbacks )* pAllocator, VkSwapchainKHR* pSwapchains ); 171 172 // VK_KHR_xlib_surface 173 version( VK_USE_PLATFORM_XLIB_KHR ) { 174 alias PFN_vkCreateXlibSurfaceKHR = VkResult function( VkInstance instance, const( VkXlibSurfaceCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 175 alias PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = VkBool32 function( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ); 176 } 177 178 // VK_KHR_xcb_surface 179 version( VK_USE_PLATFORM_XCB_KHR ) { 180 alias PFN_vkCreateXcbSurfaceKHR = VkResult function( VkInstance instance, const( VkXcbSurfaceCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 181 alias PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = VkBool32 function( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ); 182 } 183 184 // VK_KHR_wayland_surface 185 version( VK_USE_PLATFORM_WAYLAND_KHR ) { 186 alias PFN_vkCreateWaylandSurfaceKHR = VkResult function( VkInstance instance, const( VkWaylandSurfaceCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 187 alias PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = VkBool32 function( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, wl_display* display ); 188 } 189 190 // VK_KHR_mir_surface 191 version( VK_USE_PLATFORM_MIR_KHR ) { 192 alias PFN_vkCreateMirSurfaceKHR = VkResult function( VkInstance instance, const( VkMirSurfaceCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 193 alias PFN_vkGetPhysicalDeviceMirPresentationSupportKHR = VkBool32 function( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection ); 194 } 195 196 // VK_KHR_android_surface 197 version( VK_USE_PLATFORM_ANDROID_KHR ) { 198 alias PFN_vkCreateAndroidSurfaceKHR = VkResult function( VkInstance instance, const( VkAndroidSurfaceCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 199 } 200 201 // VK_KHR_win32_surface 202 version( VK_USE_PLATFORM_WIN32_KHR ) { 203 alias PFN_vkCreateWin32SurfaceKHR = VkResult function( VkInstance instance, const( VkWin32SurfaceCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 204 alias PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR = VkBool32 function( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ); 205 } 206 207 // VK_KHR_get_physical_device_properties2 208 alias PFN_vkGetPhysicalDeviceFeatures2KHR = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures ); 209 alias PFN_vkGetPhysicalDeviceProperties2KHR = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties ); 210 alias PFN_vkGetPhysicalDeviceFormatProperties2KHR = void function( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties ); 211 alias PFN_vkGetPhysicalDeviceImageFormatProperties2KHR = VkResult function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceImageFormatInfo2KHR )* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties ); 212 alias PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR = void function( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties ); 213 alias PFN_vkGetPhysicalDeviceMemoryProperties2KHR = void function( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties ); 214 alias PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = void function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceSparseImageFormatInfo2KHR )* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties ); 215 216 // VK_KHR_maintenance1 217 alias PFN_vkTrimCommandPoolKHR = void function( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags ); 218 219 // VK_KHR_push_descriptor 220 alias PFN_vkCmdPushDescriptorSetKHR = void function( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const( VkWriteDescriptorSet )* pDescriptorWrites ); 221 222 // VK_KHR_descriptor_update_template 223 alias PFN_vkCreateDescriptorUpdateTemplateKHR = VkResult function( VkDevice device, const( VkDescriptorUpdateTemplateCreateInfoKHR )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate ); 224 alias PFN_vkDestroyDescriptorUpdateTemplateKHR = void function( VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const( VkAllocationCallbacks )* pAllocator ); 225 alias PFN_vkUpdateDescriptorSetWithTemplateKHR = void function( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const( void )* pData ); 226 alias PFN_vkCmdPushDescriptorSetWithTemplateKHR = void function( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const( void )* pData ); 227 228 // VK_EXT_debug_report 229 alias PFN_vkCreateDebugReportCallbackEXT = VkResult function( VkInstance instance, const( VkDebugReportCallbackCreateInfoEXT )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkDebugReportCallbackEXT* pCallback ); 230 alias PFN_vkDestroyDebugReportCallbackEXT = void function( VkInstance instance, VkDebugReportCallbackEXT callback, const( VkAllocationCallbacks )* pAllocator ); 231 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 ); 232 233 // VK_EXT_debug_marker 234 alias PFN_vkDebugMarkerSetObjectTagEXT = VkResult function( VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo ); 235 alias PFN_vkDebugMarkerSetObjectNameEXT = VkResult function( VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo ); 236 alias PFN_vkCmdDebugMarkerBeginEXT = void function( VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo ); 237 alias PFN_vkCmdDebugMarkerEndEXT = void function( VkCommandBuffer commandBuffer ); 238 alias PFN_vkCmdDebugMarkerInsertEXT = void function( VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo ); 239 240 // VK_AMD_draw_indirect_count 241 alias PFN_vkCmdDrawIndirectCountAMD = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ); 242 alias PFN_vkCmdDrawIndexedIndirectCountAMD = void function( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ); 243 244 // VK_NV_external_memory_capabilities 245 alias PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV = VkResult function( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ); 246 247 // VK_NV_external_memory_win32 248 version( VK_USE_PLATFORM_WIN32_KHR ) { 249 alias PFN_vkGetMemoryWin32HandleNV = VkResult function( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ); 250 } 251 252 // VK_KHX_device_group 253 alias PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX = void function( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures ); 254 alias PFN_vkBindBufferMemory2KHX = VkResult function( VkDevice device, uint32_t bindInfoCount, const( VkBindBufferMemoryInfoKHX )* pBindInfos ); 255 alias PFN_vkBindImageMemory2KHX = VkResult function( VkDevice device, uint32_t bindInfoCount, const( VkBindImageMemoryInfoKHX )* pBindInfos ); 256 alias PFN_vkCmdSetDeviceMaskKHX = void function( VkCommandBuffer commandBuffer, uint32_t deviceMask ); 257 alias PFN_vkGetDeviceGroupPresentCapabilitiesKHX = VkResult function( VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities ); 258 alias PFN_vkGetDeviceGroupSurfacePresentModesKHX = VkResult function( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes ); 259 alias PFN_vkAcquireNextImage2KHX = VkResult function( VkDevice device, const( VkAcquireNextImageInfoKHX )* pAcquireInfo, uint32_t* pImageIndex ); 260 alias PFN_vkCmdDispatchBaseKHX = void function( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ); 261 alias PFN_vkGetPhysicalDevicePresentRectanglesKHX = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ); 262 263 // VK_NN_vi_surface 264 alias PFN_vkCreateViSurfaceNN = VkResult function( VkInstance instance, const( VkViSurfaceCreateInfoNN )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 265 266 // VK_KHX_device_group_creation 267 alias PFN_vkEnumeratePhysicalDeviceGroupsKHX = VkResult function( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties ); 268 269 // VK_KHX_external_memory_capabilities 270 alias PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHX = void function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceExternalBufferInfoKHX )* pExternalBufferInfo, VkExternalBufferPropertiesKHX* pExternalBufferProperties ); 271 272 // VK_KHX_external_memory_win32 273 version( VK_USE_PLATFORM_WIN32_KHR ) { 274 alias PFN_vkGetMemoryWin32HandleKHX = VkResult function( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE* pHandle ); 275 alias PFN_vkGetMemoryWin32HandlePropertiesKHX = VkResult function( VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties ); 276 } 277 278 // VK_KHX_external_memory_fd 279 alias PFN_vkGetMemoryFdKHX = VkResult function( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int* pFd ); 280 alias PFN_vkGetMemoryFdPropertiesKHX = VkResult function( VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int fd, VkMemoryFdPropertiesKHX* pMemoryFdProperties ); 281 282 // VK_KHX_external_semaphore_capabilities 283 alias PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHX = void function( VkPhysicalDevice physicalDevice, const( VkPhysicalDeviceExternalSemaphoreInfoKHX )* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHX* pExternalSemaphoreProperties ); 284 285 // VK_KHX_external_semaphore_win32 286 version( VK_USE_PLATFORM_WIN32_KHR ) { 287 alias PFN_vkImportSemaphoreWin32HandleKHX = VkResult function( VkDevice device, const( VkImportSemaphoreWin32HandleInfoKHX )* pImportSemaphoreWin32HandleInfo ); 288 alias PFN_vkGetSemaphoreWin32HandleKHX = VkResult function( VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, HANDLE* pHandle ); 289 } 290 291 // VK_KHX_external_semaphore_fd 292 alias PFN_vkImportSemaphoreFdKHX = VkResult function( VkDevice device, const( VkImportSemaphoreFdInfoKHX )* pImportSemaphoreFdInfo ); 293 alias PFN_vkGetSemaphoreFdKHX = VkResult function( VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, int* pFd ); 294 295 // VK_NVX_device_generated_commands 296 alias PFN_vkCmdProcessCommandsNVX = void function( VkCommandBuffer commandBuffer, const( VkCmdProcessCommandsInfoNVX )* pProcessCommandsInfo ); 297 alias PFN_vkCmdReserveSpaceForCommandsNVX = void function( VkCommandBuffer commandBuffer, const( VkCmdReserveSpaceForCommandsInfoNVX )* pReserveSpaceInfo ); 298 alias PFN_vkCreateIndirectCommandsLayoutNVX = VkResult function( VkDevice device, const( VkIndirectCommandsLayoutCreateInfoNVX )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout ); 299 alias PFN_vkDestroyIndirectCommandsLayoutNVX = void function( VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const( VkAllocationCallbacks )* pAllocator ); 300 alias PFN_vkCreateObjectTableNVX = VkResult function( VkDevice device, const( VkObjectTableCreateInfoNVX )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkObjectTableNVX* pObjectTable ); 301 alias PFN_vkDestroyObjectTableNVX = void function( VkDevice device, VkObjectTableNVX objectTable, const( VkAllocationCallbacks )* pAllocator ); 302 alias PFN_vkRegisterObjectsNVX = VkResult function( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const( VkObjectTableEntryNVX* )* ppObjectTableEntries, const( uint32_t )* pObjectIndices ); 303 alias PFN_vkUnregisterObjectsNVX = VkResult function( VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const( VkObjectEntryTypeNVX )* pObjectEntryTypes, const( uint32_t )* pObjectIndices ); 304 alias PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = void function( VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits ); 305 306 // VK_NV_clip_space_w_scaling 307 alias PFN_vkCmdSetViewportWScalingNV = void function( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const( VkViewportWScalingNV )* pViewportWScalings ); 308 309 // VK_EXT_direct_mode_display 310 alias PFN_vkReleaseDisplayEXT = VkResult function( VkPhysicalDevice physicalDevice, VkDisplayKHR display ); 311 312 // VK_EXT_acquire_xlib_display 313 version( VK_USE_PLATFORM_XLIB_KHR ) { 314 alias PFN_vkAcquireXlibDisplayEXT = VkResult function( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ); 315 alias PFN_vkGetRandROutputDisplayEXT = VkResult function( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ); 316 } 317 318 // VK_EXT_display_surface_counter 319 alias PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = VkResult function( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ); 320 321 // VK_EXT_display_control 322 alias PFN_vkDisplayPowerControlEXT = VkResult function( VkDevice device, VkDisplayKHR display, const( VkDisplayPowerInfoEXT )* pDisplayPowerInfo ); 323 alias PFN_vkRegisterDeviceEventEXT = VkResult function( VkDevice device, const( VkDeviceEventInfoEXT )* pDeviceEventInfo, const( VkAllocationCallbacks )* pAllocator, VkFence* pFence ); 324 alias PFN_vkRegisterDisplayEventEXT = VkResult function( VkDevice device, VkDisplayKHR display, const( VkDisplayEventInfoEXT )* pDisplayEventInfo, const( VkAllocationCallbacks )* pAllocator, VkFence* pFence ); 325 alias PFN_vkGetSwapchainCounterEXT = VkResult function( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ); 326 327 // VK_GOOGLE_display_timing 328 alias PFN_vkGetRefreshCycleDurationGOOGLE = VkResult function( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ); 329 alias PFN_vkGetPastPresentationTimingGOOGLE = VkResult function( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ); 330 331 // VK_EXT_discard_rectangles 332 alias PFN_vkCmdSetDiscardRectangleEXT = void function( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const( VkRect2D )* pDiscardRectangles ); 333 334 // VK_EXT_hdr_metadata 335 alias PFN_vkSetHdrMetadataEXT = void function( VkDevice device, uint32_t swapchainCount, const( VkSwapchainKHR )* pSwapchains, const( VkHdrMetadataEXT )* pMetadata ); 336 337 // VK_MVK_ios_surface 338 alias PFN_vkCreateIOSSurfaceMVK = VkResult function( VkInstance instance, const( VkIOSSurfaceCreateInfoMVK )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 339 340 // VK_MVK_macos_surface 341 alias PFN_vkCreateMacOSSurfaceMVK = VkResult function( VkInstance instance, const( VkMacOSSurfaceCreateInfoMVK )* pCreateInfo, const( VkAllocationCallbacks )* pAllocator, VkSurfaceKHR* pSurface ); 342 } 343 344 __gshared { 345 346 // VK_VERSION_1_0 347 PFN_vkCreateInstance vkCreateInstance; 348 PFN_vkDestroyInstance vkDestroyInstance; 349 PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; 350 PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; 351 PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; 352 PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; 353 PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; 354 PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; 355 PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; 356 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; 357 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; 358 PFN_vkCreateDevice vkCreateDevice; 359 PFN_vkDestroyDevice vkDestroyDevice; 360 PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; 361 PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; 362 PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; 363 PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; 364 PFN_vkGetDeviceQueue vkGetDeviceQueue; 365 PFN_vkQueueSubmit vkQueueSubmit; 366 PFN_vkQueueWaitIdle vkQueueWaitIdle; 367 PFN_vkDeviceWaitIdle vkDeviceWaitIdle; 368 PFN_vkAllocateMemory vkAllocateMemory; 369 PFN_vkFreeMemory vkFreeMemory; 370 PFN_vkMapMemory vkMapMemory; 371 PFN_vkUnmapMemory vkUnmapMemory; 372 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 373 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; 374 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; 375 PFN_vkBindBufferMemory vkBindBufferMemory; 376 PFN_vkBindImageMemory vkBindImageMemory; 377 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 378 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; 379 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; 380 PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; 381 PFN_vkQueueBindSparse vkQueueBindSparse; 382 PFN_vkCreateFence vkCreateFence; 383 PFN_vkDestroyFence vkDestroyFence; 384 PFN_vkResetFences vkResetFences; 385 PFN_vkGetFenceStatus vkGetFenceStatus; 386 PFN_vkWaitForFences vkWaitForFences; 387 PFN_vkCreateSemaphore vkCreateSemaphore; 388 PFN_vkDestroySemaphore vkDestroySemaphore; 389 PFN_vkCreateEvent vkCreateEvent; 390 PFN_vkDestroyEvent vkDestroyEvent; 391 PFN_vkGetEventStatus vkGetEventStatus; 392 PFN_vkSetEvent vkSetEvent; 393 PFN_vkResetEvent vkResetEvent; 394 PFN_vkCreateQueryPool vkCreateQueryPool; 395 PFN_vkDestroyQueryPool vkDestroyQueryPool; 396 PFN_vkGetQueryPoolResults vkGetQueryPoolResults; 397 PFN_vkCreateBuffer vkCreateBuffer; 398 PFN_vkDestroyBuffer vkDestroyBuffer; 399 PFN_vkCreateBufferView vkCreateBufferView; 400 PFN_vkDestroyBufferView vkDestroyBufferView; 401 PFN_vkCreateImage vkCreateImage; 402 PFN_vkDestroyImage vkDestroyImage; 403 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; 404 PFN_vkCreateImageView vkCreateImageView; 405 PFN_vkDestroyImageView vkDestroyImageView; 406 PFN_vkCreateShaderModule vkCreateShaderModule; 407 PFN_vkDestroyShaderModule vkDestroyShaderModule; 408 PFN_vkCreatePipelineCache vkCreatePipelineCache; 409 PFN_vkDestroyPipelineCache vkDestroyPipelineCache; 410 PFN_vkGetPipelineCacheData vkGetPipelineCacheData; 411 PFN_vkMergePipelineCaches vkMergePipelineCaches; 412 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; 413 PFN_vkCreateComputePipelines vkCreateComputePipelines; 414 PFN_vkDestroyPipeline vkDestroyPipeline; 415 PFN_vkCreatePipelineLayout vkCreatePipelineLayout; 416 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; 417 PFN_vkCreateSampler vkCreateSampler; 418 PFN_vkDestroySampler vkDestroySampler; 419 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; 420 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; 421 PFN_vkCreateDescriptorPool vkCreateDescriptorPool; 422 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; 423 PFN_vkResetDescriptorPool vkResetDescriptorPool; 424 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; 425 PFN_vkFreeDescriptorSets vkFreeDescriptorSets; 426 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; 427 PFN_vkCreateFramebuffer vkCreateFramebuffer; 428 PFN_vkDestroyFramebuffer vkDestroyFramebuffer; 429 PFN_vkCreateRenderPass vkCreateRenderPass; 430 PFN_vkDestroyRenderPass vkDestroyRenderPass; 431 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; 432 PFN_vkCreateCommandPool vkCreateCommandPool; 433 PFN_vkDestroyCommandPool vkDestroyCommandPool; 434 PFN_vkResetCommandPool vkResetCommandPool; 435 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; 436 PFN_vkFreeCommandBuffers vkFreeCommandBuffers; 437 PFN_vkBeginCommandBuffer vkBeginCommandBuffer; 438 PFN_vkEndCommandBuffer vkEndCommandBuffer; 439 PFN_vkResetCommandBuffer vkResetCommandBuffer; 440 PFN_vkCmdBindPipeline vkCmdBindPipeline; 441 PFN_vkCmdSetViewport vkCmdSetViewport; 442 PFN_vkCmdSetScissor vkCmdSetScissor; 443 PFN_vkCmdSetLineWidth vkCmdSetLineWidth; 444 PFN_vkCmdSetDepthBias vkCmdSetDepthBias; 445 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; 446 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; 447 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; 448 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; 449 PFN_vkCmdSetStencilReference vkCmdSetStencilReference; 450 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; 451 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; 452 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; 453 PFN_vkCmdDraw vkCmdDraw; 454 PFN_vkCmdDrawIndexed vkCmdDrawIndexed; 455 PFN_vkCmdDrawIndirect vkCmdDrawIndirect; 456 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; 457 PFN_vkCmdDispatch vkCmdDispatch; 458 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; 459 PFN_vkCmdCopyBuffer vkCmdCopyBuffer; 460 PFN_vkCmdCopyImage vkCmdCopyImage; 461 PFN_vkCmdBlitImage vkCmdBlitImage; 462 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; 463 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; 464 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; 465 PFN_vkCmdFillBuffer vkCmdFillBuffer; 466 PFN_vkCmdClearColorImage vkCmdClearColorImage; 467 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; 468 PFN_vkCmdClearAttachments vkCmdClearAttachments; 469 PFN_vkCmdResolveImage vkCmdResolveImage; 470 PFN_vkCmdSetEvent vkCmdSetEvent; 471 PFN_vkCmdResetEvent vkCmdResetEvent; 472 PFN_vkCmdWaitEvents vkCmdWaitEvents; 473 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; 474 PFN_vkCmdBeginQuery vkCmdBeginQuery; 475 PFN_vkCmdEndQuery vkCmdEndQuery; 476 PFN_vkCmdResetQueryPool vkCmdResetQueryPool; 477 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; 478 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; 479 PFN_vkCmdPushConstants vkCmdPushConstants; 480 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; 481 PFN_vkCmdNextSubpass vkCmdNextSubpass; 482 PFN_vkCmdEndRenderPass vkCmdEndRenderPass; 483 PFN_vkCmdExecuteCommands vkCmdExecuteCommands; 484 485 // VK_KHR_surface 486 PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; 487 PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; 488 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; 489 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; 490 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; 491 492 // VK_KHR_swapchain 493 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; 494 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; 495 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; 496 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; 497 PFN_vkQueuePresentKHR vkQueuePresentKHR; 498 499 // VK_KHR_display 500 PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; 501 PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; 502 PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; 503 PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; 504 PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; 505 PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; 506 PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; 507 508 // VK_KHR_display_swapchain 509 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; 510 511 // VK_KHR_xlib_surface 512 version( VK_USE_PLATFORM_XLIB_KHR ) { 513 PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; 514 PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; 515 } 516 517 // VK_KHR_xcb_surface 518 version( VK_USE_PLATFORM_XCB_KHR ) { 519 PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; 520 PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; 521 } 522 523 // VK_KHR_wayland_surface 524 version( VK_USE_PLATFORM_WAYLAND_KHR ) { 525 PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; 526 PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; 527 } 528 529 // VK_KHR_mir_surface 530 version( VK_USE_PLATFORM_MIR_KHR ) { 531 PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR; 532 PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR; 533 } 534 535 // VK_KHR_android_surface 536 version( VK_USE_PLATFORM_ANDROID_KHR ) { 537 PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; 538 } 539 540 // VK_KHR_win32_surface 541 version( VK_USE_PLATFORM_WIN32_KHR ) { 542 PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; 543 PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; 544 } 545 546 // VK_KHR_get_physical_device_properties2 547 PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; 548 PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; 549 PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; 550 PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; 551 PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; 552 PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; 553 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; 554 555 // VK_KHR_maintenance1 556 PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; 557 558 // VK_KHR_push_descriptor 559 PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; 560 561 // VK_KHR_descriptor_update_template 562 PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; 563 PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; 564 PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; 565 PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; 566 567 // VK_EXT_debug_report 568 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; 569 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; 570 PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; 571 572 // VK_EXT_debug_marker 573 PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; 574 PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; 575 PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; 576 PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; 577 PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; 578 579 // VK_AMD_draw_indirect_count 580 PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; 581 PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; 582 583 // VK_NV_external_memory_capabilities 584 PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; 585 586 // VK_NV_external_memory_win32 587 version( VK_USE_PLATFORM_WIN32_KHR ) { 588 PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; 589 } 590 591 // VK_KHX_device_group 592 PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX vkGetDeviceGroupPeerMemoryFeaturesKHX; 593 PFN_vkBindBufferMemory2KHX vkBindBufferMemory2KHX; 594 PFN_vkBindImageMemory2KHX vkBindImageMemory2KHX; 595 PFN_vkCmdSetDeviceMaskKHX vkCmdSetDeviceMaskKHX; 596 PFN_vkGetDeviceGroupPresentCapabilitiesKHX vkGetDeviceGroupPresentCapabilitiesKHX; 597 PFN_vkGetDeviceGroupSurfacePresentModesKHX vkGetDeviceGroupSurfacePresentModesKHX; 598 PFN_vkAcquireNextImage2KHX vkAcquireNextImage2KHX; 599 PFN_vkCmdDispatchBaseKHX vkCmdDispatchBaseKHX; 600 PFN_vkGetPhysicalDevicePresentRectanglesKHX vkGetPhysicalDevicePresentRectanglesKHX; 601 602 // VK_NN_vi_surface 603 PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN; 604 605 // VK_KHX_device_group_creation 606 PFN_vkEnumeratePhysicalDeviceGroupsKHX vkEnumeratePhysicalDeviceGroupsKHX; 607 608 // VK_KHX_external_memory_capabilities 609 PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHX vkGetPhysicalDeviceExternalBufferPropertiesKHX; 610 611 // VK_KHX_external_memory_win32 612 version( VK_USE_PLATFORM_WIN32_KHR ) { 613 PFN_vkGetMemoryWin32HandleKHX vkGetMemoryWin32HandleKHX; 614 PFN_vkGetMemoryWin32HandlePropertiesKHX vkGetMemoryWin32HandlePropertiesKHX; 615 } 616 617 // VK_KHX_external_memory_fd 618 PFN_vkGetMemoryFdKHX vkGetMemoryFdKHX; 619 PFN_vkGetMemoryFdPropertiesKHX vkGetMemoryFdPropertiesKHX; 620 621 // VK_KHX_external_semaphore_capabilities 622 PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHX vkGetPhysicalDeviceExternalSemaphorePropertiesKHX; 623 624 // VK_KHX_external_semaphore_win32 625 version( VK_USE_PLATFORM_WIN32_KHR ) { 626 PFN_vkImportSemaphoreWin32HandleKHX vkImportSemaphoreWin32HandleKHX; 627 PFN_vkGetSemaphoreWin32HandleKHX vkGetSemaphoreWin32HandleKHX; 628 } 629 630 // VK_KHX_external_semaphore_fd 631 PFN_vkImportSemaphoreFdKHX vkImportSemaphoreFdKHX; 632 PFN_vkGetSemaphoreFdKHX vkGetSemaphoreFdKHX; 633 634 // VK_NVX_device_generated_commands 635 PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX; 636 PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX; 637 PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX; 638 PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX; 639 PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX; 640 PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX; 641 PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX; 642 PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX; 643 PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX; 644 645 // VK_NV_clip_space_w_scaling 646 PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; 647 648 // VK_EXT_direct_mode_display 649 PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; 650 651 // VK_EXT_acquire_xlib_display 652 version( VK_USE_PLATFORM_XLIB_KHR ) { 653 PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; 654 PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; 655 } 656 657 // VK_EXT_display_surface_counter 658 PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; 659 660 // VK_EXT_display_control 661 PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; 662 PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; 663 PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; 664 PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; 665 666 // VK_GOOGLE_display_timing 667 PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; 668 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; 669 670 // VK_EXT_discard_rectangles 671 PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; 672 673 // VK_EXT_hdr_metadata 674 PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; 675 676 // VK_MVK_ios_surface 677 PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK; 678 679 // VK_MVK_macos_surface 680 PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK; 681 } 682 683 /// if not using version "with-derelict-loader" this function must be called first 684 /// sets vkCreateInstance function pointer and acquires basic functions to retrieve information about the implementation 685 void loadGlobalLevelFunctions( typeof( vkGetInstanceProcAddr ) getProcAddr ) { 686 vkGetInstanceProcAddr = getProcAddr; 687 vkEnumerateInstanceExtensionProperties = cast( typeof( vkEnumerateInstanceExtensionProperties )) vkGetInstanceProcAddr( null, "vkEnumerateInstanceExtensionProperties" ); 688 vkEnumerateInstanceLayerProperties = cast( typeof( vkEnumerateInstanceLayerProperties )) vkGetInstanceProcAddr( null, "vkEnumerateInstanceLayerProperties" ); 689 vkCreateInstance = cast( typeof( vkCreateInstance )) vkGetInstanceProcAddr( null, "vkCreateInstance" ); 690 } 691 692 /// with a valid VkInstance call this function to retrieve additional VkInstance, VkPhysicalDevice, ... related functions 693 void loadInstanceLevelFunctions( VkInstance instance ) { 694 assert( vkGetInstanceProcAddr !is null, "Must call loadGlobalLevelFunctions before loadInstanceLevelFunctions" ); 695 696 // VK_VERSION_1_0 697 vkDestroyInstance = cast( typeof( vkDestroyInstance )) vkGetInstanceProcAddr( instance, "vkDestroyInstance" ); 698 vkEnumeratePhysicalDevices = cast( typeof( vkEnumeratePhysicalDevices )) vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ); 699 vkGetPhysicalDeviceFeatures = cast( typeof( vkGetPhysicalDeviceFeatures )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ); 700 vkGetPhysicalDeviceFormatProperties = cast( typeof( vkGetPhysicalDeviceFormatProperties )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ); 701 vkGetPhysicalDeviceImageFormatProperties = cast( typeof( vkGetPhysicalDeviceImageFormatProperties )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ); 702 vkGetPhysicalDeviceProperties = cast( typeof( vkGetPhysicalDeviceProperties )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ); 703 vkGetPhysicalDeviceQueueFamilyProperties = cast( typeof( vkGetPhysicalDeviceQueueFamilyProperties )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ); 704 vkGetPhysicalDeviceMemoryProperties = cast( typeof( vkGetPhysicalDeviceMemoryProperties )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ); 705 vkGetDeviceProcAddr = cast( typeof( vkGetDeviceProcAddr )) vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ); 706 vkCreateDevice = cast( typeof( vkCreateDevice )) vkGetInstanceProcAddr( instance, "vkCreateDevice" ); 707 vkEnumerateDeviceExtensionProperties = cast( typeof( vkEnumerateDeviceExtensionProperties )) vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ); 708 vkEnumerateDeviceLayerProperties = cast( typeof( vkEnumerateDeviceLayerProperties )) vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ); 709 vkGetPhysicalDeviceSparseImageFormatProperties = cast( typeof( vkGetPhysicalDeviceSparseImageFormatProperties )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ); 710 711 // VK_KHR_surface 712 vkDestroySurfaceKHR = cast( typeof( vkDestroySurfaceKHR )) vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ); 713 vkGetPhysicalDeviceSurfaceSupportKHR = cast( typeof( vkGetPhysicalDeviceSurfaceSupportKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ); 714 vkGetPhysicalDeviceSurfaceCapabilitiesKHR = cast( typeof( vkGetPhysicalDeviceSurfaceCapabilitiesKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ); 715 vkGetPhysicalDeviceSurfaceFormatsKHR = cast( typeof( vkGetPhysicalDeviceSurfaceFormatsKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ); 716 vkGetPhysicalDeviceSurfacePresentModesKHR = cast( typeof( vkGetPhysicalDeviceSurfacePresentModesKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ); 717 718 // VK_KHR_display 719 vkGetPhysicalDeviceDisplayPropertiesKHR = cast( typeof( vkGetPhysicalDeviceDisplayPropertiesKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ); 720 vkGetPhysicalDeviceDisplayPlanePropertiesKHR = cast( typeof( vkGetPhysicalDeviceDisplayPlanePropertiesKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ); 721 vkGetDisplayPlaneSupportedDisplaysKHR = cast( typeof( vkGetDisplayPlaneSupportedDisplaysKHR )) vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ); 722 vkGetDisplayModePropertiesKHR = cast( typeof( vkGetDisplayModePropertiesKHR )) vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ); 723 vkCreateDisplayModeKHR = cast( typeof( vkCreateDisplayModeKHR )) vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ); 724 vkGetDisplayPlaneCapabilitiesKHR = cast( typeof( vkGetDisplayPlaneCapabilitiesKHR )) vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ); 725 vkCreateDisplayPlaneSurfaceKHR = cast( typeof( vkCreateDisplayPlaneSurfaceKHR )) vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ); 726 727 // VK_KHR_xlib_surface 728 version( VK_USE_PLATFORM_XLIB_KHR ) { 729 vkCreateXlibSurfaceKHR = cast( typeof( vkCreateXlibSurfaceKHR )) vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ); 730 vkGetPhysicalDeviceXlibPresentationSupportKHR = cast( typeof( vkGetPhysicalDeviceXlibPresentationSupportKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ); 731 } 732 733 // VK_KHR_xcb_surface 734 version( VK_USE_PLATFORM_XCB_KHR ) { 735 vkCreateXcbSurfaceKHR = cast( typeof( vkCreateXcbSurfaceKHR )) vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ); 736 vkGetPhysicalDeviceXcbPresentationSupportKHR = cast( typeof( vkGetPhysicalDeviceXcbPresentationSupportKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ); 737 } 738 739 // VK_KHR_wayland_surface 740 version( VK_USE_PLATFORM_WAYLAND_KHR ) { 741 vkCreateWaylandSurfaceKHR = cast( typeof( vkCreateWaylandSurfaceKHR )) vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ); 742 vkGetPhysicalDeviceWaylandPresentationSupportKHR = cast( typeof( vkGetPhysicalDeviceWaylandPresentationSupportKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ); 743 } 744 745 // VK_KHR_mir_surface 746 version( VK_USE_PLATFORM_MIR_KHR ) { 747 vkCreateMirSurfaceKHR = cast( typeof( vkCreateMirSurfaceKHR )) vkGetInstanceProcAddr( instance, "vkCreateMirSurfaceKHR" ); 748 vkGetPhysicalDeviceMirPresentationSupportKHR = cast( typeof( vkGetPhysicalDeviceMirPresentationSupportKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMirPresentationSupportKHR" ); 749 } 750 751 // VK_KHR_android_surface 752 version( VK_USE_PLATFORM_ANDROID_KHR ) { 753 vkCreateAndroidSurfaceKHR = cast( typeof( vkCreateAndroidSurfaceKHR )) vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ); 754 } 755 756 // VK_KHR_win32_surface 757 version( VK_USE_PLATFORM_WIN32_KHR ) { 758 vkCreateWin32SurfaceKHR = cast( typeof( vkCreateWin32SurfaceKHR )) vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ); 759 vkGetPhysicalDeviceWin32PresentationSupportKHR = cast( typeof( vkGetPhysicalDeviceWin32PresentationSupportKHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ); 760 } 761 762 // VK_KHR_get_physical_device_properties2 763 vkGetPhysicalDeviceFeatures2KHR = cast( typeof( vkGetPhysicalDeviceFeatures2KHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ); 764 vkGetPhysicalDeviceProperties2KHR = cast( typeof( vkGetPhysicalDeviceProperties2KHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ); 765 vkGetPhysicalDeviceFormatProperties2KHR = cast( typeof( vkGetPhysicalDeviceFormatProperties2KHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ); 766 vkGetPhysicalDeviceImageFormatProperties2KHR = cast( typeof( vkGetPhysicalDeviceImageFormatProperties2KHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ); 767 vkGetPhysicalDeviceQueueFamilyProperties2KHR = cast( typeof( vkGetPhysicalDeviceQueueFamilyProperties2KHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ); 768 vkGetPhysicalDeviceMemoryProperties2KHR = cast( typeof( vkGetPhysicalDeviceMemoryProperties2KHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ); 769 vkGetPhysicalDeviceSparseImageFormatProperties2KHR = cast( typeof( vkGetPhysicalDeviceSparseImageFormatProperties2KHR )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ); 770 771 // VK_EXT_debug_report 772 vkCreateDebugReportCallbackEXT = cast( typeof( vkCreateDebugReportCallbackEXT )) vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ); 773 vkDestroyDebugReportCallbackEXT = cast( typeof( vkDestroyDebugReportCallbackEXT )) vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ); 774 vkDebugReportMessageEXT = cast( typeof( vkDebugReportMessageEXT )) vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ); 775 776 // VK_NV_external_memory_capabilities 777 vkGetPhysicalDeviceExternalImageFormatPropertiesNV = cast( typeof( vkGetPhysicalDeviceExternalImageFormatPropertiesNV )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ); 778 779 // VK_KHX_device_group 780 vkGetPhysicalDevicePresentRectanglesKHX = cast( typeof( vkGetPhysicalDevicePresentRectanglesKHX )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHX" ); 781 782 // VK_NN_vi_surface 783 vkCreateViSurfaceNN = cast( typeof( vkCreateViSurfaceNN )) vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ); 784 785 // VK_KHX_device_group_creation 786 vkEnumeratePhysicalDeviceGroupsKHX = cast( typeof( vkEnumeratePhysicalDeviceGroupsKHX )) vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHX" ); 787 788 // VK_KHX_external_memory_capabilities 789 vkGetPhysicalDeviceExternalBufferPropertiesKHX = cast( typeof( vkGetPhysicalDeviceExternalBufferPropertiesKHX )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHX" ); 790 791 // VK_KHX_external_semaphore_capabilities 792 vkGetPhysicalDeviceExternalSemaphorePropertiesKHX = cast( typeof( vkGetPhysicalDeviceExternalSemaphorePropertiesKHX )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHX" ); 793 794 // VK_NVX_device_generated_commands 795 vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = cast( typeof( vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX" ); 796 797 // VK_EXT_direct_mode_display 798 vkReleaseDisplayEXT = cast( typeof( vkReleaseDisplayEXT )) vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ); 799 800 // VK_EXT_acquire_xlib_display 801 version( VK_USE_PLATFORM_XLIB_KHR ) { 802 vkAcquireXlibDisplayEXT = cast( typeof( vkAcquireXlibDisplayEXT )) vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ); 803 vkGetRandROutputDisplayEXT = cast( typeof( vkGetRandROutputDisplayEXT )) vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ); 804 } 805 806 // VK_EXT_display_surface_counter 807 vkGetPhysicalDeviceSurfaceCapabilities2EXT = cast( typeof( vkGetPhysicalDeviceSurfaceCapabilities2EXT )) vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ); 808 809 // VK_MVK_ios_surface 810 vkCreateIOSSurfaceMVK = cast( typeof( vkCreateIOSSurfaceMVK )) vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ); 811 812 // VK_MVK_macos_surface 813 vkCreateMacOSSurfaceMVK = cast( typeof( vkCreateMacOSSurfaceMVK )) vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ); 814 } 815 816 /// with a valid VkInstance call this function to retrieve VkDevice, VkQueue and VkCommandBuffer related functions 817 /// the functions call indirectly through the VkInstance and will be internally dispatched by the implementation 818 /// use loadDeviceLevelFunctions( VkDevice device ) bellow to avoid this indirection and get the pointers directly form a VkDevice 819 void loadDeviceLevelFunctions( VkInstance instance ) { 820 assert( vkGetInstanceProcAddr !is null, "Must call loadInstanceLevelFunctions before loadDeviceLevelFunctions" ); 821 822 // VK_VERSION_1_0 823 vkDestroyDevice = cast( typeof( vkDestroyDevice )) vkGetInstanceProcAddr( instance, "vkDestroyDevice" ); 824 vkGetDeviceQueue = cast( typeof( vkGetDeviceQueue )) vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ); 825 vkQueueSubmit = cast( typeof( vkQueueSubmit )) vkGetInstanceProcAddr( instance, "vkQueueSubmit" ); 826 vkQueueWaitIdle = cast( typeof( vkQueueWaitIdle )) vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ); 827 vkDeviceWaitIdle = cast( typeof( vkDeviceWaitIdle )) vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ); 828 vkAllocateMemory = cast( typeof( vkAllocateMemory )) vkGetInstanceProcAddr( instance, "vkAllocateMemory" ); 829 vkFreeMemory = cast( typeof( vkFreeMemory )) vkGetInstanceProcAddr( instance, "vkFreeMemory" ); 830 vkMapMemory = cast( typeof( vkMapMemory )) vkGetInstanceProcAddr( instance, "vkMapMemory" ); 831 vkUnmapMemory = cast( typeof( vkUnmapMemory )) vkGetInstanceProcAddr( instance, "vkUnmapMemory" ); 832 vkFlushMappedMemoryRanges = cast( typeof( vkFlushMappedMemoryRanges )) vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ); 833 vkInvalidateMappedMemoryRanges = cast( typeof( vkInvalidateMappedMemoryRanges )) vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ); 834 vkGetDeviceMemoryCommitment = cast( typeof( vkGetDeviceMemoryCommitment )) vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ); 835 vkBindBufferMemory = cast( typeof( vkBindBufferMemory )) vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ); 836 vkBindImageMemory = cast( typeof( vkBindImageMemory )) vkGetInstanceProcAddr( instance, "vkBindImageMemory" ); 837 vkGetBufferMemoryRequirements = cast( typeof( vkGetBufferMemoryRequirements )) vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ); 838 vkGetImageMemoryRequirements = cast( typeof( vkGetImageMemoryRequirements )) vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ); 839 vkGetImageSparseMemoryRequirements = cast( typeof( vkGetImageSparseMemoryRequirements )) vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ); 840 vkQueueBindSparse = cast( typeof( vkQueueBindSparse )) vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ); 841 vkCreateFence = cast( typeof( vkCreateFence )) vkGetInstanceProcAddr( instance, "vkCreateFence" ); 842 vkDestroyFence = cast( typeof( vkDestroyFence )) vkGetInstanceProcAddr( instance, "vkDestroyFence" ); 843 vkResetFences = cast( typeof( vkResetFences )) vkGetInstanceProcAddr( instance, "vkResetFences" ); 844 vkGetFenceStatus = cast( typeof( vkGetFenceStatus )) vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ); 845 vkWaitForFences = cast( typeof( vkWaitForFences )) vkGetInstanceProcAddr( instance, "vkWaitForFences" ); 846 vkCreateSemaphore = cast( typeof( vkCreateSemaphore )) vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ); 847 vkDestroySemaphore = cast( typeof( vkDestroySemaphore )) vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ); 848 vkCreateEvent = cast( typeof( vkCreateEvent )) vkGetInstanceProcAddr( instance, "vkCreateEvent" ); 849 vkDestroyEvent = cast( typeof( vkDestroyEvent )) vkGetInstanceProcAddr( instance, "vkDestroyEvent" ); 850 vkGetEventStatus = cast( typeof( vkGetEventStatus )) vkGetInstanceProcAddr( instance, "vkGetEventStatus" ); 851 vkSetEvent = cast( typeof( vkSetEvent )) vkGetInstanceProcAddr( instance, "vkSetEvent" ); 852 vkResetEvent = cast( typeof( vkResetEvent )) vkGetInstanceProcAddr( instance, "vkResetEvent" ); 853 vkCreateQueryPool = cast( typeof( vkCreateQueryPool )) vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ); 854 vkDestroyQueryPool = cast( typeof( vkDestroyQueryPool )) vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ); 855 vkGetQueryPoolResults = cast( typeof( vkGetQueryPoolResults )) vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ); 856 vkCreateBuffer = cast( typeof( vkCreateBuffer )) vkGetInstanceProcAddr( instance, "vkCreateBuffer" ); 857 vkDestroyBuffer = cast( typeof( vkDestroyBuffer )) vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ); 858 vkCreateBufferView = cast( typeof( vkCreateBufferView )) vkGetInstanceProcAddr( instance, "vkCreateBufferView" ); 859 vkDestroyBufferView = cast( typeof( vkDestroyBufferView )) vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ); 860 vkCreateImage = cast( typeof( vkCreateImage )) vkGetInstanceProcAddr( instance, "vkCreateImage" ); 861 vkDestroyImage = cast( typeof( vkDestroyImage )) vkGetInstanceProcAddr( instance, "vkDestroyImage" ); 862 vkGetImageSubresourceLayout = cast( typeof( vkGetImageSubresourceLayout )) vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ); 863 vkCreateImageView = cast( typeof( vkCreateImageView )) vkGetInstanceProcAddr( instance, "vkCreateImageView" ); 864 vkDestroyImageView = cast( typeof( vkDestroyImageView )) vkGetInstanceProcAddr( instance, "vkDestroyImageView" ); 865 vkCreateShaderModule = cast( typeof( vkCreateShaderModule )) vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ); 866 vkDestroyShaderModule = cast( typeof( vkDestroyShaderModule )) vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ); 867 vkCreatePipelineCache = cast( typeof( vkCreatePipelineCache )) vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ); 868 vkDestroyPipelineCache = cast( typeof( vkDestroyPipelineCache )) vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ); 869 vkGetPipelineCacheData = cast( typeof( vkGetPipelineCacheData )) vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ); 870 vkMergePipelineCaches = cast( typeof( vkMergePipelineCaches )) vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ); 871 vkCreateGraphicsPipelines = cast( typeof( vkCreateGraphicsPipelines )) vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ); 872 vkCreateComputePipelines = cast( typeof( vkCreateComputePipelines )) vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ); 873 vkDestroyPipeline = cast( typeof( vkDestroyPipeline )) vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ); 874 vkCreatePipelineLayout = cast( typeof( vkCreatePipelineLayout )) vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ); 875 vkDestroyPipelineLayout = cast( typeof( vkDestroyPipelineLayout )) vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ); 876 vkCreateSampler = cast( typeof( vkCreateSampler )) vkGetInstanceProcAddr( instance, "vkCreateSampler" ); 877 vkDestroySampler = cast( typeof( vkDestroySampler )) vkGetInstanceProcAddr( instance, "vkDestroySampler" ); 878 vkCreateDescriptorSetLayout = cast( typeof( vkCreateDescriptorSetLayout )) vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ); 879 vkDestroyDescriptorSetLayout = cast( typeof( vkDestroyDescriptorSetLayout )) vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ); 880 vkCreateDescriptorPool = cast( typeof( vkCreateDescriptorPool )) vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ); 881 vkDestroyDescriptorPool = cast( typeof( vkDestroyDescriptorPool )) vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ); 882 vkResetDescriptorPool = cast( typeof( vkResetDescriptorPool )) vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ); 883 vkAllocateDescriptorSets = cast( typeof( vkAllocateDescriptorSets )) vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ); 884 vkFreeDescriptorSets = cast( typeof( vkFreeDescriptorSets )) vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ); 885 vkUpdateDescriptorSets = cast( typeof( vkUpdateDescriptorSets )) vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ); 886 vkCreateFramebuffer = cast( typeof( vkCreateFramebuffer )) vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ); 887 vkDestroyFramebuffer = cast( typeof( vkDestroyFramebuffer )) vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ); 888 vkCreateRenderPass = cast( typeof( vkCreateRenderPass )) vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ); 889 vkDestroyRenderPass = cast( typeof( vkDestroyRenderPass )) vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ); 890 vkGetRenderAreaGranularity = cast( typeof( vkGetRenderAreaGranularity )) vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ); 891 vkCreateCommandPool = cast( typeof( vkCreateCommandPool )) vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ); 892 vkDestroyCommandPool = cast( typeof( vkDestroyCommandPool )) vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ); 893 vkResetCommandPool = cast( typeof( vkResetCommandPool )) vkGetInstanceProcAddr( instance, "vkResetCommandPool" ); 894 vkAllocateCommandBuffers = cast( typeof( vkAllocateCommandBuffers )) vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ); 895 vkFreeCommandBuffers = cast( typeof( vkFreeCommandBuffers )) vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ); 896 vkBeginCommandBuffer = cast( typeof( vkBeginCommandBuffer )) vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ); 897 vkEndCommandBuffer = cast( typeof( vkEndCommandBuffer )) vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ); 898 vkResetCommandBuffer = cast( typeof( vkResetCommandBuffer )) vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ); 899 vkCmdBindPipeline = cast( typeof( vkCmdBindPipeline )) vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ); 900 vkCmdSetViewport = cast( typeof( vkCmdSetViewport )) vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ); 901 vkCmdSetScissor = cast( typeof( vkCmdSetScissor )) vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ); 902 vkCmdSetLineWidth = cast( typeof( vkCmdSetLineWidth )) vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ); 903 vkCmdSetDepthBias = cast( typeof( vkCmdSetDepthBias )) vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ); 904 vkCmdSetBlendConstants = cast( typeof( vkCmdSetBlendConstants )) vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ); 905 vkCmdSetDepthBounds = cast( typeof( vkCmdSetDepthBounds )) vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ); 906 vkCmdSetStencilCompareMask = cast( typeof( vkCmdSetStencilCompareMask )) vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ); 907 vkCmdSetStencilWriteMask = cast( typeof( vkCmdSetStencilWriteMask )) vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ); 908 vkCmdSetStencilReference = cast( typeof( vkCmdSetStencilReference )) vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ); 909 vkCmdBindDescriptorSets = cast( typeof( vkCmdBindDescriptorSets )) vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ); 910 vkCmdBindIndexBuffer = cast( typeof( vkCmdBindIndexBuffer )) vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ); 911 vkCmdBindVertexBuffers = cast( typeof( vkCmdBindVertexBuffers )) vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ); 912 vkCmdDraw = cast( typeof( vkCmdDraw )) vkGetInstanceProcAddr( instance, "vkCmdDraw" ); 913 vkCmdDrawIndexed = cast( typeof( vkCmdDrawIndexed )) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ); 914 vkCmdDrawIndirect = cast( typeof( vkCmdDrawIndirect )) vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ); 915 vkCmdDrawIndexedIndirect = cast( typeof( vkCmdDrawIndexedIndirect )) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ); 916 vkCmdDispatch = cast( typeof( vkCmdDispatch )) vkGetInstanceProcAddr( instance, "vkCmdDispatch" ); 917 vkCmdDispatchIndirect = cast( typeof( vkCmdDispatchIndirect )) vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ); 918 vkCmdCopyBuffer = cast( typeof( vkCmdCopyBuffer )) vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ); 919 vkCmdCopyImage = cast( typeof( vkCmdCopyImage )) vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ); 920 vkCmdBlitImage = cast( typeof( vkCmdBlitImage )) vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ); 921 vkCmdCopyBufferToImage = cast( typeof( vkCmdCopyBufferToImage )) vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ); 922 vkCmdCopyImageToBuffer = cast( typeof( vkCmdCopyImageToBuffer )) vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ); 923 vkCmdUpdateBuffer = cast( typeof( vkCmdUpdateBuffer )) vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ); 924 vkCmdFillBuffer = cast( typeof( vkCmdFillBuffer )) vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ); 925 vkCmdClearColorImage = cast( typeof( vkCmdClearColorImage )) vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ); 926 vkCmdClearDepthStencilImage = cast( typeof( vkCmdClearDepthStencilImage )) vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ); 927 vkCmdClearAttachments = cast( typeof( vkCmdClearAttachments )) vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ); 928 vkCmdResolveImage = cast( typeof( vkCmdResolveImage )) vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ); 929 vkCmdSetEvent = cast( typeof( vkCmdSetEvent )) vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ); 930 vkCmdResetEvent = cast( typeof( vkCmdResetEvent )) vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ); 931 vkCmdWaitEvents = cast( typeof( vkCmdWaitEvents )) vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ); 932 vkCmdPipelineBarrier = cast( typeof( vkCmdPipelineBarrier )) vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ); 933 vkCmdBeginQuery = cast( typeof( vkCmdBeginQuery )) vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ); 934 vkCmdEndQuery = cast( typeof( vkCmdEndQuery )) vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ); 935 vkCmdResetQueryPool = cast( typeof( vkCmdResetQueryPool )) vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ); 936 vkCmdWriteTimestamp = cast( typeof( vkCmdWriteTimestamp )) vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ); 937 vkCmdCopyQueryPoolResults = cast( typeof( vkCmdCopyQueryPoolResults )) vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ); 938 vkCmdPushConstants = cast( typeof( vkCmdPushConstants )) vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ); 939 vkCmdBeginRenderPass = cast( typeof( vkCmdBeginRenderPass )) vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ); 940 vkCmdNextSubpass = cast( typeof( vkCmdNextSubpass )) vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ); 941 vkCmdEndRenderPass = cast( typeof( vkCmdEndRenderPass )) vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ); 942 vkCmdExecuteCommands = cast( typeof( vkCmdExecuteCommands )) vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ); 943 944 // VK_KHR_swapchain 945 vkCreateSwapchainKHR = cast( typeof( vkCreateSwapchainKHR )) vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ); 946 vkDestroySwapchainKHR = cast( typeof( vkDestroySwapchainKHR )) vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ); 947 vkGetSwapchainImagesKHR = cast( typeof( vkGetSwapchainImagesKHR )) vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ); 948 vkAcquireNextImageKHR = cast( typeof( vkAcquireNextImageKHR )) vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ); 949 vkQueuePresentKHR = cast( typeof( vkQueuePresentKHR )) vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ); 950 951 // VK_KHR_display_swapchain 952 vkCreateSharedSwapchainsKHR = cast( typeof( vkCreateSharedSwapchainsKHR )) vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ); 953 954 // VK_KHR_maintenance1 955 vkTrimCommandPoolKHR = cast( typeof( vkTrimCommandPoolKHR )) vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ); 956 957 // VK_KHR_push_descriptor 958 vkCmdPushDescriptorSetKHR = cast( typeof( vkCmdPushDescriptorSetKHR )) vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ); 959 960 // VK_KHR_descriptor_update_template 961 vkCreateDescriptorUpdateTemplateKHR = cast( typeof( vkCreateDescriptorUpdateTemplateKHR )) vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ); 962 vkDestroyDescriptorUpdateTemplateKHR = cast( typeof( vkDestroyDescriptorUpdateTemplateKHR )) vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ); 963 vkUpdateDescriptorSetWithTemplateKHR = cast( typeof( vkUpdateDescriptorSetWithTemplateKHR )) vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ); 964 vkCmdPushDescriptorSetWithTemplateKHR = cast( typeof( vkCmdPushDescriptorSetWithTemplateKHR )) vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ); 965 966 // VK_EXT_debug_marker 967 vkDebugMarkerSetObjectTagEXT = cast( typeof( vkDebugMarkerSetObjectTagEXT )) vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ); 968 vkDebugMarkerSetObjectNameEXT = cast( typeof( vkDebugMarkerSetObjectNameEXT )) vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ); 969 vkCmdDebugMarkerBeginEXT = cast( typeof( vkCmdDebugMarkerBeginEXT )) vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ); 970 vkCmdDebugMarkerEndEXT = cast( typeof( vkCmdDebugMarkerEndEXT )) vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ); 971 vkCmdDebugMarkerInsertEXT = cast( typeof( vkCmdDebugMarkerInsertEXT )) vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ); 972 973 // VK_AMD_draw_indirect_count 974 vkCmdDrawIndirectCountAMD = cast( typeof( vkCmdDrawIndirectCountAMD )) vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ); 975 vkCmdDrawIndexedIndirectCountAMD = cast( typeof( vkCmdDrawIndexedIndirectCountAMD )) vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ); 976 977 // VK_NV_external_memory_win32 978 version( VK_USE_PLATFORM_WIN32_KHR ) { 979 vkGetMemoryWin32HandleNV = cast( typeof( vkGetMemoryWin32HandleNV )) vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ); 980 } 981 982 // VK_KHX_device_group 983 vkGetDeviceGroupPeerMemoryFeaturesKHX = cast( typeof( vkGetDeviceGroupPeerMemoryFeaturesKHX )) vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHX" ); 984 vkBindBufferMemory2KHX = cast( typeof( vkBindBufferMemory2KHX )) vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHX" ); 985 vkBindImageMemory2KHX = cast( typeof( vkBindImageMemory2KHX )) vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHX" ); 986 vkCmdSetDeviceMaskKHX = cast( typeof( vkCmdSetDeviceMaskKHX )) vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHX" ); 987 vkGetDeviceGroupPresentCapabilitiesKHX = cast( typeof( vkGetDeviceGroupPresentCapabilitiesKHX )) vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHX" ); 988 vkGetDeviceGroupSurfacePresentModesKHX = cast( typeof( vkGetDeviceGroupSurfacePresentModesKHX )) vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHX" ); 989 vkAcquireNextImage2KHX = cast( typeof( vkAcquireNextImage2KHX )) vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHX" ); 990 vkCmdDispatchBaseKHX = cast( typeof( vkCmdDispatchBaseKHX )) vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHX" ); 991 992 // VK_KHX_external_memory_win32 993 version( VK_USE_PLATFORM_WIN32_KHR ) { 994 vkGetMemoryWin32HandleKHX = cast( typeof( vkGetMemoryWin32HandleKHX )) vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHX" ); 995 vkGetMemoryWin32HandlePropertiesKHX = cast( typeof( vkGetMemoryWin32HandlePropertiesKHX )) vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHX" ); 996 } 997 998 // VK_KHX_external_memory_fd 999 vkGetMemoryFdKHX = cast( typeof( vkGetMemoryFdKHX )) vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHX" ); 1000 vkGetMemoryFdPropertiesKHX = cast( typeof( vkGetMemoryFdPropertiesKHX )) vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHX" ); 1001 1002 // VK_KHX_external_semaphore_win32 1003 version( VK_USE_PLATFORM_WIN32_KHR ) { 1004 vkImportSemaphoreWin32HandleKHX = cast( typeof( vkImportSemaphoreWin32HandleKHX )) vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHX" ); 1005 vkGetSemaphoreWin32HandleKHX = cast( typeof( vkGetSemaphoreWin32HandleKHX )) vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHX" ); 1006 } 1007 1008 // VK_KHX_external_semaphore_fd 1009 vkImportSemaphoreFdKHX = cast( typeof( vkImportSemaphoreFdKHX )) vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHX" ); 1010 vkGetSemaphoreFdKHX = cast( typeof( vkGetSemaphoreFdKHX )) vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHX" ); 1011 1012 // VK_NVX_device_generated_commands 1013 vkCmdProcessCommandsNVX = cast( typeof( vkCmdProcessCommandsNVX )) vkGetInstanceProcAddr( instance, "vkCmdProcessCommandsNVX" ); 1014 vkCmdReserveSpaceForCommandsNVX = cast( typeof( vkCmdReserveSpaceForCommandsNVX )) vkGetInstanceProcAddr( instance, "vkCmdReserveSpaceForCommandsNVX" ); 1015 vkCreateIndirectCommandsLayoutNVX = cast( typeof( vkCreateIndirectCommandsLayoutNVX )) vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNVX" ); 1016 vkDestroyIndirectCommandsLayoutNVX = cast( typeof( vkDestroyIndirectCommandsLayoutNVX )) vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNVX" ); 1017 vkCreateObjectTableNVX = cast( typeof( vkCreateObjectTableNVX )) vkGetInstanceProcAddr( instance, "vkCreateObjectTableNVX" ); 1018 vkDestroyObjectTableNVX = cast( typeof( vkDestroyObjectTableNVX )) vkGetInstanceProcAddr( instance, "vkDestroyObjectTableNVX" ); 1019 vkRegisterObjectsNVX = cast( typeof( vkRegisterObjectsNVX )) vkGetInstanceProcAddr( instance, "vkRegisterObjectsNVX" ); 1020 vkUnregisterObjectsNVX = cast( typeof( vkUnregisterObjectsNVX )) vkGetInstanceProcAddr( instance, "vkUnregisterObjectsNVX" ); 1021 1022 // VK_NV_clip_space_w_scaling 1023 vkCmdSetViewportWScalingNV = cast( typeof( vkCmdSetViewportWScalingNV )) vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ); 1024 1025 // VK_EXT_display_control 1026 vkDisplayPowerControlEXT = cast( typeof( vkDisplayPowerControlEXT )) vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ); 1027 vkRegisterDeviceEventEXT = cast( typeof( vkRegisterDeviceEventEXT )) vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ); 1028 vkRegisterDisplayEventEXT = cast( typeof( vkRegisterDisplayEventEXT )) vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ); 1029 vkGetSwapchainCounterEXT = cast( typeof( vkGetSwapchainCounterEXT )) vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ); 1030 1031 // VK_GOOGLE_display_timing 1032 vkGetRefreshCycleDurationGOOGLE = cast( typeof( vkGetRefreshCycleDurationGOOGLE )) vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ); 1033 vkGetPastPresentationTimingGOOGLE = cast( typeof( vkGetPastPresentationTimingGOOGLE )) vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ); 1034 1035 // VK_EXT_discard_rectangles 1036 vkCmdSetDiscardRectangleEXT = cast( typeof( vkCmdSetDiscardRectangleEXT )) vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ); 1037 1038 // VK_EXT_hdr_metadata 1039 vkSetHdrMetadataEXT = cast( typeof( vkSetHdrMetadataEXT )) vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ); 1040 } 1041 1042 /// with a valid VkDevice call this function to retrieve VkDevice, VkQueue and VkCommandBuffer related functions 1043 /// the functions call directly VkDevice and related resources and can be retrieved for one and only one VkDevice 1044 /// calling this function again with another VkDevices will overwrite the __gshared functions retrieved previously 1045 /// use createGroupedDeviceLevelFunctions bellow if usage of multiple VkDevices is required 1046 void loadDeviceLevelFunctions( VkDevice device ) { 1047 assert( vkGetDeviceProcAddr !is null, "Must call loadInstanceLevelFunctions before loadDeviceLevelFunctions" ); 1048 1049 // VK_VERSION_1_0 1050 vkDestroyDevice = cast( typeof( vkDestroyDevice )) vkGetDeviceProcAddr( device, "vkDestroyDevice" ); 1051 vkGetDeviceQueue = cast( typeof( vkGetDeviceQueue )) vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ); 1052 vkQueueSubmit = cast( typeof( vkQueueSubmit )) vkGetDeviceProcAddr( device, "vkQueueSubmit" ); 1053 vkQueueWaitIdle = cast( typeof( vkQueueWaitIdle )) vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ); 1054 vkDeviceWaitIdle = cast( typeof( vkDeviceWaitIdle )) vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ); 1055 vkAllocateMemory = cast( typeof( vkAllocateMemory )) vkGetDeviceProcAddr( device, "vkAllocateMemory" ); 1056 vkFreeMemory = cast( typeof( vkFreeMemory )) vkGetDeviceProcAddr( device, "vkFreeMemory" ); 1057 vkMapMemory = cast( typeof( vkMapMemory )) vkGetDeviceProcAddr( device, "vkMapMemory" ); 1058 vkUnmapMemory = cast( typeof( vkUnmapMemory )) vkGetDeviceProcAddr( device, "vkUnmapMemory" ); 1059 vkFlushMappedMemoryRanges = cast( typeof( vkFlushMappedMemoryRanges )) vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ); 1060 vkInvalidateMappedMemoryRanges = cast( typeof( vkInvalidateMappedMemoryRanges )) vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ); 1061 vkGetDeviceMemoryCommitment = cast( typeof( vkGetDeviceMemoryCommitment )) vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ); 1062 vkBindBufferMemory = cast( typeof( vkBindBufferMemory )) vkGetDeviceProcAddr( device, "vkBindBufferMemory" ); 1063 vkBindImageMemory = cast( typeof( vkBindImageMemory )) vkGetDeviceProcAddr( device, "vkBindImageMemory" ); 1064 vkGetBufferMemoryRequirements = cast( typeof( vkGetBufferMemoryRequirements )) vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ); 1065 vkGetImageMemoryRequirements = cast( typeof( vkGetImageMemoryRequirements )) vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ); 1066 vkGetImageSparseMemoryRequirements = cast( typeof( vkGetImageSparseMemoryRequirements )) vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ); 1067 vkQueueBindSparse = cast( typeof( vkQueueBindSparse )) vkGetDeviceProcAddr( device, "vkQueueBindSparse" ); 1068 vkCreateFence = cast( typeof( vkCreateFence )) vkGetDeviceProcAddr( device, "vkCreateFence" ); 1069 vkDestroyFence = cast( typeof( vkDestroyFence )) vkGetDeviceProcAddr( device, "vkDestroyFence" ); 1070 vkResetFences = cast( typeof( vkResetFences )) vkGetDeviceProcAddr( device, "vkResetFences" ); 1071 vkGetFenceStatus = cast( typeof( vkGetFenceStatus )) vkGetDeviceProcAddr( device, "vkGetFenceStatus" ); 1072 vkWaitForFences = cast( typeof( vkWaitForFences )) vkGetDeviceProcAddr( device, "vkWaitForFences" ); 1073 vkCreateSemaphore = cast( typeof( vkCreateSemaphore )) vkGetDeviceProcAddr( device, "vkCreateSemaphore" ); 1074 vkDestroySemaphore = cast( typeof( vkDestroySemaphore )) vkGetDeviceProcAddr( device, "vkDestroySemaphore" ); 1075 vkCreateEvent = cast( typeof( vkCreateEvent )) vkGetDeviceProcAddr( device, "vkCreateEvent" ); 1076 vkDestroyEvent = cast( typeof( vkDestroyEvent )) vkGetDeviceProcAddr( device, "vkDestroyEvent" ); 1077 vkGetEventStatus = cast( typeof( vkGetEventStatus )) vkGetDeviceProcAddr( device, "vkGetEventStatus" ); 1078 vkSetEvent = cast( typeof( vkSetEvent )) vkGetDeviceProcAddr( device, "vkSetEvent" ); 1079 vkResetEvent = cast( typeof( vkResetEvent )) vkGetDeviceProcAddr( device, "vkResetEvent" ); 1080 vkCreateQueryPool = cast( typeof( vkCreateQueryPool )) vkGetDeviceProcAddr( device, "vkCreateQueryPool" ); 1081 vkDestroyQueryPool = cast( typeof( vkDestroyQueryPool )) vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ); 1082 vkGetQueryPoolResults = cast( typeof( vkGetQueryPoolResults )) vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ); 1083 vkCreateBuffer = cast( typeof( vkCreateBuffer )) vkGetDeviceProcAddr( device, "vkCreateBuffer" ); 1084 vkDestroyBuffer = cast( typeof( vkDestroyBuffer )) vkGetDeviceProcAddr( device, "vkDestroyBuffer" ); 1085 vkCreateBufferView = cast( typeof( vkCreateBufferView )) vkGetDeviceProcAddr( device, "vkCreateBufferView" ); 1086 vkDestroyBufferView = cast( typeof( vkDestroyBufferView )) vkGetDeviceProcAddr( device, "vkDestroyBufferView" ); 1087 vkCreateImage = cast( typeof( vkCreateImage )) vkGetDeviceProcAddr( device, "vkCreateImage" ); 1088 vkDestroyImage = cast( typeof( vkDestroyImage )) vkGetDeviceProcAddr( device, "vkDestroyImage" ); 1089 vkGetImageSubresourceLayout = cast( typeof( vkGetImageSubresourceLayout )) vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ); 1090 vkCreateImageView = cast( typeof( vkCreateImageView )) vkGetDeviceProcAddr( device, "vkCreateImageView" ); 1091 vkDestroyImageView = cast( typeof( vkDestroyImageView )) vkGetDeviceProcAddr( device, "vkDestroyImageView" ); 1092 vkCreateShaderModule = cast( typeof( vkCreateShaderModule )) vkGetDeviceProcAddr( device, "vkCreateShaderModule" ); 1093 vkDestroyShaderModule = cast( typeof( vkDestroyShaderModule )) vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ); 1094 vkCreatePipelineCache = cast( typeof( vkCreatePipelineCache )) vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ); 1095 vkDestroyPipelineCache = cast( typeof( vkDestroyPipelineCache )) vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ); 1096 vkGetPipelineCacheData = cast( typeof( vkGetPipelineCacheData )) vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ); 1097 vkMergePipelineCaches = cast( typeof( vkMergePipelineCaches )) vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ); 1098 vkCreateGraphicsPipelines = cast( typeof( vkCreateGraphicsPipelines )) vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ); 1099 vkCreateComputePipelines = cast( typeof( vkCreateComputePipelines )) vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ); 1100 vkDestroyPipeline = cast( typeof( vkDestroyPipeline )) vkGetDeviceProcAddr( device, "vkDestroyPipeline" ); 1101 vkCreatePipelineLayout = cast( typeof( vkCreatePipelineLayout )) vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ); 1102 vkDestroyPipelineLayout = cast( typeof( vkDestroyPipelineLayout )) vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ); 1103 vkCreateSampler = cast( typeof( vkCreateSampler )) vkGetDeviceProcAddr( device, "vkCreateSampler" ); 1104 vkDestroySampler = cast( typeof( vkDestroySampler )) vkGetDeviceProcAddr( device, "vkDestroySampler" ); 1105 vkCreateDescriptorSetLayout = cast( typeof( vkCreateDescriptorSetLayout )) vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ); 1106 vkDestroyDescriptorSetLayout = cast( typeof( vkDestroyDescriptorSetLayout )) vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ); 1107 vkCreateDescriptorPool = cast( typeof( vkCreateDescriptorPool )) vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ); 1108 vkDestroyDescriptorPool = cast( typeof( vkDestroyDescriptorPool )) vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ); 1109 vkResetDescriptorPool = cast( typeof( vkResetDescriptorPool )) vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ); 1110 vkAllocateDescriptorSets = cast( typeof( vkAllocateDescriptorSets )) vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ); 1111 vkFreeDescriptorSets = cast( typeof( vkFreeDescriptorSets )) vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ); 1112 vkUpdateDescriptorSets = cast( typeof( vkUpdateDescriptorSets )) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ); 1113 vkCreateFramebuffer = cast( typeof( vkCreateFramebuffer )) vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ); 1114 vkDestroyFramebuffer = cast( typeof( vkDestroyFramebuffer )) vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ); 1115 vkCreateRenderPass = cast( typeof( vkCreateRenderPass )) vkGetDeviceProcAddr( device, "vkCreateRenderPass" ); 1116 vkDestroyRenderPass = cast( typeof( vkDestroyRenderPass )) vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ); 1117 vkGetRenderAreaGranularity = cast( typeof( vkGetRenderAreaGranularity )) vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ); 1118 vkCreateCommandPool = cast( typeof( vkCreateCommandPool )) vkGetDeviceProcAddr( device, "vkCreateCommandPool" ); 1119 vkDestroyCommandPool = cast( typeof( vkDestroyCommandPool )) vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ); 1120 vkResetCommandPool = cast( typeof( vkResetCommandPool )) vkGetDeviceProcAddr( device, "vkResetCommandPool" ); 1121 vkAllocateCommandBuffers = cast( typeof( vkAllocateCommandBuffers )) vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ); 1122 vkFreeCommandBuffers = cast( typeof( vkFreeCommandBuffers )) vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ); 1123 vkBeginCommandBuffer = cast( typeof( vkBeginCommandBuffer )) vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ); 1124 vkEndCommandBuffer = cast( typeof( vkEndCommandBuffer )) vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ); 1125 vkResetCommandBuffer = cast( typeof( vkResetCommandBuffer )) vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ); 1126 vkCmdBindPipeline = cast( typeof( vkCmdBindPipeline )) vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ); 1127 vkCmdSetViewport = cast( typeof( vkCmdSetViewport )) vkGetDeviceProcAddr( device, "vkCmdSetViewport" ); 1128 vkCmdSetScissor = cast( typeof( vkCmdSetScissor )) vkGetDeviceProcAddr( device, "vkCmdSetScissor" ); 1129 vkCmdSetLineWidth = cast( typeof( vkCmdSetLineWidth )) vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ); 1130 vkCmdSetDepthBias = cast( typeof( vkCmdSetDepthBias )) vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ); 1131 vkCmdSetBlendConstants = cast( typeof( vkCmdSetBlendConstants )) vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ); 1132 vkCmdSetDepthBounds = cast( typeof( vkCmdSetDepthBounds )) vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ); 1133 vkCmdSetStencilCompareMask = cast( typeof( vkCmdSetStencilCompareMask )) vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ); 1134 vkCmdSetStencilWriteMask = cast( typeof( vkCmdSetStencilWriteMask )) vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ); 1135 vkCmdSetStencilReference = cast( typeof( vkCmdSetStencilReference )) vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ); 1136 vkCmdBindDescriptorSets = cast( typeof( vkCmdBindDescriptorSets )) vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ); 1137 vkCmdBindIndexBuffer = cast( typeof( vkCmdBindIndexBuffer )) vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ); 1138 vkCmdBindVertexBuffers = cast( typeof( vkCmdBindVertexBuffers )) vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ); 1139 vkCmdDraw = cast( typeof( vkCmdDraw )) vkGetDeviceProcAddr( device, "vkCmdDraw" ); 1140 vkCmdDrawIndexed = cast( typeof( vkCmdDrawIndexed )) vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ); 1141 vkCmdDrawIndirect = cast( typeof( vkCmdDrawIndirect )) vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ); 1142 vkCmdDrawIndexedIndirect = cast( typeof( vkCmdDrawIndexedIndirect )) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ); 1143 vkCmdDispatch = cast( typeof( vkCmdDispatch )) vkGetDeviceProcAddr( device, "vkCmdDispatch" ); 1144 vkCmdDispatchIndirect = cast( typeof( vkCmdDispatchIndirect )) vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ); 1145 vkCmdCopyBuffer = cast( typeof( vkCmdCopyBuffer )) vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ); 1146 vkCmdCopyImage = cast( typeof( vkCmdCopyImage )) vkGetDeviceProcAddr( device, "vkCmdCopyImage" ); 1147 vkCmdBlitImage = cast( typeof( vkCmdBlitImage )) vkGetDeviceProcAddr( device, "vkCmdBlitImage" ); 1148 vkCmdCopyBufferToImage = cast( typeof( vkCmdCopyBufferToImage )) vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ); 1149 vkCmdCopyImageToBuffer = cast( typeof( vkCmdCopyImageToBuffer )) vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ); 1150 vkCmdUpdateBuffer = cast( typeof( vkCmdUpdateBuffer )) vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ); 1151 vkCmdFillBuffer = cast( typeof( vkCmdFillBuffer )) vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ); 1152 vkCmdClearColorImage = cast( typeof( vkCmdClearColorImage )) vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ); 1153 vkCmdClearDepthStencilImage = cast( typeof( vkCmdClearDepthStencilImage )) vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ); 1154 vkCmdClearAttachments = cast( typeof( vkCmdClearAttachments )) vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ); 1155 vkCmdResolveImage = cast( typeof( vkCmdResolveImage )) vkGetDeviceProcAddr( device, "vkCmdResolveImage" ); 1156 vkCmdSetEvent = cast( typeof( vkCmdSetEvent )) vkGetDeviceProcAddr( device, "vkCmdSetEvent" ); 1157 vkCmdResetEvent = cast( typeof( vkCmdResetEvent )) vkGetDeviceProcAddr( device, "vkCmdResetEvent" ); 1158 vkCmdWaitEvents = cast( typeof( vkCmdWaitEvents )) vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ); 1159 vkCmdPipelineBarrier = cast( typeof( vkCmdPipelineBarrier )) vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ); 1160 vkCmdBeginQuery = cast( typeof( vkCmdBeginQuery )) vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ); 1161 vkCmdEndQuery = cast( typeof( vkCmdEndQuery )) vkGetDeviceProcAddr( device, "vkCmdEndQuery" ); 1162 vkCmdResetQueryPool = cast( typeof( vkCmdResetQueryPool )) vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ); 1163 vkCmdWriteTimestamp = cast( typeof( vkCmdWriteTimestamp )) vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ); 1164 vkCmdCopyQueryPoolResults = cast( typeof( vkCmdCopyQueryPoolResults )) vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ); 1165 vkCmdPushConstants = cast( typeof( vkCmdPushConstants )) vkGetDeviceProcAddr( device, "vkCmdPushConstants" ); 1166 vkCmdBeginRenderPass = cast( typeof( vkCmdBeginRenderPass )) vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ); 1167 vkCmdNextSubpass = cast( typeof( vkCmdNextSubpass )) vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ); 1168 vkCmdEndRenderPass = cast( typeof( vkCmdEndRenderPass )) vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ); 1169 vkCmdExecuteCommands = cast( typeof( vkCmdExecuteCommands )) vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ); 1170 1171 // VK_KHR_swapchain 1172 vkCreateSwapchainKHR = cast( typeof( vkCreateSwapchainKHR )) vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ); 1173 vkDestroySwapchainKHR = cast( typeof( vkDestroySwapchainKHR )) vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ); 1174 vkGetSwapchainImagesKHR = cast( typeof( vkGetSwapchainImagesKHR )) vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ); 1175 vkAcquireNextImageKHR = cast( typeof( vkAcquireNextImageKHR )) vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ); 1176 vkQueuePresentKHR = cast( typeof( vkQueuePresentKHR )) vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ); 1177 1178 // VK_KHR_display_swapchain 1179 vkCreateSharedSwapchainsKHR = cast( typeof( vkCreateSharedSwapchainsKHR )) vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ); 1180 1181 // VK_KHR_maintenance1 1182 vkTrimCommandPoolKHR = cast( typeof( vkTrimCommandPoolKHR )) vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ); 1183 1184 // VK_KHR_push_descriptor 1185 vkCmdPushDescriptorSetKHR = cast( typeof( vkCmdPushDescriptorSetKHR )) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ); 1186 1187 // VK_KHR_descriptor_update_template 1188 vkCreateDescriptorUpdateTemplateKHR = cast( typeof( vkCreateDescriptorUpdateTemplateKHR )) vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ); 1189 vkDestroyDescriptorUpdateTemplateKHR = cast( typeof( vkDestroyDescriptorUpdateTemplateKHR )) vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ); 1190 vkUpdateDescriptorSetWithTemplateKHR = cast( typeof( vkUpdateDescriptorSetWithTemplateKHR )) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ); 1191 vkCmdPushDescriptorSetWithTemplateKHR = cast( typeof( vkCmdPushDescriptorSetWithTemplateKHR )) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ); 1192 1193 // VK_EXT_debug_marker 1194 vkDebugMarkerSetObjectTagEXT = cast( typeof( vkDebugMarkerSetObjectTagEXT )) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ); 1195 vkDebugMarkerSetObjectNameEXT = cast( typeof( vkDebugMarkerSetObjectNameEXT )) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ); 1196 vkCmdDebugMarkerBeginEXT = cast( typeof( vkCmdDebugMarkerBeginEXT )) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ); 1197 vkCmdDebugMarkerEndEXT = cast( typeof( vkCmdDebugMarkerEndEXT )) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ); 1198 vkCmdDebugMarkerInsertEXT = cast( typeof( vkCmdDebugMarkerInsertEXT )) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ); 1199 1200 // VK_AMD_draw_indirect_count 1201 vkCmdDrawIndirectCountAMD = cast( typeof( vkCmdDrawIndirectCountAMD )) vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ); 1202 vkCmdDrawIndexedIndirectCountAMD = cast( typeof( vkCmdDrawIndexedIndirectCountAMD )) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ); 1203 1204 // VK_NV_external_memory_win32 1205 version( VK_USE_PLATFORM_WIN32_KHR ) { 1206 vkGetMemoryWin32HandleNV = cast( typeof( vkGetMemoryWin32HandleNV )) vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ); 1207 } 1208 1209 // VK_KHX_device_group 1210 vkGetDeviceGroupPeerMemoryFeaturesKHX = cast( typeof( vkGetDeviceGroupPeerMemoryFeaturesKHX )) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHX" ); 1211 vkBindBufferMemory2KHX = cast( typeof( vkBindBufferMemory2KHX )) vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHX" ); 1212 vkBindImageMemory2KHX = cast( typeof( vkBindImageMemory2KHX )) vkGetDeviceProcAddr( device, "vkBindImageMemory2KHX" ); 1213 vkCmdSetDeviceMaskKHX = cast( typeof( vkCmdSetDeviceMaskKHX )) vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHX" ); 1214 vkGetDeviceGroupPresentCapabilitiesKHX = cast( typeof( vkGetDeviceGroupPresentCapabilitiesKHX )) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHX" ); 1215 vkGetDeviceGroupSurfacePresentModesKHX = cast( typeof( vkGetDeviceGroupSurfacePresentModesKHX )) vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHX" ); 1216 vkAcquireNextImage2KHX = cast( typeof( vkAcquireNextImage2KHX )) vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHX" ); 1217 vkCmdDispatchBaseKHX = cast( typeof( vkCmdDispatchBaseKHX )) vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHX" ); 1218 1219 // VK_KHX_external_memory_win32 1220 version( VK_USE_PLATFORM_WIN32_KHR ) { 1221 vkGetMemoryWin32HandleKHX = cast( typeof( vkGetMemoryWin32HandleKHX )) vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHX" ); 1222 vkGetMemoryWin32HandlePropertiesKHX = cast( typeof( vkGetMemoryWin32HandlePropertiesKHX )) vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHX" ); 1223 } 1224 1225 // VK_KHX_external_memory_fd 1226 vkGetMemoryFdKHX = cast( typeof( vkGetMemoryFdKHX )) vkGetDeviceProcAddr( device, "vkGetMemoryFdKHX" ); 1227 vkGetMemoryFdPropertiesKHX = cast( typeof( vkGetMemoryFdPropertiesKHX )) vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHX" ); 1228 1229 // VK_KHX_external_semaphore_win32 1230 version( VK_USE_PLATFORM_WIN32_KHR ) { 1231 vkImportSemaphoreWin32HandleKHX = cast( typeof( vkImportSemaphoreWin32HandleKHX )) vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHX" ); 1232 vkGetSemaphoreWin32HandleKHX = cast( typeof( vkGetSemaphoreWin32HandleKHX )) vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHX" ); 1233 } 1234 1235 // VK_KHX_external_semaphore_fd 1236 vkImportSemaphoreFdKHX = cast( typeof( vkImportSemaphoreFdKHX )) vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHX" ); 1237 vkGetSemaphoreFdKHX = cast( typeof( vkGetSemaphoreFdKHX )) vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHX" ); 1238 1239 // VK_NVX_device_generated_commands 1240 vkCmdProcessCommandsNVX = cast( typeof( vkCmdProcessCommandsNVX )) vkGetDeviceProcAddr( device, "vkCmdProcessCommandsNVX" ); 1241 vkCmdReserveSpaceForCommandsNVX = cast( typeof( vkCmdReserveSpaceForCommandsNVX )) vkGetDeviceProcAddr( device, "vkCmdReserveSpaceForCommandsNVX" ); 1242 vkCreateIndirectCommandsLayoutNVX = cast( typeof( vkCreateIndirectCommandsLayoutNVX )) vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNVX" ); 1243 vkDestroyIndirectCommandsLayoutNVX = cast( typeof( vkDestroyIndirectCommandsLayoutNVX )) vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNVX" ); 1244 vkCreateObjectTableNVX = cast( typeof( vkCreateObjectTableNVX )) vkGetDeviceProcAddr( device, "vkCreateObjectTableNVX" ); 1245 vkDestroyObjectTableNVX = cast( typeof( vkDestroyObjectTableNVX )) vkGetDeviceProcAddr( device, "vkDestroyObjectTableNVX" ); 1246 vkRegisterObjectsNVX = cast( typeof( vkRegisterObjectsNVX )) vkGetDeviceProcAddr( device, "vkRegisterObjectsNVX" ); 1247 vkUnregisterObjectsNVX = cast( typeof( vkUnregisterObjectsNVX )) vkGetDeviceProcAddr( device, "vkUnregisterObjectsNVX" ); 1248 1249 // VK_NV_clip_space_w_scaling 1250 vkCmdSetViewportWScalingNV = cast( typeof( vkCmdSetViewportWScalingNV )) vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ); 1251 1252 // VK_EXT_display_control 1253 vkDisplayPowerControlEXT = cast( typeof( vkDisplayPowerControlEXT )) vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ); 1254 vkRegisterDeviceEventEXT = cast( typeof( vkRegisterDeviceEventEXT )) vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ); 1255 vkRegisterDisplayEventEXT = cast( typeof( vkRegisterDisplayEventEXT )) vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ); 1256 vkGetSwapchainCounterEXT = cast( typeof( vkGetSwapchainCounterEXT )) vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ); 1257 1258 // VK_GOOGLE_display_timing 1259 vkGetRefreshCycleDurationGOOGLE = cast( typeof( vkGetRefreshCycleDurationGOOGLE )) vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ); 1260 vkGetPastPresentationTimingGOOGLE = cast( typeof( vkGetPastPresentationTimingGOOGLE )) vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ); 1261 1262 // VK_EXT_discard_rectangles 1263 vkCmdSetDiscardRectangleEXT = cast( typeof( vkCmdSetDiscardRectangleEXT )) vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ); 1264 1265 // VK_EXT_hdr_metadata 1266 vkSetHdrMetadataEXT = cast( typeof( vkSetHdrMetadataEXT )) vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ); 1267 } 1268 1269 /// with a valid VkDevice call this function to retrieve VkDevice, VkQueue and VkCommandBuffer related functions grouped in a DispatchDevice struct 1270 /// the functions call directly VkDevice and related resources and can be retrieved for any VkDevice 1271 DispatchDevice createDispatchDeviceLevelFunctions( VkDevice device ) { 1272 assert( vkGetDeviceProcAddr !is null, "Must call loadInstanceLevelFunctions before loadDeviceLevelFunctions" ); 1273 1274 DispatchDevice dispatchDevice; 1275 with( dispatchDevice ) { 1276 1277 // VK_VERSION_1_0 1278 vkDestroyDevice = cast( typeof( vkDestroyDevice )) vkGetDeviceProcAddr( device, "vkDestroyDevice" ); 1279 vkGetDeviceQueue = cast( typeof( vkGetDeviceQueue )) vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ); 1280 vkQueueSubmit = cast( typeof( vkQueueSubmit )) vkGetDeviceProcAddr( device, "vkQueueSubmit" ); 1281 vkQueueWaitIdle = cast( typeof( vkQueueWaitIdle )) vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ); 1282 vkDeviceWaitIdle = cast( typeof( vkDeviceWaitIdle )) vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ); 1283 vkAllocateMemory = cast( typeof( vkAllocateMemory )) vkGetDeviceProcAddr( device, "vkAllocateMemory" ); 1284 vkFreeMemory = cast( typeof( vkFreeMemory )) vkGetDeviceProcAddr( device, "vkFreeMemory" ); 1285 vkMapMemory = cast( typeof( vkMapMemory )) vkGetDeviceProcAddr( device, "vkMapMemory" ); 1286 vkUnmapMemory = cast( typeof( vkUnmapMemory )) vkGetDeviceProcAddr( device, "vkUnmapMemory" ); 1287 vkFlushMappedMemoryRanges = cast( typeof( vkFlushMappedMemoryRanges )) vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ); 1288 vkInvalidateMappedMemoryRanges = cast( typeof( vkInvalidateMappedMemoryRanges )) vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ); 1289 vkGetDeviceMemoryCommitment = cast( typeof( vkGetDeviceMemoryCommitment )) vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ); 1290 vkBindBufferMemory = cast( typeof( vkBindBufferMemory )) vkGetDeviceProcAddr( device, "vkBindBufferMemory" ); 1291 vkBindImageMemory = cast( typeof( vkBindImageMemory )) vkGetDeviceProcAddr( device, "vkBindImageMemory" ); 1292 vkGetBufferMemoryRequirements = cast( typeof( vkGetBufferMemoryRequirements )) vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ); 1293 vkGetImageMemoryRequirements = cast( typeof( vkGetImageMemoryRequirements )) vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ); 1294 vkGetImageSparseMemoryRequirements = cast( typeof( vkGetImageSparseMemoryRequirements )) vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ); 1295 vkQueueBindSparse = cast( typeof( vkQueueBindSparse )) vkGetDeviceProcAddr( device, "vkQueueBindSparse" ); 1296 vkCreateFence = cast( typeof( vkCreateFence )) vkGetDeviceProcAddr( device, "vkCreateFence" ); 1297 vkDestroyFence = cast( typeof( vkDestroyFence )) vkGetDeviceProcAddr( device, "vkDestroyFence" ); 1298 vkResetFences = cast( typeof( vkResetFences )) vkGetDeviceProcAddr( device, "vkResetFences" ); 1299 vkGetFenceStatus = cast( typeof( vkGetFenceStatus )) vkGetDeviceProcAddr( device, "vkGetFenceStatus" ); 1300 vkWaitForFences = cast( typeof( vkWaitForFences )) vkGetDeviceProcAddr( device, "vkWaitForFences" ); 1301 vkCreateSemaphore = cast( typeof( vkCreateSemaphore )) vkGetDeviceProcAddr( device, "vkCreateSemaphore" ); 1302 vkDestroySemaphore = cast( typeof( vkDestroySemaphore )) vkGetDeviceProcAddr( device, "vkDestroySemaphore" ); 1303 vkCreateEvent = cast( typeof( vkCreateEvent )) vkGetDeviceProcAddr( device, "vkCreateEvent" ); 1304 vkDestroyEvent = cast( typeof( vkDestroyEvent )) vkGetDeviceProcAddr( device, "vkDestroyEvent" ); 1305 vkGetEventStatus = cast( typeof( vkGetEventStatus )) vkGetDeviceProcAddr( device, "vkGetEventStatus" ); 1306 vkSetEvent = cast( typeof( vkSetEvent )) vkGetDeviceProcAddr( device, "vkSetEvent" ); 1307 vkResetEvent = cast( typeof( vkResetEvent )) vkGetDeviceProcAddr( device, "vkResetEvent" ); 1308 vkCreateQueryPool = cast( typeof( vkCreateQueryPool )) vkGetDeviceProcAddr( device, "vkCreateQueryPool" ); 1309 vkDestroyQueryPool = cast( typeof( vkDestroyQueryPool )) vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ); 1310 vkGetQueryPoolResults = cast( typeof( vkGetQueryPoolResults )) vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ); 1311 vkCreateBuffer = cast( typeof( vkCreateBuffer )) vkGetDeviceProcAddr( device, "vkCreateBuffer" ); 1312 vkDestroyBuffer = cast( typeof( vkDestroyBuffer )) vkGetDeviceProcAddr( device, "vkDestroyBuffer" ); 1313 vkCreateBufferView = cast( typeof( vkCreateBufferView )) vkGetDeviceProcAddr( device, "vkCreateBufferView" ); 1314 vkDestroyBufferView = cast( typeof( vkDestroyBufferView )) vkGetDeviceProcAddr( device, "vkDestroyBufferView" ); 1315 vkCreateImage = cast( typeof( vkCreateImage )) vkGetDeviceProcAddr( device, "vkCreateImage" ); 1316 vkDestroyImage = cast( typeof( vkDestroyImage )) vkGetDeviceProcAddr( device, "vkDestroyImage" ); 1317 vkGetImageSubresourceLayout = cast( typeof( vkGetImageSubresourceLayout )) vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ); 1318 vkCreateImageView = cast( typeof( vkCreateImageView )) vkGetDeviceProcAddr( device, "vkCreateImageView" ); 1319 vkDestroyImageView = cast( typeof( vkDestroyImageView )) vkGetDeviceProcAddr( device, "vkDestroyImageView" ); 1320 vkCreateShaderModule = cast( typeof( vkCreateShaderModule )) vkGetDeviceProcAddr( device, "vkCreateShaderModule" ); 1321 vkDestroyShaderModule = cast( typeof( vkDestroyShaderModule )) vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ); 1322 vkCreatePipelineCache = cast( typeof( vkCreatePipelineCache )) vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ); 1323 vkDestroyPipelineCache = cast( typeof( vkDestroyPipelineCache )) vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ); 1324 vkGetPipelineCacheData = cast( typeof( vkGetPipelineCacheData )) vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ); 1325 vkMergePipelineCaches = cast( typeof( vkMergePipelineCaches )) vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ); 1326 vkCreateGraphicsPipelines = cast( typeof( vkCreateGraphicsPipelines )) vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ); 1327 vkCreateComputePipelines = cast( typeof( vkCreateComputePipelines )) vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ); 1328 vkDestroyPipeline = cast( typeof( vkDestroyPipeline )) vkGetDeviceProcAddr( device, "vkDestroyPipeline" ); 1329 vkCreatePipelineLayout = cast( typeof( vkCreatePipelineLayout )) vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ); 1330 vkDestroyPipelineLayout = cast( typeof( vkDestroyPipelineLayout )) vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ); 1331 vkCreateSampler = cast( typeof( vkCreateSampler )) vkGetDeviceProcAddr( device, "vkCreateSampler" ); 1332 vkDestroySampler = cast( typeof( vkDestroySampler )) vkGetDeviceProcAddr( device, "vkDestroySampler" ); 1333 vkCreateDescriptorSetLayout = cast( typeof( vkCreateDescriptorSetLayout )) vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ); 1334 vkDestroyDescriptorSetLayout = cast( typeof( vkDestroyDescriptorSetLayout )) vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ); 1335 vkCreateDescriptorPool = cast( typeof( vkCreateDescriptorPool )) vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ); 1336 vkDestroyDescriptorPool = cast( typeof( vkDestroyDescriptorPool )) vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ); 1337 vkResetDescriptorPool = cast( typeof( vkResetDescriptorPool )) vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ); 1338 vkAllocateDescriptorSets = cast( typeof( vkAllocateDescriptorSets )) vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ); 1339 vkFreeDescriptorSets = cast( typeof( vkFreeDescriptorSets )) vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ); 1340 vkUpdateDescriptorSets = cast( typeof( vkUpdateDescriptorSets )) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ); 1341 vkCreateFramebuffer = cast( typeof( vkCreateFramebuffer )) vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ); 1342 vkDestroyFramebuffer = cast( typeof( vkDestroyFramebuffer )) vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ); 1343 vkCreateRenderPass = cast( typeof( vkCreateRenderPass )) vkGetDeviceProcAddr( device, "vkCreateRenderPass" ); 1344 vkDestroyRenderPass = cast( typeof( vkDestroyRenderPass )) vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ); 1345 vkGetRenderAreaGranularity = cast( typeof( vkGetRenderAreaGranularity )) vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ); 1346 vkCreateCommandPool = cast( typeof( vkCreateCommandPool )) vkGetDeviceProcAddr( device, "vkCreateCommandPool" ); 1347 vkDestroyCommandPool = cast( typeof( vkDestroyCommandPool )) vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ); 1348 vkResetCommandPool = cast( typeof( vkResetCommandPool )) vkGetDeviceProcAddr( device, "vkResetCommandPool" ); 1349 vkAllocateCommandBuffers = cast( typeof( vkAllocateCommandBuffers )) vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ); 1350 vkFreeCommandBuffers = cast( typeof( vkFreeCommandBuffers )) vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ); 1351 vkBeginCommandBuffer = cast( typeof( vkBeginCommandBuffer )) vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ); 1352 vkEndCommandBuffer = cast( typeof( vkEndCommandBuffer )) vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ); 1353 vkResetCommandBuffer = cast( typeof( vkResetCommandBuffer )) vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ); 1354 vkCmdBindPipeline = cast( typeof( vkCmdBindPipeline )) vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ); 1355 vkCmdSetViewport = cast( typeof( vkCmdSetViewport )) vkGetDeviceProcAddr( device, "vkCmdSetViewport" ); 1356 vkCmdSetScissor = cast( typeof( vkCmdSetScissor )) vkGetDeviceProcAddr( device, "vkCmdSetScissor" ); 1357 vkCmdSetLineWidth = cast( typeof( vkCmdSetLineWidth )) vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ); 1358 vkCmdSetDepthBias = cast( typeof( vkCmdSetDepthBias )) vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ); 1359 vkCmdSetBlendConstants = cast( typeof( vkCmdSetBlendConstants )) vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ); 1360 vkCmdSetDepthBounds = cast( typeof( vkCmdSetDepthBounds )) vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ); 1361 vkCmdSetStencilCompareMask = cast( typeof( vkCmdSetStencilCompareMask )) vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ); 1362 vkCmdSetStencilWriteMask = cast( typeof( vkCmdSetStencilWriteMask )) vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ); 1363 vkCmdSetStencilReference = cast( typeof( vkCmdSetStencilReference )) vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ); 1364 vkCmdBindDescriptorSets = cast( typeof( vkCmdBindDescriptorSets )) vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ); 1365 vkCmdBindIndexBuffer = cast( typeof( vkCmdBindIndexBuffer )) vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ); 1366 vkCmdBindVertexBuffers = cast( typeof( vkCmdBindVertexBuffers )) vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ); 1367 vkCmdDraw = cast( typeof( vkCmdDraw )) vkGetDeviceProcAddr( device, "vkCmdDraw" ); 1368 vkCmdDrawIndexed = cast( typeof( vkCmdDrawIndexed )) vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ); 1369 vkCmdDrawIndirect = cast( typeof( vkCmdDrawIndirect )) vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ); 1370 vkCmdDrawIndexedIndirect = cast( typeof( vkCmdDrawIndexedIndirect )) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ); 1371 vkCmdDispatch = cast( typeof( vkCmdDispatch )) vkGetDeviceProcAddr( device, "vkCmdDispatch" ); 1372 vkCmdDispatchIndirect = cast( typeof( vkCmdDispatchIndirect )) vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ); 1373 vkCmdCopyBuffer = cast( typeof( vkCmdCopyBuffer )) vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ); 1374 vkCmdCopyImage = cast( typeof( vkCmdCopyImage )) vkGetDeviceProcAddr( device, "vkCmdCopyImage" ); 1375 vkCmdBlitImage = cast( typeof( vkCmdBlitImage )) vkGetDeviceProcAddr( device, "vkCmdBlitImage" ); 1376 vkCmdCopyBufferToImage = cast( typeof( vkCmdCopyBufferToImage )) vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ); 1377 vkCmdCopyImageToBuffer = cast( typeof( vkCmdCopyImageToBuffer )) vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ); 1378 vkCmdUpdateBuffer = cast( typeof( vkCmdUpdateBuffer )) vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ); 1379 vkCmdFillBuffer = cast( typeof( vkCmdFillBuffer )) vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ); 1380 vkCmdClearColorImage = cast( typeof( vkCmdClearColorImage )) vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ); 1381 vkCmdClearDepthStencilImage = cast( typeof( vkCmdClearDepthStencilImage )) vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ); 1382 vkCmdClearAttachments = cast( typeof( vkCmdClearAttachments )) vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ); 1383 vkCmdResolveImage = cast( typeof( vkCmdResolveImage )) vkGetDeviceProcAddr( device, "vkCmdResolveImage" ); 1384 vkCmdSetEvent = cast( typeof( vkCmdSetEvent )) vkGetDeviceProcAddr( device, "vkCmdSetEvent" ); 1385 vkCmdResetEvent = cast( typeof( vkCmdResetEvent )) vkGetDeviceProcAddr( device, "vkCmdResetEvent" ); 1386 vkCmdWaitEvents = cast( typeof( vkCmdWaitEvents )) vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ); 1387 vkCmdPipelineBarrier = cast( typeof( vkCmdPipelineBarrier )) vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ); 1388 vkCmdBeginQuery = cast( typeof( vkCmdBeginQuery )) vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ); 1389 vkCmdEndQuery = cast( typeof( vkCmdEndQuery )) vkGetDeviceProcAddr( device, "vkCmdEndQuery" ); 1390 vkCmdResetQueryPool = cast( typeof( vkCmdResetQueryPool )) vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ); 1391 vkCmdWriteTimestamp = cast( typeof( vkCmdWriteTimestamp )) vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ); 1392 vkCmdCopyQueryPoolResults = cast( typeof( vkCmdCopyQueryPoolResults )) vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ); 1393 vkCmdPushConstants = cast( typeof( vkCmdPushConstants )) vkGetDeviceProcAddr( device, "vkCmdPushConstants" ); 1394 vkCmdBeginRenderPass = cast( typeof( vkCmdBeginRenderPass )) vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ); 1395 vkCmdNextSubpass = cast( typeof( vkCmdNextSubpass )) vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ); 1396 vkCmdEndRenderPass = cast( typeof( vkCmdEndRenderPass )) vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ); 1397 vkCmdExecuteCommands = cast( typeof( vkCmdExecuteCommands )) vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ); 1398 1399 // VK_KHR_swapchain 1400 vkCreateSwapchainKHR = cast( typeof( vkCreateSwapchainKHR )) vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ); 1401 vkDestroySwapchainKHR = cast( typeof( vkDestroySwapchainKHR )) vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ); 1402 vkGetSwapchainImagesKHR = cast( typeof( vkGetSwapchainImagesKHR )) vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ); 1403 vkAcquireNextImageKHR = cast( typeof( vkAcquireNextImageKHR )) vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ); 1404 vkQueuePresentKHR = cast( typeof( vkQueuePresentKHR )) vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ); 1405 1406 // VK_KHR_display_swapchain 1407 vkCreateSharedSwapchainsKHR = cast( typeof( vkCreateSharedSwapchainsKHR )) vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ); 1408 1409 // VK_KHR_maintenance1 1410 vkTrimCommandPoolKHR = cast( typeof( vkTrimCommandPoolKHR )) vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ); 1411 1412 // VK_KHR_push_descriptor 1413 vkCmdPushDescriptorSetKHR = cast( typeof( vkCmdPushDescriptorSetKHR )) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ); 1414 1415 // VK_KHR_descriptor_update_template 1416 vkCreateDescriptorUpdateTemplateKHR = cast( typeof( vkCreateDescriptorUpdateTemplateKHR )) vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ); 1417 vkDestroyDescriptorUpdateTemplateKHR = cast( typeof( vkDestroyDescriptorUpdateTemplateKHR )) vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ); 1418 vkUpdateDescriptorSetWithTemplateKHR = cast( typeof( vkUpdateDescriptorSetWithTemplateKHR )) vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ); 1419 vkCmdPushDescriptorSetWithTemplateKHR = cast( typeof( vkCmdPushDescriptorSetWithTemplateKHR )) vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ); 1420 1421 // VK_EXT_debug_marker 1422 vkDebugMarkerSetObjectTagEXT = cast( typeof( vkDebugMarkerSetObjectTagEXT )) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ); 1423 vkDebugMarkerSetObjectNameEXT = cast( typeof( vkDebugMarkerSetObjectNameEXT )) vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ); 1424 vkCmdDebugMarkerBeginEXT = cast( typeof( vkCmdDebugMarkerBeginEXT )) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ); 1425 vkCmdDebugMarkerEndEXT = cast( typeof( vkCmdDebugMarkerEndEXT )) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ); 1426 vkCmdDebugMarkerInsertEXT = cast( typeof( vkCmdDebugMarkerInsertEXT )) vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ); 1427 1428 // VK_AMD_draw_indirect_count 1429 vkCmdDrawIndirectCountAMD = cast( typeof( vkCmdDrawIndirectCountAMD )) vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ); 1430 vkCmdDrawIndexedIndirectCountAMD = cast( typeof( vkCmdDrawIndexedIndirectCountAMD )) vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ); 1431 1432 // VK_NV_external_memory_win32 1433 version( VK_USE_PLATFORM_WIN32_KHR ) { 1434 vkGetMemoryWin32HandleNV = cast( typeof( vkGetMemoryWin32HandleNV )) vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ); 1435 } 1436 1437 // VK_KHX_device_group 1438 vkGetDeviceGroupPeerMemoryFeaturesKHX = cast( typeof( vkGetDeviceGroupPeerMemoryFeaturesKHX )) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHX" ); 1439 vkBindBufferMemory2KHX = cast( typeof( vkBindBufferMemory2KHX )) vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHX" ); 1440 vkBindImageMemory2KHX = cast( typeof( vkBindImageMemory2KHX )) vkGetDeviceProcAddr( device, "vkBindImageMemory2KHX" ); 1441 vkCmdSetDeviceMaskKHX = cast( typeof( vkCmdSetDeviceMaskKHX )) vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHX" ); 1442 vkGetDeviceGroupPresentCapabilitiesKHX = cast( typeof( vkGetDeviceGroupPresentCapabilitiesKHX )) vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHX" ); 1443 vkGetDeviceGroupSurfacePresentModesKHX = cast( typeof( vkGetDeviceGroupSurfacePresentModesKHX )) vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHX" ); 1444 vkAcquireNextImage2KHX = cast( typeof( vkAcquireNextImage2KHX )) vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHX" ); 1445 vkCmdDispatchBaseKHX = cast( typeof( vkCmdDispatchBaseKHX )) vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHX" ); 1446 1447 // VK_KHX_external_memory_win32 1448 version( VK_USE_PLATFORM_WIN32_KHR ) { 1449 vkGetMemoryWin32HandleKHX = cast( typeof( vkGetMemoryWin32HandleKHX )) vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHX" ); 1450 vkGetMemoryWin32HandlePropertiesKHX = cast( typeof( vkGetMemoryWin32HandlePropertiesKHX )) vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHX" ); 1451 } 1452 1453 // VK_KHX_external_memory_fd 1454 vkGetMemoryFdKHX = cast( typeof( vkGetMemoryFdKHX )) vkGetDeviceProcAddr( device, "vkGetMemoryFdKHX" ); 1455 vkGetMemoryFdPropertiesKHX = cast( typeof( vkGetMemoryFdPropertiesKHX )) vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHX" ); 1456 1457 // VK_KHX_external_semaphore_win32 1458 version( VK_USE_PLATFORM_WIN32_KHR ) { 1459 vkImportSemaphoreWin32HandleKHX = cast( typeof( vkImportSemaphoreWin32HandleKHX )) vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHX" ); 1460 vkGetSemaphoreWin32HandleKHX = cast( typeof( vkGetSemaphoreWin32HandleKHX )) vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHX" ); 1461 } 1462 1463 // VK_KHX_external_semaphore_fd 1464 vkImportSemaphoreFdKHX = cast( typeof( vkImportSemaphoreFdKHX )) vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHX" ); 1465 vkGetSemaphoreFdKHX = cast( typeof( vkGetSemaphoreFdKHX )) vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHX" ); 1466 1467 // VK_NVX_device_generated_commands 1468 vkCmdProcessCommandsNVX = cast( typeof( vkCmdProcessCommandsNVX )) vkGetDeviceProcAddr( device, "vkCmdProcessCommandsNVX" ); 1469 vkCmdReserveSpaceForCommandsNVX = cast( typeof( vkCmdReserveSpaceForCommandsNVX )) vkGetDeviceProcAddr( device, "vkCmdReserveSpaceForCommandsNVX" ); 1470 vkCreateIndirectCommandsLayoutNVX = cast( typeof( vkCreateIndirectCommandsLayoutNVX )) vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNVX" ); 1471 vkDestroyIndirectCommandsLayoutNVX = cast( typeof( vkDestroyIndirectCommandsLayoutNVX )) vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNVX" ); 1472 vkCreateObjectTableNVX = cast( typeof( vkCreateObjectTableNVX )) vkGetDeviceProcAddr( device, "vkCreateObjectTableNVX" ); 1473 vkDestroyObjectTableNVX = cast( typeof( vkDestroyObjectTableNVX )) vkGetDeviceProcAddr( device, "vkDestroyObjectTableNVX" ); 1474 vkRegisterObjectsNVX = cast( typeof( vkRegisterObjectsNVX )) vkGetDeviceProcAddr( device, "vkRegisterObjectsNVX" ); 1475 vkUnregisterObjectsNVX = cast( typeof( vkUnregisterObjectsNVX )) vkGetDeviceProcAddr( device, "vkUnregisterObjectsNVX" ); 1476 1477 // VK_NV_clip_space_w_scaling 1478 vkCmdSetViewportWScalingNV = cast( typeof( vkCmdSetViewportWScalingNV )) vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ); 1479 1480 // VK_EXT_display_control 1481 vkDisplayPowerControlEXT = cast( typeof( vkDisplayPowerControlEXT )) vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ); 1482 vkRegisterDeviceEventEXT = cast( typeof( vkRegisterDeviceEventEXT )) vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ); 1483 vkRegisterDisplayEventEXT = cast( typeof( vkRegisterDisplayEventEXT )) vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ); 1484 vkGetSwapchainCounterEXT = cast( typeof( vkGetSwapchainCounterEXT )) vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ); 1485 1486 // VK_GOOGLE_display_timing 1487 vkGetRefreshCycleDurationGOOGLE = cast( typeof( vkGetRefreshCycleDurationGOOGLE )) vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ); 1488 vkGetPastPresentationTimingGOOGLE = cast( typeof( vkGetPastPresentationTimingGOOGLE )) vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ); 1489 1490 // VK_EXT_discard_rectangles 1491 vkCmdSetDiscardRectangleEXT = cast( typeof( vkCmdSetDiscardRectangleEXT )) vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ); 1492 1493 // VK_EXT_hdr_metadata 1494 vkSetHdrMetadataEXT = cast( typeof( vkSetHdrMetadataEXT )) vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ); 1495 } 1496 1497 return dispatchDevice; 1498 } 1499 1500 1501 // struct to group per device deviceLevelFunctions into a custom namespace 1502 private struct DispatchDevice { 1503 PFN_vkDestroyDevice vkDestroyDevice; 1504 PFN_vkGetDeviceQueue vkGetDeviceQueue; 1505 PFN_vkQueueSubmit vkQueueSubmit; 1506 PFN_vkQueueWaitIdle vkQueueWaitIdle; 1507 PFN_vkDeviceWaitIdle vkDeviceWaitIdle; 1508 PFN_vkAllocateMemory vkAllocateMemory; 1509 PFN_vkFreeMemory vkFreeMemory; 1510 PFN_vkMapMemory vkMapMemory; 1511 PFN_vkUnmapMemory vkUnmapMemory; 1512 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; 1513 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; 1514 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; 1515 PFN_vkBindBufferMemory vkBindBufferMemory; 1516 PFN_vkBindImageMemory vkBindImageMemory; 1517 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; 1518 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; 1519 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; 1520 PFN_vkQueueBindSparse vkQueueBindSparse; 1521 PFN_vkCreateFence vkCreateFence; 1522 PFN_vkDestroyFence vkDestroyFence; 1523 PFN_vkResetFences vkResetFences; 1524 PFN_vkGetFenceStatus vkGetFenceStatus; 1525 PFN_vkWaitForFences vkWaitForFences; 1526 PFN_vkCreateSemaphore vkCreateSemaphore; 1527 PFN_vkDestroySemaphore vkDestroySemaphore; 1528 PFN_vkCreateEvent vkCreateEvent; 1529 PFN_vkDestroyEvent vkDestroyEvent; 1530 PFN_vkGetEventStatus vkGetEventStatus; 1531 PFN_vkSetEvent vkSetEvent; 1532 PFN_vkResetEvent vkResetEvent; 1533 PFN_vkCreateQueryPool vkCreateQueryPool; 1534 PFN_vkDestroyQueryPool vkDestroyQueryPool; 1535 PFN_vkGetQueryPoolResults vkGetQueryPoolResults; 1536 PFN_vkCreateBuffer vkCreateBuffer; 1537 PFN_vkDestroyBuffer vkDestroyBuffer; 1538 PFN_vkCreateBufferView vkCreateBufferView; 1539 PFN_vkDestroyBufferView vkDestroyBufferView; 1540 PFN_vkCreateImage vkCreateImage; 1541 PFN_vkDestroyImage vkDestroyImage; 1542 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; 1543 PFN_vkCreateImageView vkCreateImageView; 1544 PFN_vkDestroyImageView vkDestroyImageView; 1545 PFN_vkCreateShaderModule vkCreateShaderModule; 1546 PFN_vkDestroyShaderModule vkDestroyShaderModule; 1547 PFN_vkCreatePipelineCache vkCreatePipelineCache; 1548 PFN_vkDestroyPipelineCache vkDestroyPipelineCache; 1549 PFN_vkGetPipelineCacheData vkGetPipelineCacheData; 1550 PFN_vkMergePipelineCaches vkMergePipelineCaches; 1551 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; 1552 PFN_vkCreateComputePipelines vkCreateComputePipelines; 1553 PFN_vkDestroyPipeline vkDestroyPipeline; 1554 PFN_vkCreatePipelineLayout vkCreatePipelineLayout; 1555 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; 1556 PFN_vkCreateSampler vkCreateSampler; 1557 PFN_vkDestroySampler vkDestroySampler; 1558 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; 1559 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; 1560 PFN_vkCreateDescriptorPool vkCreateDescriptorPool; 1561 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; 1562 PFN_vkResetDescriptorPool vkResetDescriptorPool; 1563 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; 1564 PFN_vkFreeDescriptorSets vkFreeDescriptorSets; 1565 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; 1566 PFN_vkCreateFramebuffer vkCreateFramebuffer; 1567 PFN_vkDestroyFramebuffer vkDestroyFramebuffer; 1568 PFN_vkCreateRenderPass vkCreateRenderPass; 1569 PFN_vkDestroyRenderPass vkDestroyRenderPass; 1570 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; 1571 PFN_vkCreateCommandPool vkCreateCommandPool; 1572 PFN_vkDestroyCommandPool vkDestroyCommandPool; 1573 PFN_vkResetCommandPool vkResetCommandPool; 1574 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; 1575 PFN_vkFreeCommandBuffers vkFreeCommandBuffers; 1576 PFN_vkBeginCommandBuffer vkBeginCommandBuffer; 1577 PFN_vkEndCommandBuffer vkEndCommandBuffer; 1578 PFN_vkResetCommandBuffer vkResetCommandBuffer; 1579 PFN_vkCmdBindPipeline vkCmdBindPipeline; 1580 PFN_vkCmdSetViewport vkCmdSetViewport; 1581 PFN_vkCmdSetScissor vkCmdSetScissor; 1582 PFN_vkCmdSetLineWidth vkCmdSetLineWidth; 1583 PFN_vkCmdSetDepthBias vkCmdSetDepthBias; 1584 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; 1585 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; 1586 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; 1587 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; 1588 PFN_vkCmdSetStencilReference vkCmdSetStencilReference; 1589 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; 1590 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; 1591 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; 1592 PFN_vkCmdDraw vkCmdDraw; 1593 PFN_vkCmdDrawIndexed vkCmdDrawIndexed; 1594 PFN_vkCmdDrawIndirect vkCmdDrawIndirect; 1595 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; 1596 PFN_vkCmdDispatch vkCmdDispatch; 1597 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; 1598 PFN_vkCmdCopyBuffer vkCmdCopyBuffer; 1599 PFN_vkCmdCopyImage vkCmdCopyImage; 1600 PFN_vkCmdBlitImage vkCmdBlitImage; 1601 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; 1602 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; 1603 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; 1604 PFN_vkCmdFillBuffer vkCmdFillBuffer; 1605 PFN_vkCmdClearColorImage vkCmdClearColorImage; 1606 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; 1607 PFN_vkCmdClearAttachments vkCmdClearAttachments; 1608 PFN_vkCmdResolveImage vkCmdResolveImage; 1609 PFN_vkCmdSetEvent vkCmdSetEvent; 1610 PFN_vkCmdResetEvent vkCmdResetEvent; 1611 PFN_vkCmdWaitEvents vkCmdWaitEvents; 1612 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; 1613 PFN_vkCmdBeginQuery vkCmdBeginQuery; 1614 PFN_vkCmdEndQuery vkCmdEndQuery; 1615 PFN_vkCmdResetQueryPool vkCmdResetQueryPool; 1616 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; 1617 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; 1618 PFN_vkCmdPushConstants vkCmdPushConstants; 1619 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; 1620 PFN_vkCmdNextSubpass vkCmdNextSubpass; 1621 PFN_vkCmdEndRenderPass vkCmdEndRenderPass; 1622 PFN_vkCmdExecuteCommands vkCmdExecuteCommands; 1623 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; 1624 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; 1625 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; 1626 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; 1627 PFN_vkQueuePresentKHR vkQueuePresentKHR; 1628 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; 1629 PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; 1630 PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; 1631 PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; 1632 PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; 1633 PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; 1634 PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; 1635 PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; 1636 PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; 1637 PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; 1638 PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; 1639 PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; 1640 PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; 1641 PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; 1642 version( VK_USE_PLATFORM_WIN32_KHR ) { 1643 PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; 1644 } 1645 PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX vkGetDeviceGroupPeerMemoryFeaturesKHX; 1646 PFN_vkBindBufferMemory2KHX vkBindBufferMemory2KHX; 1647 PFN_vkBindImageMemory2KHX vkBindImageMemory2KHX; 1648 PFN_vkCmdSetDeviceMaskKHX vkCmdSetDeviceMaskKHX; 1649 PFN_vkGetDeviceGroupPresentCapabilitiesKHX vkGetDeviceGroupPresentCapabilitiesKHX; 1650 PFN_vkGetDeviceGroupSurfacePresentModesKHX vkGetDeviceGroupSurfacePresentModesKHX; 1651 PFN_vkAcquireNextImage2KHX vkAcquireNextImage2KHX; 1652 PFN_vkCmdDispatchBaseKHX vkCmdDispatchBaseKHX; 1653 version( VK_USE_PLATFORM_WIN32_KHR ) { 1654 PFN_vkGetMemoryWin32HandleKHX vkGetMemoryWin32HandleKHX; 1655 PFN_vkGetMemoryWin32HandlePropertiesKHX vkGetMemoryWin32HandlePropertiesKHX; 1656 } 1657 PFN_vkGetMemoryFdKHX vkGetMemoryFdKHX; 1658 PFN_vkGetMemoryFdPropertiesKHX vkGetMemoryFdPropertiesKHX; 1659 version( VK_USE_PLATFORM_WIN32_KHR ) { 1660 PFN_vkImportSemaphoreWin32HandleKHX vkImportSemaphoreWin32HandleKHX; 1661 PFN_vkGetSemaphoreWin32HandleKHX vkGetSemaphoreWin32HandleKHX; 1662 } 1663 PFN_vkImportSemaphoreFdKHX vkImportSemaphoreFdKHX; 1664 PFN_vkGetSemaphoreFdKHX vkGetSemaphoreFdKHX; 1665 PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX; 1666 PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX; 1667 PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX; 1668 PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX; 1669 PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX; 1670 PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX; 1671 PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX; 1672 PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX; 1673 PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; 1674 PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; 1675 PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; 1676 PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; 1677 PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; 1678 PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; 1679 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; 1680 PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; 1681 PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; 1682 } 1683 1684 // Derelict loader to acquire entry point vkGetInstanceProcAddr 1685 version( ERUPTED_FROM_DERELICT ) { 1686 import derelict.util.loader; 1687 import derelict.util.system; 1688 1689 private { 1690 version( Windows ) 1691 enum libNames = "vulkan-1.dll"; 1692 1693 else version( Posix ) 1694 enum libNames = "libvulkan.so.1"; 1695 1696 else 1697 static assert( 0,"Need to implement Vulkan libNames for this operating system." ); 1698 } 1699 1700 class DerelictEruptedLoader : SharedLibLoader { 1701 this() { 1702 super( libNames ); 1703 } 1704 1705 protected override void loadSymbols() { 1706 typeof( vkGetInstanceProcAddr ) getProcAddr; 1707 bindFunc( cast( void** )&getProcAddr, "vkGetInstanceProcAddr" ); 1708 loadGlobalLevelFunctions( getProcAddr ); 1709 } 1710 } 1711 1712 __gshared DerelictEruptedLoader DerelictErupted; 1713 1714 shared static this() { 1715 DerelictErupted = new DerelictEruptedLoader(); 1716 } 1717 } 1718 1719