Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package vulkan-tools for openSUSE:Factory 
checked in at 2024-07-24 15:29:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vulkan-tools (Old)
 and      /work/SRC/openSUSE:Factory/.vulkan-tools.new.1869 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vulkan-tools"

Wed Jul 24 15:29:35 2024 rev:50 rq:1189193 version:1.3.290

Changes:
--------
--- /work/SRC/openSUSE:Factory/vulkan-tools/vulkan-tools.changes        
2024-05-17 20:05:23.395874778 +0200
+++ /work/SRC/openSUSE:Factory/.vulkan-tools.new.1869/vulkan-tools.changes      
2024-07-25 12:12:29.986710592 +0200
@@ -1,0 +2,6 @@
+Tue Jul 23 05:26:36 UTC 2024 - Jan Engelhardt <[email protected]>
+
+- Update to release SDK-1.3.290
+  * cube: Fix incremental present on swapchain recreate
+
+-------------------------------------------------------------------

Old:
----
  vulkan-sdk-1.3.283.0.tar.gz

New:
----
  _scmsync.obsinfo
  build.specials.obscpio
  vulkan-sdk-1.3.290.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vulkan-tools.spec ++++++
--- /var/tmp/diff_new_pack.nEZJM0/_old  2024-07-25 12:12:30.442728874 +0200
+++ /var/tmp/diff_new_pack.nEZJM0/_new  2024-07-25 12:12:30.442728874 +0200
@@ -17,21 +17,21 @@
 
 
 Name:           vulkan-tools
-Version:        1.3.283.0
+Version:        1.3.290
 Release:        0
 Summary:        Diagnostic utilities for Vulkan
 License:        Apache-2.0
 Group:          Development/Tools/Other
 URL:            https://github.com/KhronosGroup/Vulkan-Tools
-Source:         
https://github.com/KhronosGroup/Vulkan-Tools/archive/refs/tags/vulkan-sdk-%version.tar.gz
+Source:         
https://github.com/KhronosGroup/Vulkan-Tools/archive/refs/tags/vulkan-sdk-%version.0.tar.gz
 Source9:        baselibs.conf
 BuildRequires:  cmake >= 3.17
 BuildRequires:  gcc-c++ >= 4.8
 BuildRequires:  glslang-devel
 BuildRequires:  pkg-config
 BuildRequires:  python3-base
-BuildRequires:  vulkan-volk-devel >= 1.3.283
-BuildRequires:  pkgconfig(vulkan) >= 1.3.283
+BuildRequires:  vulkan-volk-devel >= %version
+BuildRequires:  pkgconfig(vulkan) >= %version
 BuildRequires:  pkgconfig(wayland-protocols)
 BuildRequires:  pkgconfig(x11)
 BuildRequires:  pkgconfig(xcb)
@@ -46,7 +46,7 @@
 This package contains the Khronos official Vulkan tools and utilities.
 
 %prep
-%autosetup -p1 -n Vulkan-Tools-vulkan-sdk-%version
+%autosetup -p1 -n Vulkan-Tools-vulkan-sdk-%version.0
 
 %build
 mkdir -p glslang/bin

++++++ _scmsync.obsinfo ++++++
mtime: 1721712666
commit: 656e64931fd7f38929b75d46cd35c46cf46f9970afc6a6307c3fdfdc639afb63
url: https://src.opensuse.org/jengelh/vulkan-tools
revision: master

++++++ vulkan-sdk-1.3.283.0.tar.gz -> vulkan-sdk-1.3.290.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Vulkan-Tools-vulkan-sdk-1.3.283.0/.gitignore 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/.gitignore
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/.gitignore    2024-05-06 
21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/.gitignore    2024-07-16 
19:33:46.000000000 +0200
@@ -31,6 +31,7 @@
 *.includes
 .vscode/
 .DS_Store
+.cache
 
 # Chromium build artifacts
 .cipd/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Vulkan-Tools-vulkan-sdk-1.3.283.0/CMakeLists.txt 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/CMakeLists.txt
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/CMakeLists.txt        2024-05-06 
21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/CMakeLists.txt        2024-07-16 
19:33:46.000000000 +0200
@@ -39,6 +39,11 @@
 option(BUILD_CUBE "Build cube" ON)
 option(BUILD_VULKANINFO "Build vulkaninfo" ON)
 option(BUILD_ICD "Build icd" ON)
+option(BUILD_TESTS "Build the tests")
+option(BUILD_WERROR "Treat compiler warnings as errors")
+# NOTE: Our custom code generation target isn't desirable for system package 
managers or add_subdirectory users.
+# So this target needs to be off by default to avoid obtuse build errors or 
patches.
+option(TOOLS_CODEGEN "Enable helper codegen target")
 
 option(ENABLE_ADDRESS_SANITIZER "Use address sanitization")
 if (ENABLE_ADDRESS_SANITIZER)
@@ -50,13 +55,14 @@
 
 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
-find_package(VulkanHeaders QUIET CONFIG)
-find_package(VulkanLoader QUIET CONFIG)
-find_package(volk QUIET CONFIG)
+find_package(VulkanHeaders QUIET REQUIRED CONFIG)
+find_package(volk QUIET REQUIRED CONFIG)
+if ((APPLE OR BUILD_TESTS) AND NOT ANDROID)
+    find_package(VulkanLoader QUIET REQUIRED CONFIG)
+endif()
 
 include(GNUInstallDirs)
 
-option(BUILD_WERROR "Treat compiler warnings as errors")
 if (BUILD_WERROR)
     add_compile_options("$<IF:$<CXX_COMPILER_ID:MSVC>,/WX,-Werror>")
 endif()
@@ -96,9 +102,7 @@
     add_compile_options("/w34245")
 endif()
 
