1# Vulkan Capabilities 2 3[Vulkan](https://www.vulkan.org/) is a set of 2D and 3D rendering APIs that feature cross-platform and high-performance. OpenHarmony now supports Vulkan v1.3.231. 4 5## Supported Standard APIs 6 7The table below lists the supported APIs of Vulkan v1.3.231. 8 9|Type|Symbol| 10| --- | --- | 11|FUNC|vkAcquireNextImage2KHR| 12|FUNC|vkAcquireNextImageKHR| 13|FUNC|vkAllocateCommandBuffers| 14|FUNC|vkAllocateDescriptorSets| 15|FUNC|vkAllocateMemory| 16|FUNC|vkBeginCommandBuffer| 17|FUNC|vkBindBufferMemory| 18|FUNC|vkBindBufferMemory2| 19|FUNC|vkBindImageMemory| 20|FUNC|vkBindImageMemory2| 21|FUNC|vkCmdBeginQuery| 22|FUNC|vkCmdBeginRendering| 23|FUNC|vkCmdBeginRenderPass| 24|FUNC|vkCmdBeginRenderPass2| 25|FUNC|vkCmdBindDescriptorSets| 26|FUNC|vkCmdBindIndexBuffer| 27|FUNC|vkCmdBindPipeline| 28|FUNC|vkCmdBindVertexBuffers| 29|FUNC|vkCmdBindVertexBuffers2| 30|FUNC|vkCmdBlitImage| 31|FUNC|vkCmdBlitImage2| 32|FUNC|vkCmdClearAttachments| 33|FUNC|vkCmdClearColorImage| 34|FUNC|vkCmdClearDepthStencilImage| 35|FUNC|vkCmdCopyBuffer| 36|FUNC|vkCmdCopyBuffer2| 37|FUNC|vkCmdCopyBufferToImage| 38|FUNC|vkCmdCopyBufferToImage2| 39|FUNC|vkCmdCopyImage| 40|FUNC|vkCmdCopyImage2| 41|FUNC|vkCmdCopyImageToBuffer| 42|FUNC|vkCmdCopyImageToBuffer2| 43|FUNC|vkCmdCopyQueryPoolResults| 44|FUNC|vkCmdDispatch| 45|FUNC|vkCmdDispatchBase| 46|FUNC|vkCmdDispatchIndirect| 47|FUNC|vkCmdDraw| 48|FUNC|vkCmdDrawIndexed| 49|FUNC|vkCmdDrawIndexedIndirect| 50|FUNC|vkCmdDrawIndexedIndirectCount| 51|FUNC|vkCmdDrawIndirect| 52|FUNC|vkCmdDrawIndirectCount| 53|FUNC|vkCmdEndQuery| 54|FUNC|vkCmdEndRendering| 55|FUNC|vkCmdEndRenderPass| 56|FUNC|vkCmdEndRenderPass2| 57|FUNC|vkCmdExecuteCommands| 58|FUNC|vkCmdFillBuffer| 59|FUNC|vkCmdNextSubpass| 60|FUNC|vkCmdNextSubpass2| 61|FUNC|vkCmdPipelineBarrier| 62|FUNC|vkCmdPipelineBarrier2| 63|FUNC|vkCmdPushConstants| 64|FUNC|vkCmdResetEvent| 65|FUNC|vkCmdResetEvent2| 66|FUNC|vkCmdResetQueryPool| 67|FUNC|vkCmdResolveImage| 68|FUNC|vkCmdResolveImage2| 69|FUNC|vkCmdSetBlendConstants| 70|FUNC|vkCmdSetCullMode| 71|FUNC|vkCmdSetDepthBias| 72|FUNC|vkCmdSetDepthBiasEnable| 73|FUNC|vkCmdSetDepthBounds| 74|FUNC|vkCmdSetDepthBoundsTestEnable| 75|FUNC|vkCmdSetDepthCompareOp| 76|FUNC|vkCmdSetDepthTestEnable| 77|FUNC|vkCmdSetDepthWriteEnable| 78|FUNC|vkCmdSetDeviceMask| 79|FUNC|vkCmdSetEvent| 80|FUNC|vkCmdSetEvent2| 81|FUNC|vkCmdSetFrontFace| 82|FUNC|vkCmdSetLineWidth| 83|FUNC|vkCmdSetPrimitiveRestartEnable| 84|FUNC|vkCmdSetPrimitiveTopology| 85|FUNC|vkCmdSetRasterizerDiscardEnable| 86|FUNC|vkCmdSetScissor| 87|FUNC|vkCmdSetScissorWithCount| 88|FUNC|vkCmdSetStencilCompareMask| 89|FUNC|vkCmdSetStencilOp| 90|FUNC|vkCmdSetStencilReference| 91|FUNC|vkCmdSetStencilTestEnable| 92|FUNC|vkCmdSetStencilWriteMask| 93|FUNC|vkCmdSetViewport| 94|FUNC|vkCmdSetViewportWithCount| 95|FUNC|vkCmdUpdateBuffer| 96|FUNC|vkCmdWaitEvents| 97|FUNC|vkCmdWaitEvents2| 98|FUNC|vkCmdWriteTimestamp| 99|FUNC|vkCmdWriteTimestamp2| 100|FUNC|vkCreateBuffer| 101|FUNC|vkCreateBufferView| 102|FUNC|vkCreateCommandPool| 103|FUNC|vkCreateComputePipelines| 104|FUNC|vkCreateDescriptorPool| 105|FUNC|vkCreateDescriptorSetLayout| 106|FUNC|vkCreateDescriptorUpdateTemplate| 107|FUNC|vkCreateDevice| 108|FUNC|vkCreateDisplayModeKHR| 109|FUNC|vkCreateDisplayPlaneSurfaceKHR| 110|FUNC|vkCreateEvent| 111|FUNC|vkCreateFence| 112|FUNC|vkCreateFramebuffer| 113|FUNC|vkCreateGraphicsPipelines| 114|FUNC|vkCreateImage| 115|FUNC|vkCreateImageView| 116|FUNC|vkCreateInstance| 117|FUNC|vkCreatePipelineCache| 118|FUNC|vkCreatePipelineLayout| 119|FUNC|vkCreatePrivateDataSlot| 120|FUNC|vkCreateQueryPool| 121|FUNC|vkCreateRenderPass| 122|FUNC|vkCreateRenderPass2| 123|FUNC|vkCreateSampler| 124|FUNC|vkCreateSamplerYcbcrConversion| 125|FUNC|vkCreateSemaphore| 126|FUNC|vkCreateShaderModule| 127|FUNC|vkCreateSharedSwapchainsKHR| 128|FUNC|vkCreateSwapchainKHR| 129|FUNC|vkDestroyBuffer| 130|FUNC|vkDestroyBufferView| 131|FUNC|vkDestroyCommandPool| 132|FUNC|vkDestroyDescriptorPool| 133|FUNC|vkDestroyDescriptorSetLayout| 134|FUNC|vkDestroyDescriptorUpdateTemplate| 135|FUNC|vkDestroyDevice| 136|FUNC|vkDestroyEvent| 137|FUNC|vkDestroyFence| 138|FUNC|vkDestroyFramebuffer| 139|FUNC|vkDestroyImage| 140|FUNC|vkDestroyImageView| 141|FUNC|vkDestroyInstance| 142|FUNC|vkDestroyPipeline| 143|FUNC|vkDestroyPipelineCache| 144|FUNC|vkDestroyPipelineLayout| 145|FUNC|vkDestroyPrivateDataSlot| 146|FUNC|vkDestroyQueryPool| 147|FUNC|vkDestroyRenderPass| 148|FUNC|vkDestroySampler| 149|FUNC|vkDestroySamplerYcbcrConversion| 150|FUNC|vkDestroySemaphore| 151|FUNC|vkDestroyShaderModule| 152|FUNC|vkDestroySurfaceKHR| 153|FUNC|vkDestroySwapchainKHR| 154|FUNC|vkDeviceWaitIdle| 155|FUNC|vkEndCommandBuffer| 156|FUNC|vkEnumerateDeviceExtensionProperties| 157|FUNC|vkEnumerateDeviceLayerProperties| 158|FUNC|vkEnumerateInstanceExtensionProperties| 159|FUNC|vkEnumerateInstanceLayerProperties| 160|FUNC|vkEnumerateInstanceVersion| 161|FUNC|vkEnumeratePhysicalDeviceGroups| 162|FUNC|vkEnumeratePhysicalDevices| 163|FUNC|vkFlushMappedMemoryRanges| 164|FUNC|vkFreeCommandBuffers| 165|FUNC|vkFreeDescriptorSets| 166|FUNC|vkFreeMemory| 167|FUNC|vkGetBufferDeviceAddress| 168|FUNC|vkGetBufferMemoryRequirements| 169|FUNC|vkGetBufferMemoryRequirements2| 170|FUNC|vkGetBufferOpaqueCaptureAddress| 171|FUNC|vkGetDescriptorSetLayoutSupport| 172|FUNC|vkGetDeviceBufferMemoryRequirements| 173|FUNC|vkGetDeviceGroupPeerMemoryFeatures| 174|FUNC|vkGetDeviceGroupPresentCapabilitiesKHR| 175|FUNC|vkGetDeviceGroupSurfacePresentModesKHR| 176|FUNC|vkGetDeviceImageMemoryRequirements| 177|FUNC|vkGetDeviceImageSparseMemoryRequirements| 178|FUNC|vkGetDeviceMemoryCommitment| 179|FUNC|vkGetDeviceMemoryOpaqueCaptureAddress| 180|FUNC|vkGetDeviceProcAddr| 181|FUNC|vkGetDeviceQueue| 182|FUNC|vkGetDeviceQueue2| 183|FUNC|vkGetDisplayModeProperties2KHR| 184|FUNC|vkGetDisplayModePropertiesKHR| 185|FUNC|vkGetDisplayPlaneCapabilities2KHR| 186|FUNC|vkGetDisplayPlaneCapabilitiesKHR| 187|FUNC|vkGetDisplayPlaneSupportedDisplaysKHR| 188|FUNC|vkGetEventStatus| 189|FUNC|vkGetFenceStatus| 190|FUNC|vkGetImageMemoryRequirements| 191|FUNC|vkGetImageMemoryRequirements2| 192|FUNC|vkGetImageSparseMemoryRequirements| 193|FUNC|vkGetImageSparseMemoryRequirements2| 194|FUNC|vkGetImageSubresourceLayout| 195|FUNC|vkGetInstanceProcAddr| 196|FUNC|vkGetPhysicalDeviceDisplayPlaneProperties2KHR| 197|FUNC|vkGetPhysicalDeviceDisplayPlanePropertiesKHR| 198|FUNC|vkGetPhysicalDeviceDisplayProperties2KHR| 199|FUNC|vkGetPhysicalDeviceDisplayPropertiesKHR| 200|FUNC|vkGetPhysicalDeviceExternalBufferProperties| 201|FUNC|vkGetPhysicalDeviceExternalFenceProperties| 202|FUNC|vkGetPhysicalDeviceExternalSemaphoreProperties| 203|FUNC|vkGetPhysicalDeviceFeatures| 204|FUNC|vkGetPhysicalDeviceFeatures2| 205|FUNC|vkGetPhysicalDeviceFormatProperties| 206|FUNC|vkGetPhysicalDeviceFormatProperties2| 207|FUNC|vkGetPhysicalDeviceImageFormatProperties| 208|FUNC|vkGetPhysicalDeviceImageFormatProperties2| 209|FUNC|vkGetPhysicalDeviceMemoryProperties| 210|FUNC|vkGetPhysicalDeviceMemoryProperties2| 211|FUNC|vkGetPhysicalDevicePresentRectanglesKHR| 212|FUNC|vkGetPhysicalDeviceProperties| 213|FUNC|vkGetPhysicalDeviceProperties2| 214|FUNC|vkGetPhysicalDeviceQueueFamilyProperties| 215|FUNC|vkGetPhysicalDeviceQueueFamilyProperties2| 216|FUNC|vkGetPhysicalDeviceSparseImageFormatProperties| 217|FUNC|vkGetPhysicalDeviceSparseImageFormatProperties2| 218|FUNC|vkGetPhysicalDeviceSurfaceCapabilities2KHR| 219|FUNC|vkGetPhysicalDeviceSurfaceCapabilitiesKHR| 220|FUNC|vkGetPhysicalDeviceSurfaceFormats2KHR| 221|FUNC|vkGetPhysicalDeviceSurfaceFormatsKHR| 222|FUNC|vkGetPhysicalDeviceSurfacePresentModesKHR| 223|FUNC|vkGetPhysicalDeviceSurfaceSupportKHR| 224|FUNC|vkGetPhysicalDeviceToolProperties| 225|FUNC|vkGetPipelineCacheData| 226|FUNC|vkGetPrivateData| 227|FUNC|vkGetQueryPoolResults| 228|FUNC|vkGetRenderAreaGranularity| 229|FUNC|vkGetSemaphoreCounterValue| 230|FUNC|vkGetSwapchainImagesKHR| 231|FUNC|vkInvalidateMappedMemoryRanges| 232|FUNC|vkMapMemory| 233|FUNC|vkMergePipelineCaches| 234|FUNC|vkQueueBindSparse| 235|FUNC|vkQueuePresentKHR| 236|FUNC|vkQueueSubmit| 237|FUNC|vkQueueSubmit2| 238|FUNC|vkQueueWaitIdle| 239|FUNC|vkResetCommandBuffer| 240|FUNC|vkResetCommandPool| 241|FUNC|vkResetDescriptorPool| 242|FUNC|vkResetEvent| 243|FUNC|vkResetFences| 244|FUNC|vkResetQueryPool| 245|FUNC|vkSetEvent| 246|FUNC|vkSetPrivateData| 247|FUNC|vkSignalSemaphore| 248|FUNC|vkTrimCommandPool| 249|FUNC|vkUnmapMemory| 250|FUNC|vkUpdateDescriptorSets| 251|FUNC|vkUpdateDescriptorSetWithTemplate| 252|FUNC|vkWaitForFences| 253|FUNC|vkWaitSemaphores| 254 255## Extended APIs in OpenHarmony 256 257In addition to the standard APIs, OpenHarmony provides extended APIs for creating a Vulkan surface using **OHNativeWindow** and obtaining **OH_NativeBuffer** and **OH_NativeBuffer** properties. 258 259|Type|Symbol| 260| --- | --- | 261|FUNC|vkCreateSurfaceOHOS| 262|FUNC|vkGetNativeBufferPropertiesOHOS| 263|FUNC|vkGetMemoryNativeBufferOHOS| 264 265For details about the extended APIs, see [Vulkan Module](_vulkan.md). 266