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:
The RendererVk is a singleton. RendererVk owns shared global resources like the [VkDevice][VkDevice], [VkQueue][VkQueue], the Vulkan format tables and internal Vulkan shaders. The back-end creates a new ContextVk instance to manage each allocated OpenGL Context. ContextVk processes state changes and handles action commands like glDrawArrays
and glDrawElements
.
Implementation details can be found in the doc
directory.