-# NOTE: Our custom code generation target isn't desirable for system package 
managers or add_subdirectory users.
-# So this target needs to be off by default to avoid obtuse build errors or 
patches.
-option(TOOLS_CODEGEN "Enable helper codegen target")
+
 if (TOOLS_CODEGEN)
     find_package(Python3 REQUIRED QUIET)
     add_custom_target(tools_codegen
@@ -146,7 +150,6 @@
 
 add_subdirectory(windows-runtime-installer)
 
-option(BUILD_TESTS "Build the tests")
 if(BUILD_TESTS)
     enable_testing()
     add_subdirectory(tests)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/CMakeLists.txt 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/CMakeLists.txt
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/CMakeLists.txt   2024-05-06 
21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/CMakeLists.txt   2024-07-16 
19:33:46.000000000 +0200
@@ -61,7 +61,7 @@
     endif()
 endif()
 
-if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
+if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD|GNU")
     option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
     option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
     option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" ON)
@@ -134,7 +134,7 @@
     add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
 elseif(APPLE)
     add_definitions(-DVK_USE_PLATFORM_METAL_EXT)
-elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
+elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD|GNU")
     if(NOT CUBE_WSI_SELECTION)
         set(CUBE_WSI_SELECTION "XCB")
     endif()
@@ -210,7 +210,7 @@
 # a missing dependency on libpthread. While newer Ubuntu versions use a glibc 
version where libpthread
 # is integrated into libc, older ubuntu's do not so we need to link threads 
directly in order for
 # validation layers to be loadable.
-if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
+if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD|GNU")
     find_package(Threads REQUIRED)
 endif()
 
@@ -227,7 +227,7 @@
     add_subdirectory(android)
 
     target_link_libraries(vkcube PRIVATE Vulkan::Headers volk::volk_headers)
-elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
+elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD|GNU")
     add_executable(vkcube)
     target_sources(vkcube PRIVATE
         cube.c
@@ -259,7 +259,6 @@
 endif()
 
 target_include_directories(vkcube PRIVATE .)
-target_compile_definitions(vkcube PRIVATE VK_NO_PROTOTYPES)
 
 if (ANDROID)
     install(TARGETS vkcube DESTINATION ${CMAKE_INSTALL_LIBDIR})
@@ -286,7 +285,7 @@
 
 if(APPLE)
     add_subdirectory(macOS/cubepp)
-elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
+elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD|GNU")
     add_executable(vkcubepp
                    cube.cpp
                    ${PROJECT_SOURCE_DIR}/cube/cube.vert
@@ -307,7 +306,6 @@
     target_link_libraries(vkcubepp Vulkan::Headers volk::volk_headers)
 endif()
 target_include_directories(vkcubepp PRIVATE .)
-target_compile_definitions(vkcubepp PRIVATE VK_NO_PROTOTYPES)
 
 if(APPLE)
     install(
@@ -351,7 +349,7 @@
             Threads::Threads
             PkgConfig::WAYLAND_CLIENT
         )
-        target_compile_definitions(vkcube-wayland PRIVATE 
VK_USE_PLATFORM_WAYLAND_KHR VK_NO_PROTOTYPES)
+        target_compile_definitions(vkcube-wayland PRIVATE 
VK_USE_PLATFORM_WAYLAND_KHR)
         include(CheckLibraryExists)
         CHECK_LIBRARY_EXISTS("rt" clock_gettime "" NEED_RT)
         if (NEED_RT)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/cube.c 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/cube.c
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/cube.c   2024-05-06 
21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/cube.c   2024-07-16 
19:33:46.000000000 +0200
@@ -49,6 +49,8 @@
 #define APP_NAME_STR_LEN 80
 #endif  // _WIN32
 
+// Volk requires VK_NO_PROTOTYPES before including vulkan.h
+#define VK_NO_PROTOTYPES
 #include <vulkan/vulkan.h>
 #define VOLK_IMPLEMENTATION
 #include "volk.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/cube.cpp 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/cube.cpp
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/cube.cpp 2024-05-06 
21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/cube.cpp 2024-07-16 
19:33:46.000000000 +0200
@@ -41,6 +41,9 @@
 #define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
 #define VULKAN_HPP_NO_EXCEPTIONS
 #define VULKAN_HPP_TYPESAFE_CONVERSION 1
+
+// Volk requires VK_NO_PROTOTYPES before including vulkan.hpp
+#define VK_NO_PROTOTYPES
 #include <vulkan/vulkan.hpp>
 
 #define VOLK_IMPLEMENTATION
@@ -3384,7 +3387,7 @@
     return static_cast<int>(msg.wParam);
 }
 
-#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || 
defined(__QNX__)
+#elif defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || 
defined(__QNX__) || defined(__GNU__)
 
 int main(int argc, char **argv) {
     Demo demo;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/macOS/cube/DemoViewController.m 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/macOS/cube/DemoViewController.m
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/macOS/cube/DemoViewController.m  
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/macOS/cube/DemoViewController.m  
2024-07-16 19:33:46.000000000 +0200
@@ -19,8 +19,6 @@
 #import "DemoViewController.h"
 #import <QuartzCore/CAMetalLayer.h>
 
-#include <MoltenVK/mvk_vulkan.h>
-
 #include "cube.c"
 
 #pragma mark -
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/macOS/cubepp/DemoViewController.mm 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/macOS/cubepp/DemoViewController.mm
--- 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/cube/macOS/cubepp/DemoViewController.mm   
    2024-05-06 21:20:39.000000000 +0200
+++ 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/cube/macOS/cubepp/DemoViewController.mm   
    2024-07-16 19:33:46.000000000 +0200
@@ -19,8 +19,6 @@
 #import "DemoViewController.h"
 #import <QuartzCore/CAMetalLayer.h>
 
-#include <MoltenVK/mvk_vulkan.h>
-
 #include "cube.cpp"
 
 #pragma mark -
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/CMakeLists.txt 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/CMakeLists.txt
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/CMakeLists.txt    2024-05-06 
21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/CMakeLists.txt    2024-07-16 
19:33:46.000000000 +0200
@@ -33,7 +33,7 @@
     add_definitions(-DVK_USE_PLATFORM_MACOS_MVK)
 elseif(BUILD_MOCK_ANDROID_SUPPORT)
     add_definitions(-DVK_USE_PLATFORM_ANDROID_KHR)
-elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
+elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD|GNU")
     if(BUILD_WSI_XCB_SUPPORT)
         add_definitions(-DVK_USE_PLATFORM_XCB_KHR -DVK_USE_PLATFORM_XCB_KHX)
     endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/VkICD_mock_icd.json.in 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/VkICD_mock_icd.json.in
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/VkICD_mock_icd.json.in    
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/VkICD_mock_icd.json.in    
2024-07-16 19:33:46.000000000 +0200
@@ -2,6 +2,6 @@
     "file_format_version": "1.0.1",
     "ICD": {
         "library_path": "@JSON_LIBRARY_PATH@",
-        "api_version": "1.3.283"
+        "api_version": "1.3.290"
     }
 }
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/generated/function_declarations.h 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/generated/function_declarations.h
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/generated/function_declarations.h 
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/generated/function_declarations.h 
2024-07-16 19:33:46.000000000 +0200
@@ -51,7 +51,7 @@
     {"VK_EXT_direct_mode_display", 1},
     {"VK_EXT_acquire_xlib_display", 1},
     {"VK_EXT_display_surface_counter", 1},
-    {"VK_EXT_swapchain_colorspace", 4},
+    {"VK_EXT_swapchain_colorspace", 5},
     {"VK_KHR_external_fence_capabilities", 1},
     {"VK_KHR_get_surface_capabilities2", 1},
     {"VK_KHR_get_display_properties2", 1},
@@ -140,7 +140,7 @@
     {"VK_EXT_discard_rectangles", 2},
     {"VK_EXT_conservative_rasterization", 1},
     {"VK_EXT_depth_clip_enable", 1},
-    {"VK_EXT_hdr_metadata", 2},
+    {"VK_EXT_hdr_metadata", 3},
     {"VK_KHR_imageless_framebuffer", 1},
     {"VK_KHR_create_renderpass2", 1},
     {"VK_IMG_relaxed_line_rasterization", 1},
@@ -348,7 +348,7 @@
     {"VK_EXT_depth_clamp_zero_one", 1},
     {"VK_EXT_non_seamless_cube_map", 1},
     {"VK_ARM_render_pass_striped", 1},
-    {"VK_QCOM_fragment_density_map_offset", 1},
+    {"VK_QCOM_fragment_density_map_offset", 2},
     {"VK_NV_copy_memory_indirect", 1},
     {"VK_NV_memory_decompression", 1},
     {"VK_NV_device_generated_commands_compute", 2},
@@ -375,6 +375,7 @@
     {"VK_NV_ray_tracing_invocation_reorder", 1},
     {"VK_NV_extended_sparse_address_space", 1},
     {"VK_EXT_mutable_descriptor_type", 1},
+    {"VK_EXT_legacy_vertex_attributes", 1},
     {"VK_ARM_shader_core_builtins", 2},
     {"VK_EXT_pipeline_library_group_handles", 1},
     {"VK_EXT_dynamic_rendering_unused_attachments", 1},
@@ -401,8 +402,12 @@
     {"VK_KHR_maintenance6", 1},
     {"VK_NV_descriptor_pool_overallocation", 1},
     {"VK_NV_raw_access_chains", 1},
+    {"VK_KHR_shader_relaxed_extended_instruction", 1},
+    {"VK_KHR_maintenance7", 1},
     {"VK_NV_shader_atomic_float16_vector", 1},
+    {"VK_EXT_shader_replicated_composites", 1},
     {"VK_NV_ray_tracing_validation", 1},
+    {"VK_MESA_image_alignment_control", 1},
 };
 
 
@@ -2276,7 +2281,7 @@
 
 static VKAPI_ATTR void VKAPI_CALL CmdSetRenderingInputAttachmentIndicesKHR(
     VkCommandBuffer                             commandBuffer,
-    const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo);
+    const VkRenderingInputAttachmentIndexInfoKHR* pInputAttachmentIndexInfo);
 
 
 
@@ -2559,6 +2564,8 @@
     const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* 
pBindDescriptorBufferEmbeddedSamplersInfo);
 
 
+
+
 static VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT(
     VkInstance                                  instance,
     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
@@ -4305,6 +4312,7 @@
 
 
 
+
 static VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(
     VkDevice                                    device,
     VkSwapchainKHR                              swapchain,
@@ -4350,6 +4358,8 @@
 
 
 
+
+
 
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/generated/function_definitions.h 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/generated/function_definitions.h
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/generated/function_definitions.h  
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/generated/function_definitions.h  
2024-07-16 19:33:46.000000000 +0200
@@ -4311,7 +4311,7 @@
 
 static VKAPI_ATTR void VKAPI_CALL CmdSetRenderingInputAttachmentIndicesKHR(
     VkCommandBuffer                             commandBuffer,
-    const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo)
+    const VkRenderingInputAttachmentIndexInfoKHR* pInputAttachmentIndexInfo)
 {
 //Not a CREATE or DESTROY function
 }
@@ -4783,6 +4783,8 @@
 }
 
 
