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;
