Vulkan can be used to develop applications for many use cases. While Vulkan applications can choose to use a subset of the functionality described below, it was designed so a developer could use all of them in a single API.
Note: It is important to understand Vulkan is a box of tools and there are multiple ways of doing a task.
2D and 3D graphics are primarily what the Vulkan API is designed for. Vulkan is designed to allow developers to create hardware accelerated graphical applications.
Note: All Vulkan implementations are required to support Graphics, but the WSI system is not required.
Due to the parallel nature of GPUs, a new style of programming referred to as GPGPU can be used to exploit a GPU for computational tasks. Vulkan supports compute variations of VkQueues
, VkPipelines
, and more which allow Vulkan to be used for general computation.
Note: All Vulkan implementations are required to support Compute.
Currently, the Vulkan Working Group is looking into how to make Vulkan a first class API for Ray Tracing rendering. More information was announced at Siggraph 2019.
Note: As of now, there is a NVIDIA vendor extension exposing an implementation of ray tracing on Vulkan.
Currently, the Vulkan Working Group is looking into how to make Vulkan a first class API for exposing onboard GPUs video encode/decode support. More information was announced at Siggraph 2019.
Note: As of now, there exists no public Vulkan API for video.
Currently, the Vulkan Working Group is looking into how to make Vulkan a first class API for exposing ML compute capabilities of modern GPUs. More information was announced at Siggraph 2019.
Note: As of now, there exists no public Vulkan API for machine learning.
Currently, the Vulkan Working Group is looking into how to make Vulkan usable for safety critical systems.
Note: As of now, there exists no public Vulkan API for safety critical systems.