+
+
 static VKAPI_ATTR VkResult VKAPI_CALL CreateDebugReportCallbackEXT(
     VkInstance                                  instance,
     const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo,
@@ -7526,6 +7528,7 @@
 
 
 
+
 static VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(
     VkDevice                                    device,
     VkSwapchainKHR                              swapchain,
@@ -7595,6 +7598,8 @@
 
 
 
+
+
 
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/generated/vk_typemap_helper.h 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/generated/vk_typemap_helper.h
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/icd/generated/vk_typemap_helper.h     
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/icd/generated/vk_typemap_helper.h     
2024-07-16 19:33:46.000000000 +0200
@@ -3830,6 +3830,60 @@
     typedef VkBindDescriptorBufferEmbeddedSamplersInfoEXT Type;
 };
 
+// Map type VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
+template <> struct 
LvlTypeMap<VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR>
 {
+    typedef VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR Type;
+};
+
+// Map type VkPhysicalDeviceMaintenance7FeaturesKHR to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
+template <> struct LvlTypeMap<VkPhysicalDeviceMaintenance7FeaturesKHR> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR> {
+    typedef VkPhysicalDeviceMaintenance7FeaturesKHR Type;
+};
+
+// Map type VkPhysicalDeviceMaintenance7PropertiesKHR to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
+template <> struct LvlTypeMap<VkPhysicalDeviceMaintenance7PropertiesKHR> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR> {
+    typedef VkPhysicalDeviceMaintenance7PropertiesKHR Type;
+};
+
+// Map type VkPhysicalDeviceLayeredApiPropertiesKHR to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR
+template <> struct LvlTypeMap<VkPhysicalDeviceLayeredApiPropertiesKHR> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR> {
+    typedef VkPhysicalDeviceLayeredApiPropertiesKHR Type;
+};
+
+// Map type VkPhysicalDeviceLayeredApiPropertiesListKHR to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
+template <> struct LvlTypeMap<VkPhysicalDeviceLayeredApiPropertiesListKHR> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR> {
+    typedef VkPhysicalDeviceLayeredApiPropertiesListKHR Type;
+};
+
+// Map type VkPhysicalDeviceLayeredApiVulkanPropertiesKHR to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR
+template <> struct LvlTypeMap<VkPhysicalDeviceLayeredApiVulkanPropertiesKHR> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR>
 {
+    typedef VkPhysicalDeviceLayeredApiVulkanPropertiesKHR Type;
+};
+
 // Map type VkDebugReportCallbackCreateInfoEXT to id 
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
 template <> struct LvlTypeMap<VkDebugReportCallbackCreateInfoEXT> {
     static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
@@ -7685,6 +7739,24 @@
     typedef VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV Type;
 };
 
+// Map type VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT
+template <> struct 
LvlTypeMap<VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT>
 {
+    typedef VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT Type;
+};
+
+// Map type VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT
+template <> struct 
LvlTypeMap<VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT>
 {
+    typedef VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT Type;
+};
+
 // Map type VkLayerSettingsCreateInfoEXT to id 
VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
 template <> struct LvlTypeMap<VkLayerSettingsCreateInfoEXT> {
     static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT;
@@ -8019,6 +8091,15 @@
     typedef VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV Type;
 };
 
+// Map type VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT
+template <> struct 
LvlTypeMap<VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT>
 {
+    typedef VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT Type;
+};
+
 // Map type VkPhysicalDeviceRayTracingValidationFeaturesNV to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV
 template <> struct LvlTypeMap<VkPhysicalDeviceRayTracingValidationFeaturesNV> {
     static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV;
@@ -8028,6 +8109,33 @@
     typedef VkPhysicalDeviceRayTracingValidationFeaturesNV Type;
 };
 
+// Map type VkPhysicalDeviceImageAlignmentControlFeaturesMESA to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA
+template <> struct 
LvlTypeMap<VkPhysicalDeviceImageAlignmentControlFeaturesMESA> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA>
 {
+    typedef VkPhysicalDeviceImageAlignmentControlFeaturesMESA Type;
+};
+
+// Map type VkPhysicalDeviceImageAlignmentControlPropertiesMESA to id 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA
+template <> struct 
LvlTypeMap<VkPhysicalDeviceImageAlignmentControlPropertiesMESA> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA>
 {
+    typedef VkPhysicalDeviceImageAlignmentControlPropertiesMESA Type;
+};
+
+// Map type VkImageAlignmentControlCreateInfoMESA to id 
VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA
+template <> struct LvlTypeMap<VkImageAlignmentControlCreateInfoMESA> {
+    static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA;
+};
+
+template <> struct 
LvlSTypeMap<VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA> {
+    typedef VkImageAlignmentControlCreateInfoMESA Type;
+};
+
 // Map type VkAccelerationStructureGeometryTrianglesDataKHR to id 
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR
 template <> struct LvlTypeMap<VkAccelerationStructureGeometryTrianglesDataKHR> 
{
     static const VkStructureType kSType = 
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/scripts/known_good.json 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/scripts/known_good.json
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/scripts/known_good.json       
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/scripts/known_good.json       
2024-07-16 19:33:46.000000000 +0200
@@ -7,7 +7,7 @@
             "sub_dir": "Vulkan-Headers",
             "build_dir": "Vulkan-Headers/build",
             "install_dir": "Vulkan-Headers/build/install",
-            "commit": "v1.3.283"
+            "commit": "v1.3.290"
         },
         {
             "name": "MoltenVK",
@@ -15,7 +15,7 @@
             "sub_dir": "MoltenVK",
             "build_dir": "MoltenVK",
             "install_dir": "MoltenVK",
-            "commit": "v1.2.8",
+            "commit": "v1.2.9",
             "custom_build": [
                 "./fetchDependencies --macos",
                 "xcodebuild -project MoltenVKPackaging.xcodeproj 
GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS 
MVK_CONFIG_LOG_LEVEL=1' -scheme \"MoltenVK Package (macOS only)\" build"
@@ -35,7 +35,7 @@
             "cmake_options": [
                 "-DVOLK_INSTALL=ON"
             ],
-            "commit": "vulkan-sdk-1.3.283",
+            "commit": "vulkan-sdk-1.3.290",
             "deps": [
                 {
                     "var_name": "VULKAN_HEADERS_INSTALL_DIR",
@@ -74,7 +74,7 @@
             "cmake_options": [
                 "-DLOADER_USE_UNSAFE_FILE_SEARCH=ON"
             ],
-            "commit": "v1.3.283",
+            "commit": "v1.3.290",
             "build_platforms": [
                 "windows",
                 "linux",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/scripts/vulkaninfo_generator.py 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/scripts/vulkaninfo_generator.py
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/scripts/vulkaninfo_generator.py       
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/scripts/vulkaninfo_generator.py       
2024-07-16 19:33:46.000000000 +0200
@@ -114,8 +114,7 @@
         {'extends': 'VkPhysicalDeviceProperties2',
          'type': EXTENSION_TYPE_BOTH,
          'holder_type': 'VkPhysicalDeviceProperties2',
-         'print_iterator': True,
-        'exclude': ['VkPhysicalDeviceHostImageCopyPropertiesEXT']}),
+         'print_iterator': True}),
     ('phys_device_mem_props2',
         {'extends': 'VkPhysicalDeviceMemoryProperties2',
         'type': EXTENSION_TYPE_DEVICE,
@@ -131,7 +130,9 @@
         'type': EXTENSION_TYPE_BOTH,
         'holder_type': 'VkSurfaceCapabilities2KHR',
         'print_iterator': True,
-        'exclude': ['VkSurfacePresentScalingCapabilitiesEXT', 
'VkSurfacePresentModeCompatibilityEXT']}),
+        'exclude': [# VK_EXT_surface_maintenance1 is difficult to code-gen
+                    'VkSurfacePresentScalingCapabilitiesEXT', 
'VkSurfacePresentModeCompatibilityEXT'
+                    ]}),
     ('format_properties2',
         {'extends': 'VkFormatProperties2',
         'type': EXTENSION_TYPE_DEVICE,
@@ -318,7 +319,7 @@
                     out += PrintBitMaskToString(bitmask, flag.name, self)
 
         for s in (x for x in self.all_structures if x.name in types_to_gen and 
x.name not in STRUCT_BLACKLIST):
-            out += PrintStructure(s, types_to_gen)
+            out += PrintStructure(s)
 
         for key, value in EXTENSION_CATEGORIES.items():
             out += PrintChainStruct(key, self.extension_sets[key], 
self.all_structures, value, self.extTypes, self.aliases, self.vulkan_versions)
@@ -600,7 +601,7 @@
     return out
 
 
-def PrintStructure(struct, types_to_gen):
+def PrintStructure(struct):
     if len(struct.members) == 0:
         return ''
     out = ''
@@ -655,21 +656,12 @@
                 out += f'        for (uint32_t i = 0; i < {v.arrayLength}; 
i++) {{ p.PrintElement(obj.{v.name}[i]); }}\n'
                 out += '    }\n'
             else:  # dynamic array length based on other member
-                out += f'    if (obj.{v.arrayLength} == 0) {{\n'
+                out += f'    if (obj.{v.arrayLength} == 0 || obj.{v.name} == 
nullptr) {{\n'
                 out += f'        p.PrintKeyString("{v.name}", "NULL");\n'
                 out += '    } else {\n'
                 out += f'        ArrayWrapper arr(p,"{v.name}", 
obj.{v.arrayLength});\n'
                 out += f'        for (uint32_t i = 0; i < obj.{v.arrayLength}; 
i++) {{\n'
-                if v.typeID in types_to_gen:
-                    out += f'            if (obj.{v.name} != nullptr) {{\n'
-                    out += '                p.SetElementIndex(i);\n'
-                    out += '                if (p.Type() == 
OutputType::json)\n'
-                    out += f'                    
p.PrintString(std::string("VK_") + {v.typeID}String(obj.{v.name}[i]));\n'
-                    out += '                else\n'
-                    out += f'                    
p.PrintString({v.typeID}String(obj.{v.name}[i]));\n'
-                    out += '            }\n'
-                else:
-                    out += f'            p.PrintElement(obj.{v.name}[i]);\n'
+                out += f'            Dump{v.typeID}(p, std::to_string(i), 
obj.{v.name}[i]);\n'
                 out += '        }\n'
                 out += '    }\n'
         elif v.typeID == 'VkBool32':
@@ -750,6 +742,10 @@
             # members which don't exist.
             if s.name in ['VkPhysicalDeviceShaderIntegerDotProductFeatures', 
'VkPhysicalDeviceHostImageCopyFeaturesEXT']:
                 out += f'    char {s.name}_padding[64];\n'
+            if s.hasLengthmember:
+                for member in s.members:
+                    if member.lengthMember:
+                        out += f'    std::vector<{member.typeID}> 
{s.name}_{member.name};\n'
         out += AddGuardFooter(s)
     out += '    void initialize_chain('
     if chain_details.get('type') in [EXTENSION_TYPE_INSTANCE, 
EXTENSION_TYPE_BOTH]:
@@ -919,6 +915,32 @@
         out += '    }\n'
         out += '}\n'
 
+    should_print_twocall_func = False
+    for s in structs_to_print:
+        if not s.hasLengthmember:
+            continue
+        if s.name in STRUCT_BLACKLIST:
+            continue
+        should_print_twocall_func = True
+
+    if not should_print_twocall_func:
+        return out
+
+    out += '\n'
+    out += f'void 
prepare_{listName}_twocall_chain_vectors(std::unique_ptr<{listName}_chain>& 
chain) {{\n'
+    for s in structs_to_print:
+        if not s.hasLengthmember:
+            continue
+        if s.name in STRUCT_BLACKLIST:
+            continue
+        out += AddGuardHeader(s)
+        for member in s.members:
+            if member.lengthMember:
+                out += f'    
chain->{s.name}_{member.name}.resize(chain->{s.name[2:]}.{member.arrayLength});\n'
+                out += f'    chain->{s.name[2:]}.{member.name} = 
chain->{s.name}_{member.name}.data();\n'
+        out += AddGuardFooter(s)
+    out += '}\n'
+
     return out
 
 
@@ -1112,12 +1134,18 @@
         self.guard = None
         self.sTypeName = None
         self.extendsStruct = rootNode.get('structextends')
+        self.hasLengthmember = False
 
         for node in rootNode.findall('member'):
             if node.get('values') is not None:
                 self.sTypeName = node.get('values')
             self.members.append(VulkanVariable(node, constants))
 
+        for member in self.members:
+            if member.lengthMember:
+                self.hasLengthmember = True
+                break
+
         for k, elem in extTypes.items():
             if k == self.name:
                 for e in elem:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/CMakeLists.txt 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/CMakeLists.txt
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/CMakeLists.txt     
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/CMakeLists.txt     
2024-07-16 19:33:46.000000000 +0200
@@ -62,7 +62,7 @@
 
 target_compile_definitions(vulkaninfo PRIVATE VK_ENABLE_BETA_EXTENSIONS 
VK_NO_PROTOTYPES)
 
-if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
+if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD|GNU")
     option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
     option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
     option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" ON)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/generated/vulkaninfo.hpp 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/generated/vulkaninfo.hpp
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/generated/vulkaninfo.hpp   
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/generated/vulkaninfo.hpp   
2024-07-16 19:33:46.000000000 +0200
@@ -99,7 +99,8 @@
         case (VK_DRIVER_ID_MESA_DOZEN): return "DRIVER_ID_MESA_DOZEN";
         case (VK_DRIVER_ID_MESA_NVK): return "DRIVER_ID_MESA_NVK";
         case (VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA): return 
"DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA";
-        case (VK_DRIVER_ID_MESA_AGXV): return "DRIVER_ID_MESA_AGXV";
+        case (VK_DRIVER_ID_MESA_HONEYKRISP): return 
"DRIVER_ID_MESA_HONEYKRISP";
+        case (VK_DRIVER_ID_RESERVED_27): return "DRIVER_ID_RESERVED_27";
         default: return std::string("UNKNOWN_VkDriverId_value") + 
std::to_string(value);
     }
 }
@@ -424,6 +425,22 @@
     else
         p.PrintKeyString(name, VkImageTilingString(value));
 }
