This repo was created to share code across various Vulkan repositories, solving long standing issues for Vulkan SDK developers and users.
The Vulkan-ValidationLayers
contained many libraries and utilities that were useful for other Vulkan repositories, and became the primary mechanism for code sharing in the Vulkan ecosystem.
This caused the Vulkan-ValidationLayers
to have to maintain and export source code which was never intended for that purpose. This not only hindered development of the Vulkan-ValidationLayers
, but would frequently break anyone depending on the source code due to the poorly located nature of it. On top of numerous other issues.
This repository was created to facilitate official source deliverables that can be reliably used by developers.
The Vulkan::LayerSettings
library was created to standardize layer configuration code for various SDK layer deliverables.
- Vulkan Validation Layers
- Vulkan Extension Layer
- Vulkan Profiles
- LunarG Tool Layers
EX:
VK_LAYER_LUNARG_api_dump
,VK_LAYER_LUNARG_screenshot
andVK_LAYER_LUNARG_monitor
This is to ensure they all worked consistently with the 3 main methods of layer configuration.
For more information see layer_configuration.md.
The Vulkan::UtilityHeaders
library contains header only files that provide useful functionality to developers:
vk_dispatch_table.h
: Initializing instance/device dispatch tablesvk_format_utils.h
: Utilities forVkFormat
vk_struct_helper.hpp
: Utilities for vulkan structsvk_enum_string_helper.h
: Converts Vulkan enums into strings