# Vulkan Runtime

The Vulkan runtime and utility code in Mesa provides a powerful shared core for building Vulkan drivers. It’s a collection of base structures (think base classes in OOO) which allow us to implement a bunch of the annoying hardware-agnostic bits in common code.

- Base object structs
  - vk_object_base
  - vk_instance
  - vk_physical_device
  - vk_device
- Dispatch
  - Extension tables
  - Entrypoint and dispatch tables
  - Generating driver dispatch tables
  - Common Vulkan entrypoints
  - Entrypoint lookup
  - Populating layer or client dispatch tables
- Command Pools
  - `vk_command_buffer_ops`
  - Command Buffer Recycling
  - Custom command pools
  - Reference
- Graphics state
  - Pipeline state
  - Dynamic state
  - Depth stencil state optimization
  - Reference
- Render Passes
  - VK_KHR_create_renderpass2
  - Common VkRenderPass implementation
  - VK_KHR_dynamic_rendering
  - vk_render_pass reference