+std::string VkPhysicalDeviceLayeredApiKHRString(VkPhysicalDeviceLayeredApiKHR 
value) {
+    switch (value) {
+        case (VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR): return 
"PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR";
+        case (VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR): return 
"PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR";
+        case (VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR): return 
"PHYSICAL_DEVICE_LAYERED_API_METAL_KHR";
+        case (VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR): return 
"PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR";
+        case (VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR): return 
"PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR";
+        default: return 
std::string("UNKNOWN_VkPhysicalDeviceLayeredApiKHR_value") + 
std::to_string(value);
+    }
+}
+void DumpVkPhysicalDeviceLayeredApiKHR(Printer &p, std::string name, 
VkPhysicalDeviceLayeredApiKHR value) {
+    if (p.Type() == OutputType::json)
+        p.PrintKeyString(name, std::string("VK_") + 
VkPhysicalDeviceLayeredApiKHRString(value));
+    else
+        p.PrintKeyString(name, VkPhysicalDeviceLayeredApiKHRString(value));
+}
 std::string VkPhysicalDeviceTypeString(VkPhysicalDeviceType value) {
     switch (value) {
         case (VK_PHYSICAL_DEVICE_TYPE_OTHER): return 
"PHYSICAL_DEVICE_TYPE_OTHER";
@@ -1988,33 +2005,21 @@
     ObjectWrapper object{p, name};
     p.SetMinKeyWidth(35);
     p.PrintKeyValue("copySrcLayoutCount", obj.copySrcLayoutCount);
-    if (obj.copySrcLayoutCount == 0) {
+    if (obj.copySrcLayoutCount == 0 || obj.pCopySrcLayouts == nullptr) {
         p.PrintKeyString("pCopySrcLayouts", "NULL");
     } else {
         ArrayWrapper arr(p,"pCopySrcLayouts", obj.copySrcLayoutCount);
         for (uint32_t i = 0; i < obj.copySrcLayoutCount; i++) {
-            if (obj.pCopySrcLayouts != nullptr) {
-                p.SetElementIndex(i);
-                if (p.Type() == OutputType::json)
-                    p.PrintString(std::string("VK_") + 
VkImageLayoutString(obj.pCopySrcLayouts[i]));
-                else
-                    p.PrintString(VkImageLayoutString(obj.pCopySrcLayouts[i]));
-            }
+            DumpVkImageLayout(p, std::to_string(i), obj.pCopySrcLayouts[i]);
         }
     }
     p.PrintKeyValue("copyDstLayoutCount", obj.copyDstLayoutCount);
-    if (obj.copyDstLayoutCount == 0) {
+    if (obj.copyDstLayoutCount == 0 || obj.pCopyDstLayouts == nullptr) {
         p.PrintKeyString("pCopyDstLayouts", "NULL");
     } else {
         ArrayWrapper arr(p,"pCopyDstLayouts", obj.copyDstLayoutCount);
         for (uint32_t i = 0; i < obj.copyDstLayoutCount; i++) {
-            if (obj.pCopyDstLayouts != nullptr) {
-                p.SetElementIndex(i);
-                if (p.Type() == OutputType::json)
-                    p.PrintString(std::string("VK_") + 
VkImageLayoutString(obj.pCopyDstLayouts[i]));
-                else
-                    p.PrintString(VkImageLayoutString(obj.pCopyDstLayouts[i]));
-            }
+            DumpVkImageLayout(p, std::to_string(i), obj.pCopyDstLayouts[i]);
         }
     }
     p.PrintKeyValue("optimalTilingLayoutUUID", obj.optimalTilingLayoutUUID);
@@ -2092,11 +2097,42 @@
     p.PrintKeyValue("maxDescriptorSetInlineUniformBlocks", 
obj.maxDescriptorSetInlineUniformBlocks);
     p.PrintKeyValue("maxDescriptorSetUpdateAfterBindInlineUniformBlocks", 
obj.maxDescriptorSetUpdateAfterBindInlineUniformBlocks);
 }
+void DumpVkPhysicalDeviceLayeredApiPropertiesKHR(Printer &p, std::string name, 
const VkPhysicalDeviceLayeredApiPropertiesKHR &obj) {
+    ObjectWrapper object{p, name};
+    p.SetMinKeyWidth(15);
+    p.PrintKeyValue("vendorID", obj.vendorID);
+    p.PrintKeyValue("deviceID", obj.deviceID);
+    DumpVkPhysicalDeviceLayeredApiKHR(p, "layeredAPI", obj.layeredAPI);
+    p.PrintKeyString("deviceName", obj.deviceName);
+}
+void DumpVkPhysicalDeviceLayeredApiPropertiesListKHR(Printer &p, std::string 
name, const VkPhysicalDeviceLayeredApiPropertiesListKHR &obj) {
+    ObjectWrapper object{p, name};
+    p.SetMinKeyWidth(29);
+    p.PrintKeyValue("layeredApiCount", obj.layeredApiCount);
+    if (obj.layeredApiCount == 0 || obj.pLayeredApis == nullptr) {
+        p.PrintKeyString("pLayeredApis", "NULL");
+    } else {
+        ArrayWrapper arr(p,"pLayeredApis", obj.layeredApiCount);
+        for (uint32_t i = 0; i < obj.layeredApiCount; i++) {
+            DumpVkPhysicalDeviceLayeredApiPropertiesKHR(p, std::to_string(i), 
obj.pLayeredApis[i]);
+        }
+    }
+}
 void DumpVkPhysicalDeviceLegacyDitheringFeaturesEXT(Printer &p, std::string 
name, const VkPhysicalDeviceLegacyDitheringFeaturesEXT &obj) {
     ObjectWrapper object{p, name};
     p.SetMinKeyWidth(15);
     p.PrintKeyBool("legacyDithering", static_cast<bool>(obj.legacyDithering));
 }
+void DumpVkPhysicalDeviceLegacyVertexAttributesFeaturesEXT(Printer &p, 
std::string name, const VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT &obj) 
{
+    ObjectWrapper object{p, name};
+    p.SetMinKeyWidth(22);
+    p.PrintKeyBool("legacyVertexAttributes", 
static_cast<bool>(obj.legacyVertexAttributes));
+}
+void DumpVkPhysicalDeviceLegacyVertexAttributesPropertiesEXT(Printer &p, 
std::string name, const VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT 
&obj) {
+    ObjectWrapper object{p, name};
+    p.SetMinKeyWidth(26);
+    p.PrintKeyBool("nativeUnalignedPerformance", 
static_cast<bool>(obj.nativeUnalignedPerformance));
+}
 void DumpVkPhysicalDeviceLimits(Printer &p, std::string name, const 
VkPhysicalDeviceLimits &obj) {
     if (p.Type() == OutputType::json)
         p.ObjectStart("limits");
@@ -2287,6 +2323,23 @@
     p.PrintKeyValue("maxCombinedImageSamplerDescriptorCount", 
obj.maxCombinedImageSamplerDescriptorCount);
     p.PrintKeyBool("fragmentShadingRateClampCombinerInputs", 
static_cast<bool>(obj.fragmentShadingRateClampCombinerInputs));
 }
+void DumpVkPhysicalDeviceMaintenance7FeaturesKHR(Printer &p, std::string name, 
const VkPhysicalDeviceMaintenance7FeaturesKHR &obj) {
+    ObjectWrapper object{p, name};
+    p.SetMinKeyWidth(12);
+    p.PrintKeyBool("maintenance7", static_cast<bool>(obj.maintenance7));
+}
+void DumpVkPhysicalDeviceMaintenance7PropertiesKHR(Printer &p, std::string 
name, const VkPhysicalDeviceMaintenance7PropertiesKHR &obj) {
+    ObjectWrapper object{p, name};
+    p.SetMinKeyWidth(57);
+    p.PrintKeyBool("robustFragmentShadingRateAttachmentAccess", 
static_cast<bool>(obj.robustFragmentShadingRateAttachmentAccess));
+    p.PrintKeyBool("separateDepthStencilAttachmentAccess", 
static_cast<bool>(obj.separateDepthStencilAttachmentAccess));
+    p.PrintKeyValue("maxDescriptorSetTotalUniformBuffersDynamic", 
obj.maxDescriptorSetTotalUniformBuffersDynamic);
+    p.PrintKeyValue("maxDescriptorSetTotalStorageBuffersDynamic", 
obj.maxDescriptorSetTotalStorageBuffersDynamic);
+    p.PrintKeyValue("maxDescriptorSetTotalBuffersDynamic", 
obj.maxDescriptorSetTotalBuffersDynamic);
+    
p.PrintKeyValue("maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic", 
obj.maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic);
+    
p.PrintKeyValue("maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic", 
obj.maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic);
+    p.PrintKeyValue("maxDescriptorSetUpdateAfterBindTotalBuffersDynamic", 
obj.maxDescriptorSetUpdateAfterBindTotalBuffersDynamic);
+}
 void DumpVkPhysicalDeviceMapMemoryPlacedFeaturesEXT(Printer &p, std::string 
name, const VkPhysicalDeviceMapMemoryPlacedFeaturesEXT &obj) {
     ObjectWrapper object{p, name};
     p.SetMinKeyWidth(20);
@@ -2821,6 +2874,16 @@
     p.SetMinKeyWidth(17);
     p.PrintKeyBool("shaderQuadControl", 
static_cast<bool>(obj.shaderQuadControl));
 }
+void DumpVkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR(Printer 
&p, std::string name, const 
VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR &obj) {
+    ObjectWrapper object{p, name};
+    p.SetMinKeyWidth(32);
+    p.PrintKeyBool("shaderRelaxedExtendedInstruction", 
static_cast<bool>(obj.shaderRelaxedExtendedInstruction));
+}
+void DumpVkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT(Printer &p, 
std::string name, const VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT 
&obj) {
+    ObjectWrapper object{p, name};
+    p.SetMinKeyWidth(26);
+    p.PrintKeyBool("shaderReplicatedComposites", 
static_cast<bool>(obj.shaderReplicatedComposites));
+}
 void DumpVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(Printer &p, 
std::string name, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures 
&obj) {
     ObjectWrapper object{p, name};
     p.SetMinKeyWidth(27);
@@ -3303,18 +3366,12 @@
     ObjectWrapper object{p, name};
     p.SetMinKeyWidth(31);
     p.PrintKeyValue("presentModeCount", obj.presentModeCount);
-    if (obj.presentModeCount == 0) {
+    if (obj.presentModeCount == 0 || obj.pPresentModes == nullptr) {
         p.PrintKeyString("pPresentModes", "NULL");
     } else {
         ArrayWrapper arr(p,"pPresentModes", obj.presentModeCount);
         for (uint32_t i = 0; i < obj.presentModeCount; i++) {
-            if (obj.pPresentModes != nullptr) {
-                p.SetElementIndex(i);
-                if (p.Type() == OutputType::json)
-                    p.PrintString(std::string("VK_") + 
VkPresentModeKHRString(obj.pPresentModes[i]));
-                else
-                    
p.PrintString(VkPresentModeKHRString(obj.pPresentModes[i]));
-            }
+            DumpVkPresentModeKHR(p, std::to_string(i), obj.pPresentModes[i]);
         }
     }
 }
@@ -3358,13 +3415,20 @@
     VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR 
PhysicalDeviceFragmentShaderBarycentricPropertiesKHR{};
     VkPhysicalDeviceFragmentShadingRatePropertiesKHR 
PhysicalDeviceFragmentShadingRatePropertiesKHR{};
     VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT 
PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT{};
+    VkPhysicalDeviceHostImageCopyPropertiesEXT 
PhysicalDeviceHostImageCopyPropertiesEXT{};
+    std::vector<VkImageLayout> 
VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopySrcLayouts;
+    std::vector<VkImageLayout> 
VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopyDstLayouts;
     VkPhysicalDeviceIDProperties PhysicalDeviceIDProperties{};
     VkPhysicalDeviceInlineUniformBlockProperties 
PhysicalDeviceInlineUniformBlockProperties{};
+    VkPhysicalDeviceLayeredApiPropertiesListKHR 
PhysicalDeviceLayeredApiPropertiesListKHR{};
+    std::vector<VkPhysicalDeviceLayeredApiPropertiesKHR> 
VkPhysicalDeviceLayeredApiPropertiesListKHR_pLayeredApis;
+    VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT 
PhysicalDeviceLegacyVertexAttributesPropertiesEXT{};
     VkPhysicalDeviceLineRasterizationPropertiesKHR 
PhysicalDeviceLineRasterizationPropertiesKHR{};
     VkPhysicalDeviceMaintenance3Properties 
PhysicalDeviceMaintenance3Properties{};
     VkPhysicalDeviceMaintenance4Properties 
PhysicalDeviceMaintenance4Properties{};
     VkPhysicalDeviceMaintenance5PropertiesKHR 
PhysicalDeviceMaintenance5PropertiesKHR{};
     VkPhysicalDeviceMaintenance6PropertiesKHR 
PhysicalDeviceMaintenance6PropertiesKHR{};
+    VkPhysicalDeviceMaintenance7PropertiesKHR 
PhysicalDeviceMaintenance7PropertiesKHR{};
     VkPhysicalDeviceMapMemoryPlacedPropertiesEXT 
PhysicalDeviceMapMemoryPlacedPropertiesEXT{};
     VkPhysicalDeviceMeshShaderPropertiesEXT 
PhysicalDeviceMeshShaderPropertiesEXT{};
     VkPhysicalDeviceMultiDrawPropertiesEXT 
PhysicalDeviceMultiDrawPropertiesEXT{};
@@ -3420,13 +3484,17 @@
         PhysicalDeviceFragmentShaderBarycentricPropertiesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR;
         PhysicalDeviceFragmentShadingRatePropertiesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR;
         PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT;
+        PhysicalDeviceHostImageCopyPropertiesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT;
         PhysicalDeviceIDProperties.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES;
         PhysicalDeviceInlineUniformBlockProperties.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES;
+        PhysicalDeviceLayeredApiPropertiesListKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR;
+        PhysicalDeviceLegacyVertexAttributesPropertiesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT;
         PhysicalDeviceLineRasterizationPropertiesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR;
         PhysicalDeviceMaintenance3Properties.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
         PhysicalDeviceMaintenance4Properties.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES;
         PhysicalDeviceMaintenance5PropertiesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR;
         PhysicalDeviceMaintenance6PropertiesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR;
+        PhysicalDeviceMaintenance7PropertiesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR;
         PhysicalDeviceMapMemoryPlacedPropertiesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT;
         PhysicalDeviceMeshShaderPropertiesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT;
         PhysicalDeviceMultiDrawPropertiesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT;
@@ -3506,6 +3574,8 @@
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceFragmentShadingRatePropertiesKHR));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME))
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT));
+        if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME))
+            
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceHostImageCopyPropertiesEXT));
         if 
