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