Reland "Merge tag 'vulkan-sdk-1.4.350.0' into main"

This is a reland of commit 0f0e759e2dbba04f13d43baa41d98ef9230ed1a9

Original change's description:
> Merge tag 'vulkan-sdk-1.4.350.0' into main
>
> Bug: 510484520
> Change-Id: I7e4e0b43e49c0c866944931af0791dacca73912b

Bug: 510484520
Change-Id: I0eaacdf724109e3432ff70978425c9aad73f610c
43 files changed
tree: d6e0f063e9c9a5be4d152fd2114160f7131f5e83
  1. .github/
  2. .reuse/
  3. docs/
  4. include/
  5. LICENSES/
  6. scripts/
  7. src/
  8. tests/
  9. .clang-format
  10. .gitattributes
  11. .gitignore
  12. BUILD.gn
  13. BUILD.md
  14. CMakeLists.txt
  15. CODE_OF_CONDUCT.md
  16. LICENSE.md
  17. README.md
README.md

Vulkan-Utility-Libraries

This repo was created to share code across various Vulkan repositories, solving long standing issues for Vulkan SDK developers and users.

Historical Context

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.

Vulkan::LayerSettings

The Vulkan::LayerSettings library was created to standardize layer configuration code for various SDK layer deliverables.

This is to ensure they all worked consistently with the 3 main methods of layer configuration.

For more information see layer_configuration.md.

Vulkan::UtilityHeaders

The Vulkan::UtilityHeaders library contains header only files that provide useful functionality to developers:

  • vk_dispatch_table.h: Initializing instance/device dispatch tables
  • vk_format_utils.h: Utilities for VkFormat
  • vk_struct_helper.hpp: Utilities for vulkan structs
  • vk_enum_string_helper.h: Converts Vulkan enums into strings