((inst.CheckExtensionEnabled(VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)
          || 
inst.CheckExtensionEnabled(VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME)
          || 
inst.CheckExtensionEnabled(VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME))
@@ -3514,6 +3584,10 @@
         if 
((gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME))
             && gpu.api_version < VK_API_VERSION_1_3)
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceInlineUniformBlockProperties));
+        if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME))
+            
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceLayeredApiPropertiesListKHR));
+        if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME))
+            
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceLegacyVertexAttributesPropertiesEXT));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME)
          || 
gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME))
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceLineRasterizationPropertiesKHR));
@@ -3527,6 +3601,8 @@
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceMaintenance5PropertiesKHR));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_6_EXTENSION_NAME))
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceMaintenance6PropertiesKHR));
+        if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME))
+            
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceMaintenance7PropertiesKHR));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME))
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceMapMemoryPlacedPropertiesEXT));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MESH_SHADER_EXTENSION_NAME))
@@ -3743,6 +3819,12 @@
             DumpVkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(p, 
"VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT", *props);
             p.AddNewline();
         }
+        if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT &&
+           
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME)))
 {
+            VkPhysicalDeviceHostImageCopyPropertiesEXT* props = 
(VkPhysicalDeviceHostImageCopyPropertiesEXT*)structure;
+            DumpVkPhysicalDeviceHostImageCopyPropertiesEXT(p, 
"VkPhysicalDeviceHostImageCopyPropertiesEXT", *props);
+            p.AddNewline();
+        }
         if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES &&
            
