ANGLE's Vulkan back-end implementation lives in this folder.
Vulkan is an explicit graphics API. It has a lot in common with other explicit APIs such as Microsoft's D3D12 and Apple's Metal. Compared to APIs like OpenGL or D3D11 explicit APIs can offer a number of significant benefits:
- Lower API call CPU overhead.
- A smaller API surface with more direct hardware control.
- Better support for multi-core programming.
- Vulkan in particular has open-source tooling and tests.
The RendererVk class represents an EGLDisplay. RendererVk owns shared global
resources like the [VkDevice][VkDevice], [VkQueue][VkQueue], the Vulkan format tables
and internal Vulkan shaders. The ContextVk class implements the back-end
of a front-end OpenGL Context. ContextVk processes state changes and handles action commands like
glDrawArrays and glDrawElements.
Implementation details can be found in the doc directory.