scripts: Improve SafePNextCopy for unknown structs If a pNext chain contains unknown structure, the current code will skip it by not updating prev_pNext. When a known structure is encountered later, the chain will be re-sewn to exclude the custom structure. However, if the unknown structure is at the very end, the current code will not repair the pNext pointer of prev_pNext. Thus the safe copy of the chain will still contain an unsafe pNext pointer at the end. This commit fixes this issue by setting prev_pNext->pNext on every iteration, even if prev_pNext itself is not updated. If safe_pNext is itself a nullptr, we should still overwrite prev_pNext->pNext so as not to leave an unsafe value there. If later a known structure is seen, this nullptr will be overwritten and the current functionality will remain the same.
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.
VK_LAYER_LUNARG_api_dump, VK_LAYER_LUNARG_screenshot and VK_LAYER_LUNARG_monitorThis 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 for VkFormatvk_struct_helper.hpp: Utilities for vulkan structsvk_enum_string_helper.h: Converts Vulkan enums into strings