((inst.CheckExtensionEnabled(VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)
 || 
inst.CheckExtensionEnabled(VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME)
 || 
inst.CheckExtensionEnabled(VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME)) 
&&
             gpu.api_version < VK_API_VERSION_1_1)) {
@@ -3757,6 +3839,18 @@
             DumpVkPhysicalDeviceInlineUniformBlockProperties(p, 
gpu.api_version >= VK_API_VERSION_1_3 
?"VkPhysicalDeviceInlineUniformBlockProperties":"VkPhysicalDeviceInlineUniformBlockPropertiesEXT",
 *props);
             p.AddNewline();
         }
+        if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR &&
+           
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME)))
 {
+            VkPhysicalDeviceLayeredApiPropertiesListKHR* props = 
(VkPhysicalDeviceLayeredApiPropertiesListKHR*)structure;
+            DumpVkPhysicalDeviceLayeredApiPropertiesListKHR(p, 
"VkPhysicalDeviceLayeredApiPropertiesListKHR", *props);
+            p.AddNewline();
+        }
+        if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT &&
+           
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME)))
 {
+            VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT* props = 
(VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT*)structure;
+            DumpVkPhysicalDeviceLegacyVertexAttributesPropertiesEXT(p, 
"VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT", *props);
+            p.AddNewline();
+        }
         if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR &&
            
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME)
 || 
gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME)))
 {
             VkPhysicalDeviceLineRasterizationPropertiesKHR* props = 
(VkPhysicalDeviceLineRasterizationPropertiesKHR*)structure;
@@ -3789,6 +3883,12 @@
             DumpVkPhysicalDeviceMaintenance6PropertiesKHR(p, 
"VkPhysicalDeviceMaintenance6PropertiesKHR", *props);
             p.AddNewline();
         }
+        if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR &&
+           
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME)))
 {
+            VkPhysicalDeviceMaintenance7PropertiesKHR* props = 
(VkPhysicalDeviceMaintenance7PropertiesKHR*)structure;
+            DumpVkPhysicalDeviceMaintenance7PropertiesKHR(p, 
"VkPhysicalDeviceMaintenance7PropertiesKHR", *props);
+            p.AddNewline();
+        }
         if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT &&
            
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME)))
 {
             VkPhysicalDeviceMapMemoryPlacedPropertiesEXT* props = 
(VkPhysicalDeviceMapMemoryPlacedPropertiesEXT*)structure;
@@ -3993,6 +4093,15 @@
         place = structure->pNext;
     }
 }
+
+void 
prepare_phys_device_props2_twocall_chain_vectors(std::unique_ptr<phys_device_props2_chain>&
 chain) {
+    
chain->VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopySrcLayouts.resize(chain->PhysicalDeviceHostImageCopyPropertiesEXT.copySrcLayoutCount);
+    chain->PhysicalDeviceHostImageCopyPropertiesEXT.pCopySrcLayouts = 
chain->VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopySrcLayouts.data();
+    
chain->VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopyDstLayouts.resize(chain->PhysicalDeviceHostImageCopyPropertiesEXT.copyDstLayoutCount);
+    chain->PhysicalDeviceHostImageCopyPropertiesEXT.pCopyDstLayouts = 
chain->VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopyDstLayouts.data();
+    
chain->VkPhysicalDeviceLayeredApiPropertiesListKHR_pLayeredApis.resize(chain->PhysicalDeviceLayeredApiPropertiesListKHR.layeredApiCount);
+    chain->PhysicalDeviceLayeredApiPropertiesListKHR.pLayeredApis = 
chain->VkPhysicalDeviceLayeredApiPropertiesListKHR_pLayeredApis.data();
+}
 struct phys_device_mem_props2_chain {
     phys_device_mem_props2_chain() = default;
     phys_device_mem_props2_chain(const phys_device_mem_props2_chain &) = 
delete;
@@ -4078,10 +4187,12 @@
     VkPhysicalDeviceIndexTypeUint8FeaturesKHR 
PhysicalDeviceIndexTypeUint8FeaturesKHR{};
     VkPhysicalDeviceInlineUniformBlockFeatures 
PhysicalDeviceInlineUniformBlockFeatures{};
     VkPhysicalDeviceLegacyDitheringFeaturesEXT 
PhysicalDeviceLegacyDitheringFeaturesEXT{};
+    VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT 
PhysicalDeviceLegacyVertexAttributesFeaturesEXT{};
     VkPhysicalDeviceLineRasterizationFeaturesKHR 
PhysicalDeviceLineRasterizationFeaturesKHR{};
     VkPhysicalDeviceMaintenance4Features PhysicalDeviceMaintenance4Features{};
     VkPhysicalDeviceMaintenance5FeaturesKHR 
PhysicalDeviceMaintenance5FeaturesKHR{};
     VkPhysicalDeviceMaintenance6FeaturesKHR 
PhysicalDeviceMaintenance6FeaturesKHR{};
+    VkPhysicalDeviceMaintenance7FeaturesKHR 
PhysicalDeviceMaintenance7FeaturesKHR{};
     VkPhysicalDeviceMapMemoryPlacedFeaturesEXT 
PhysicalDeviceMapMemoryPlacedFeaturesEXT{};
     VkPhysicalDeviceMemoryPriorityFeaturesEXT 
PhysicalDeviceMemoryPriorityFeaturesEXT{};
     VkPhysicalDeviceMeshShaderFeaturesEXT 
PhysicalDeviceMeshShaderFeaturesEXT{};
@@ -4136,6 +4247,8 @@
     VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT 
PhysicalDeviceShaderModuleIdentifierFeaturesEXT{};
     VkPhysicalDeviceShaderObjectFeaturesEXT 
PhysicalDeviceShaderObjectFeaturesEXT{};
     VkPhysicalDeviceShaderQuadControlFeaturesKHR 
PhysicalDeviceShaderQuadControlFeaturesKHR{};
+    VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR 
PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR{};
+    VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT 
PhysicalDeviceShaderReplicatedCompositesFeaturesEXT{};
     VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures 
PhysicalDeviceShaderSubgroupExtendedTypesFeatures{};
     VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR 
PhysicalDeviceShaderSubgroupRotateFeaturesKHR{};
     VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR 
PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR{};
@@ -4213,10 +4326,12 @@
         PhysicalDeviceIndexTypeUint8FeaturesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR;
         PhysicalDeviceInlineUniformBlockFeatures.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES;
         PhysicalDeviceLegacyDitheringFeaturesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT;
+        PhysicalDeviceLegacyVertexAttributesFeaturesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT;
         PhysicalDeviceLineRasterizationFeaturesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR;
         PhysicalDeviceMaintenance4Features.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES;
         PhysicalDeviceMaintenance5FeaturesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR;
         PhysicalDeviceMaintenance6FeaturesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR;
+        PhysicalDeviceMaintenance7FeaturesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR;
         PhysicalDeviceMapMemoryPlacedFeaturesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT;
         PhysicalDeviceMemoryPriorityFeaturesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT;
         PhysicalDeviceMeshShaderFeaturesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT;
@@ -4270,6 +4385,8 @@
         PhysicalDeviceShaderModuleIdentifierFeaturesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT;
         PhysicalDeviceShaderObjectFeaturesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT;
         PhysicalDeviceShaderQuadControlFeaturesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR;
+        PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR;
+        PhysicalDeviceShaderReplicatedCompositesFeaturesEXT.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT;
         PhysicalDeviceShaderSubgroupExtendedTypesFeatures.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
         PhysicalDeviceShaderSubgroupRotateFeaturesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR;
         PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR;
@@ -4409,6 +4526,8 @@
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceInlineUniformBlockFeatures));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_DITHERING_EXTENSION_NAME))
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceLegacyDitheringFeaturesEXT));
+        if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME))
+            
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceLegacyVertexAttributesFeaturesEXT));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME)
          || 
gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME))
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceLineRasterizationFeaturesKHR));
@@ -4419,6 +4538,8 @@
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceMaintenance5FeaturesKHR));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_6_EXTENSION_NAME))
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceMaintenance6FeaturesKHR));
+        if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME))
+            
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceMaintenance7FeaturesKHR));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME))
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceMapMemoryPlacedFeaturesEXT));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME))
@@ -4535,6 +4656,10 @@
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceShaderObjectFeaturesEXT));
         if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME))
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceShaderQuadControlFeaturesKHR));
+        if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME))
+            
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR));
+        if 
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME))
+            
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceShaderReplicatedCompositesFeaturesEXT));
         if 
((gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME))
             && gpu.api_version < VK_API_VERSION_1_2)
             
chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDeviceShaderSubgroupExtendedTypesFeatures));
@@ -4926,6 +5051,12 @@
             DumpVkPhysicalDeviceLegacyDitheringFeaturesEXT(p, 
"VkPhysicalDeviceLegacyDitheringFeaturesEXT", *props);
             p.AddNewline();
         }
+        if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT &&
+           
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME)))
 {
+            VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT* props = 
(VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT*)structure;
+            DumpVkPhysicalDeviceLegacyVertexAttributesFeaturesEXT(p, 
"VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT", *props);
+            p.AddNewline();
+        }
         if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR &&
            
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME)
 || 
gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME)))
 {
             VkPhysicalDeviceLineRasterizationFeaturesKHR* props = 
(VkPhysicalDeviceLineRasterizationFeaturesKHR*)structure;
@@ -4951,6 +5082,12 @@
             DumpVkPhysicalDeviceMaintenance6FeaturesKHR(p, 
"VkPhysicalDeviceMaintenance6FeaturesKHR", *props);
             p.AddNewline();
         }
+        if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR &&
+           
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME)))
 {
+            VkPhysicalDeviceMaintenance7FeaturesKHR* props = 
(VkPhysicalDeviceMaintenance7FeaturesKHR*)structure;
+            DumpVkPhysicalDeviceMaintenance7FeaturesKHR(p, 
"VkPhysicalDeviceMaintenance7FeaturesKHR", *props);
+            p.AddNewline();
+        }
         if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT &&
            
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME)))
 {
             VkPhysicalDeviceMapMemoryPlacedFeaturesEXT* props = 
(VkPhysicalDeviceMapMemoryPlacedFeaturesEXT*)structure;
@@ -5269,6 +5406,18 @@
             DumpVkPhysicalDeviceShaderQuadControlFeaturesKHR(p, 
"VkPhysicalDeviceShaderQuadControlFeaturesKHR", *props);
             p.AddNewline();
         }
+        if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
 &&
+           
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME)))
 {
+            VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR* props 
= (VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR*)structure;
+            DumpVkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR(p, 
"VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR", *props);
+            p.AddNewline();
+        }
+        if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT &&
+           
(gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME)))
 {
+            VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT* props = 
(VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT*)structure;
+            DumpVkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT(p, 
"VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT", *props);
+            p.AddNewline();
+        }
         if (structure->sType == 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES &&
            
((gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME))
 &&
             gpu.api_version < VK_API_VERSION_1_2)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/outputprinter.h 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/outputprinter.h
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/outputprinter.h    
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/outputprinter.h    
2024-07-16 19:33:46.000000000 +0200
@@ -438,8 +438,7 @@
                 } else {
                     get_top().is_first_item = false;
                 }
-                out << std::string(static_cast<size_t>(get_top().indents), 
'\t') << "\"" << array_name << "\": "
-                    << "[\n";
+                out << std::string(static_cast<size_t>(get_top().indents), 
'\t') << "\"" << array_name << "\": " << "[\n";
                 assert(get_top().is_array == false &&
                        "Cant start an array object inside another array, must 
be enclosed in an object");
                 break;
@@ -471,6 +470,12 @@
     // value_description is for reference information and is displayed inside 
parenthesis after the value
     template <typename T>
     void PrintKeyValue(std::string key, T value) {
+        // If we are inside of an array, Print the value as an element
+        if (get_top().is_array) {
+            PrintElement(value);
+            return;
+        }
+
         switch (output_type) {
             case (OutputType::text):
                 out << std::string(static_cast<size_t>(get_top().indents), 
'\t') << key;
@@ -568,6 +573,11 @@
     // print inside array
     template <typename T>
     void PrintElement(T element) {
+        // If we are inside of an object, just use an empty string as the key
+        if (!get_top().is_array) {
+            PrintKeyValue("placeholder", element);
+            return;
+        }
         switch (output_type) {
             case (OutputType::text):
                 out << std::string(static_cast<size_t>(get_top().indents), 
'\t') << element << "\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/vulkaninfo.cpp 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/vulkaninfo.cpp
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/vulkaninfo.cpp     
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/vulkaninfo.cpp     
2024-07-16 19:33:46.000000000 +0200
@@ -93,7 +93,7 @@
                 ObjectWrapper obj(p, header);
                 DumpExtensions(p, "Layer Extensions", 
layer.extension_properties);
 
-                ArrayWrapper arr_devices(p, "Devices", gpus.size());
+                ObjectWrapper arr_devices(p, "Devices", gpus.size());
                 for (auto &gpu : gpus) {
                     
p.SetValueDescription(std::string(gpu->props.deviceName)).PrintKeyValue("GPU 
id", gpu->id);
                     auto exts = 
gpu->inst.AppGetPhysicalDeviceLayerExtensions(gpu->phys_device, 
props.layerName);
@@ -351,28 +351,6 @@
     }
 }
 
-void GetAndDumpHostImageCopyPropertiesEXT(Printer &p, AppGpu &gpu) {
-    if (!gpu.CheckPhysicalDeviceExtensionIncluded("VK_EXT_host_image_copy")) {
-        return;
-    }
-
-    // Manually implement VkPhysicalDeviceHostImageCopyPropertiesEXT due to it 
needing to be called twice
-    VkPhysicalDeviceHostImageCopyPropertiesEXT 
host_image_copy_properties_ext{};
-    host_image_copy_properties_ext.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT;
-    VkPhysicalDeviceProperties2KHR props2{};
-    props2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR;
-    props2.pNext = static_cast<void *>(&host_image_copy_properties_ext);
-    vkGetPhysicalDeviceProperties2KHR(gpu.phys_device, &props2);
-    std::vector<VkImageLayout> 
src_layouts(host_image_copy_properties_ext.copySrcLayoutCount);
-    host_image_copy_properties_ext.pCopySrcLayouts = src_layouts.data();
-    std::vector<VkImageLayout> 
dst_layouts(host_image_copy_properties_ext.copyDstLayoutCount);
-    host_image_copy_properties_ext.pCopyDstLayouts = dst_layouts.data();
-    vkGetPhysicalDeviceProperties2KHR(gpu.phys_device, &props2);
-    p.SetSubHeader();
-    DumpVkPhysicalDeviceHostImageCopyPropertiesEXT(p, 
"VkPhysicalDeviceHostImageCopyPropertiesEXT", host_image_copy_properties_ext);
-    p.AddNewline();
-}
-
 void GpuDumpProps(Printer &p, AppGpu &gpu) {
     auto props = gpu.GetDeviceProperties();
     p.SetSubHeader();
@@ -401,7 +379,6 @@
     if 
(gpu.inst.CheckExtensionEnabled(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME))
 {
         void *place = gpu.props2.pNext;
         chain_iterator_phys_device_props2(p, gpu.inst, gpu, place);
-        GetAndDumpHostImageCopyPropertiesEXT(p, gpu);
     }
 }
 
@@ -942,21 +919,28 @@
     "[-o <filename>, --output <filename>]\n"
     "                    Print output to a new file whose name is specified by 
filename.\n"
     "                    File will be written to the current working 
directory.\n"
-    "[--text]            Produce a text version of " APP_SHORT_NAME " output 
to stdout. This is\n"
+    "[--text]            Produce a text version of " APP_SHORT_NAME
+    " output to stdout. This is\n"
     "                    the default output.\n"
-    "[--html]            Produce an html version of " APP_SHORT_NAME " output, 
saved as\n"
-    "                    \"" APP_SHORT_NAME ".html\" in the directory in which 
the command\n"
+    "[--html]            Produce an html version of " APP_SHORT_NAME
+    " output, saved as\n"
+    "                    \"" APP_SHORT_NAME
+    ".html\" in the directory in which the command\n"
     "                    is run.\n"
-    "[-j, --json]        Produce a json version of " APP_SHORT_NAME " output 
conforming to the Vulkan\n"
+    "[-j, --json]        Produce a json version of " APP_SHORT_NAME
+    " output conforming to the Vulkan\n"
     "                    Profiles schema, saved as \n"
-    "                     \"VP_" APP_UPPER_CASE_NAME 
"_[DEVICE_NAME]_[DRIVER_VERSION].json\"\n"
+    "                     \"VP_" APP_UPPER_CASE_NAME
+    "_[DEVICE_NAME]_[DRIVER_VERSION].json\"\n"
     "                     of the first gpu in the system.\n"
     "[-j=<gpu-number>, --json=<gpu-number>]\n"
     "                    For a multi-gpu system, a single gpu can be targetted 
by\n"
     "                    specifying the gpu-number associated with the gpu of 
\n"
     "                    interest. This number can be determined by running\n"
-    "                    " APP_SHORT_NAME " without any options specified.\n"
-    "[--show-tool-props] Show the active VkPhysicalDeviceToolPropertiesEXT 
that " APP_SHORT_NAME " finds.\n"
+    "                    " APP_SHORT_NAME
+    " without any options specified.\n"
+    "[--show-tool-props] Show the active VkPhysicalDeviceToolPropertiesEXT 
that " APP_SHORT_NAME
+    " finds.\n"
     "[--show-formats]    Display the format properties of each physical 
device.\n"
     "                    Note: This only affects text output.\n";
 
@@ -1148,7 +1132,7 @@
     if (!parsing_return) return 1;
     ParsedResults parse_data = parsing_return.value();
 
-#if defined(_WIN32)
+#if defined(_MSC_VER)
     _set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
     SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
     _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/vulkaninfo.h 
new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/vulkaninfo.h
--- old/Vulkan-Tools-vulkan-sdk-1.3.283.0/vulkaninfo/vulkaninfo.h       
2024-05-06 21:20:39.000000000 +0200
+++ new/Vulkan-Tools-vulkan-sdk-1.3.290.0/vulkaninfo/vulkaninfo.h       
2024-07-16 19:33:46.000000000 +0200
@@ -70,10 +70,6 @@
 #endif
 #endif  // _WIN32
 
-#if defined(__linux__) || defined(__APPLE__) || defined(__FreeBSD__) || 
defined(__OpenBSD__) || defined(__QNX__)
-#include <dlfcn.h>
-#endif
-
 #if defined(VK_USE_PLATFORM_XLIB_KHR) || defined(VK_USE_PLATFORM_XCB_KHR)
 #include <X11/Xutil.h>
 #endif
@@ -278,6 +274,8 @@
 void setup_format_properties2_chain(VkFormatProperties2 &start, 
std::unique_ptr<format_properties2_chain> &chain, AppGpu &gpu);
 void setup_queue_properties2_chain(VkQueueFamilyProperties2 &start, 
std::unique_ptr<queue_properties2_chain> &chain, AppGpu &gpu);
 
+void 
prepare_phys_device_props2_twocall_chain_vectors(std::unique_ptr<phys_device_props2_chain>
 &chain);
+
 /* An ptional contains either a value or nothing. The optional asserts if a 
value is trying to be gotten but none exist.
  * The interface is taken from C++17's <optional> with many aspects removed.
  * This class assumes the template type is 'trivial'
@@ -1479,6 +1477,8 @@
             setup_phys_device_props2_chain(props2, 
chain_for_phys_device_props2, inst, *this);
 
             vkGetPhysicalDeviceProperties2KHR(phys_device, &props2);
+            
prepare_phys_device_props2_twocall_chain_vectors(chain_for_phys_device_props2);
+            vkGetPhysicalDeviceProperties2KHR(phys_device, &props2);
 
             // VkPhysicalDeviceMemoryProperties2
             memory_props2.sType = 
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR;

Reply via email to