diff options
| author | Charles Giessen <charles@lunarg.com> | 2025-12-01 10:40:37 -0600 |
|---|---|---|
| committer | Charles Giessen <46324611+charles-lunarg@users.noreply.github.com> | 2025-12-01 09:59:16 -0700 |
| commit | 48b5d246b2d0b1a41ee7ea1b69525ae7bb38a2ae (patch) | |
| tree | 7d2a41b2b9b30eab8e6921e15a667ffbc2b667a5 | |
| parent | 2a3347d5e74d359e3ecb8e229917f3335bfa2dfa (diff) | |
| download | usermoji-48b5d246b2d0b1a41ee7ea1b69525ae7bb38a2ae.tar.xz | |
build: Update to header 1.4.335
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | icd/VkICD_mock_icd.json.in | 2 | ||||
| -rw-r--r-- | icd/generated/function_declarations.h | 27 | ||||
| -rw-r--r-- | icd/generated/function_definitions.h | 34 | ||||
| -rw-r--r-- | icd/generated/vk_typemap_helper.h | 90 | ||||
| -rw-r--r-- | scripts/known_good.json | 4 | ||||
| -rw-r--r-- | vulkaninfo/generated/vulkaninfo.hpp | 71 |
7 files changed, 226 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a8daf76b..5a4c18b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,7 @@ cmake_minimum_required(VERSION 3.22.1) # The VERSION field is generated with the "--generated-version" flag in the generate_source.py script -project(Vulkan-Tools VERSION 1.4.334) +project(Vulkan-Tools VERSION 1.4.335) # This variable enables downstream users to customize the target API # variant (e.g. Vulkan SC) diff --git a/icd/VkICD_mock_icd.json.in b/icd/VkICD_mock_icd.json.in index 86b3953b..8e3296c2 100644 --- a/icd/VkICD_mock_icd.json.in +++ b/icd/VkICD_mock_icd.json.in @@ -2,6 +2,6 @@ "file_format_version": "1.0.1", "ICD": { "library_path": "@JSON_LIBRARY_PATH@", - "api_version": "1.4.334" + "api_version": "1.4.335" } }
\ No newline at end of file diff --git a/icd/generated/function_declarations.h b/icd/generated/function_declarations.h index 294f8eec..8cb673c7 100644 --- a/icd/generated/function_declarations.h +++ b/icd/generated/function_declarations.h @@ -326,6 +326,7 @@ static const std::unordered_map<std::string, uint32_t> device_extension_map = { {"VK_NV_shader_image_footprint", VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION}, {"VK_NV_scissor_exclusive", VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION}, {"VK_NV_device_diagnostic_checkpoints", VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION}, + {"VK_EXT_present_timing", VK_EXT_PRESENT_TIMING_SPEC_VERSION}, {"VK_INTEL_shader_integer_functions2", VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION}, {"VK_INTEL_performance_query", VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION}, {"VK_EXT_pci_bus_info", VK_EXT_PCI_BUS_INFO_SPEC_VERSION}, @@ -3323,6 +3324,28 @@ static VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV( uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); +static VKAPI_ATTR VkResult VKAPI_CALL SetSwapchainPresentTimingQueueSizeEXT( + VkDevice device, + VkSwapchainKHR swapchain, + uint32_t size); + +static VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimingPropertiesEXT( + VkDevice device, + VkSwapchainKHR swapchain, + VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties, + uint64_t* pSwapchainTimingPropertiesCounter); + +static VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimeDomainPropertiesEXT( + VkDevice device, + VkSwapchainKHR swapchain, + VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties, + uint64_t* pTimeDomainsCounter); + +static VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingEXT( + VkDevice device, + const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo, + VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties); + static VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); @@ -5295,6 +5318,10 @@ static const std::unordered_map<std::string, void*> name_to_funcptr_map = { {"vkCmdSetCheckpointNV", (void*)CmdSetCheckpointNV}, {"vkGetQueueCheckpointDataNV", (void*)GetQueueCheckpointDataNV}, {"vkGetQueueCheckpointData2NV", (void*)GetQueueCheckpointData2NV}, + {"vkSetSwapchainPresentTimingQueueSizeEXT", (void*)SetSwapchainPresentTimingQueueSizeEXT}, + {"vkGetSwapchainTimingPropertiesEXT", (void*)GetSwapchainTimingPropertiesEXT}, + {"vkGetSwapchainTimeDomainPropertiesEXT", (void*)GetSwapchainTimeDomainPropertiesEXT}, + {"vkGetPastPresentationTimingEXT", (void*)GetPastPresentationTimingEXT}, {"vkInitializePerformanceApiINTEL", (void*)InitializePerformanceApiINTEL}, {"vkUninitializePerformanceApiINTEL", (void*)UninitializePerformanceApiINTEL}, {"vkCmdSetPerformanceMarkerINTEL", (void*)CmdSetPerformanceMarkerINTEL}, diff --git a/icd/generated/function_definitions.h b/icd/generated/function_definitions.h index d670567d..141b3bd3 100644 --- a/icd/generated/function_definitions.h +++ b/icd/generated/function_definitions.h @@ -4915,6 +4915,40 @@ static VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV( { //Not a CREATE or DESTROY function } +static VKAPI_ATTR VkResult VKAPI_CALL SetSwapchainPresentTimingQueueSizeEXT( + VkDevice device, + VkSwapchainKHR swapchain, + uint32_t size) +{ +//Not a CREATE or DESTROY function + return VK_SUCCESS; +} +static VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimingPropertiesEXT( + VkDevice device, + VkSwapchainKHR swapchain, + VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties, + uint64_t* pSwapchainTimingPropertiesCounter) +{ +//Not a CREATE or DESTROY function + return VK_SUCCESS; +} +static VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimeDomainPropertiesEXT( + VkDevice device, + VkSwapchainKHR swapchain, + VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties, + uint64_t* pTimeDomainsCounter) +{ +//Not a CREATE or DESTROY function + return VK_SUCCESS; +} +static VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingEXT( + VkDevice device, + const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo, + VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties) +{ +//Not a CREATE or DESTROY function + return VK_SUCCESS; +} static VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) diff --git a/icd/generated/vk_typemap_helper.h b/icd/generated/vk_typemap_helper.h index a371e72c..2b6e3c10 100644 --- a/icd/generated/vk_typemap_helper.h +++ b/icd/generated/vk_typemap_helper.h @@ -5913,6 +5913,96 @@ template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV> { typedef VkCheckpointData2NV Type; }; +// Map type VkPhysicalDevicePresentTimingFeaturesEXT to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT +template <> struct LvlTypeMap<VkPhysicalDevicePresentTimingFeaturesEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT> { + typedef VkPhysicalDevicePresentTimingFeaturesEXT Type; +}; + +// Map type VkPresentTimingSurfaceCapabilitiesEXT to id VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT +template <> struct LvlTypeMap<VkPresentTimingSurfaceCapabilitiesEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT> { + typedef VkPresentTimingSurfaceCapabilitiesEXT Type; +}; + +// Map type VkSwapchainCalibratedTimestampInfoEXT to id VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT +template <> struct LvlTypeMap<VkSwapchainCalibratedTimestampInfoEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT> { + typedef VkSwapchainCalibratedTimestampInfoEXT Type; +}; + +// Map type VkSwapchainTimingPropertiesEXT to id VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT +template <> struct LvlTypeMap<VkSwapchainTimingPropertiesEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT> { + typedef VkSwapchainTimingPropertiesEXT Type; +}; + +// Map type VkSwapchainTimeDomainPropertiesEXT to id VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT +template <> struct LvlTypeMap<VkSwapchainTimeDomainPropertiesEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT> { + typedef VkSwapchainTimeDomainPropertiesEXT Type; +}; + +// Map type VkPastPresentationTimingInfoEXT to id VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT +template <> struct LvlTypeMap<VkPastPresentationTimingInfoEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT> { + typedef VkPastPresentationTimingInfoEXT Type; +}; + +// Map type VkPastPresentationTimingEXT to id VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT +template <> struct LvlTypeMap<VkPastPresentationTimingEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT> { + typedef VkPastPresentationTimingEXT Type; +}; + +// Map type VkPastPresentationTimingPropertiesEXT to id VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT +template <> struct LvlTypeMap<VkPastPresentationTimingPropertiesEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT> { + typedef VkPastPresentationTimingPropertiesEXT Type; +}; + +// Map type VkPresentTimingInfoEXT to id VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT +template <> struct LvlTypeMap<VkPresentTimingInfoEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT> { + typedef VkPresentTimingInfoEXT Type; +}; + +// Map type VkPresentTimingsInfoEXT to id VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT +template <> struct LvlTypeMap<VkPresentTimingsInfoEXT> { + static const VkStructureType kSType = VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT; +}; + +template <> struct LvlSTypeMap<VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT> { + typedef VkPresentTimingsInfoEXT Type; +}; + // Map type VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL to id VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL template <> struct LvlTypeMap<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL> { static const VkStructureType kSType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL; diff --git a/scripts/known_good.json b/scripts/known_good.json index 0eaa0a99..a04bc19c 100644 --- a/scripts/known_good.json +++ b/scripts/known_good.json @@ -7,7 +7,7 @@ "sub_dir": "Vulkan-Headers", "build_dir": "Vulkan-Headers/build", "install_dir": "Vulkan-Headers/build/install", - "commit": "v1.4.334" + "commit": "v1.4.335" }, { "name": "MoltenVK", @@ -56,7 +56,7 @@ "cmake_options": [ "-DLOADER_USE_UNSAFE_FILE_SEARCH=ON" ], - "commit": "v1.4.334", + "commit": "v1.4.335", "build_platforms": [ "windows", "linux", diff --git a/vulkaninfo/generated/vulkaninfo.hpp b/vulkaninfo/generated/vulkaninfo.hpp index 31cf38da..0811062c 100644 --- a/vulkaninfo/generated/vulkaninfo.hpp +++ b/vulkaninfo/generated/vulkaninfo.hpp @@ -1253,6 +1253,7 @@ std::string VkResultString(VkResult value) { case (VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR): return "ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR"; case (VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR): return "ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR"; case (VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT): return "ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT"; + case (VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT): return "ERROR_PRESENT_TIMING_QUEUE_FULL_EXT"; case (VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT): return "ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT"; case (VK_THREAD_IDLE_KHR): return "THREAD_IDLE_KHR"; case (VK_THREAD_DONE_KHR): return "THREAD_DONE_KHR"; @@ -1833,6 +1834,41 @@ void DumpVkPresentScalingFlagBitsKHR(Printer &p, std::string name, VkPresentScal } } +std::vector<const char *> VkPresentStageFlagBitsEXTGetStrings(VkPresentStageFlagBitsEXT value) { + std::vector<const char *> strings; + if (value == 0) { strings.push_back("None"); return strings; } + if (VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT & value) strings.push_back("PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT"); + if (VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT & value) strings.push_back("PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT"); + if (VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT & value) strings.push_back("PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT"); + if (VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT & value) strings.push_back("PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT"); + return strings; +} +void DumpVkPresentStageFlagsEXT(Printer &p, std::string name, VkPresentStageFlagsEXT value) { + if (static_cast<VkPresentStageFlagBitsEXT>(value) == 0) { + ArrayWrapper arr(p, name, 0); + if (p.Type() != OutputType::json && p.Type() != OutputType::vkconfig_output) + p.SetAsType().PrintString("None"); + return; + } + auto strings = VkPresentStageFlagBitsEXTGetStrings(static_cast<VkPresentStageFlagBitsEXT>(value)); + ArrayWrapper arr(p, name, strings.size()); + for(auto& str : strings){ + if (p.Type() == OutputType::json) + p.SetAsType().PrintString(std::string("VK_") + str); + else + p.SetAsType().PrintString(str); + } +} +void DumpVkPresentStageFlagBitsEXT(Printer &p, std::string name, VkPresentStageFlagBitsEXT value) { + auto strings = VkPresentStageFlagBitsEXTGetStrings(value); + if (strings.size() > 0) { + if (p.Type() == OutputType::json) + p.PrintKeyString(name, std::string("VK_") + strings.at(0)); + else + p.PrintKeyString(name, strings.at(0)); + } +} + std::vector<const char *> VkQueueFlagBitsGetStrings(VkQueueFlagBits value) { std::vector<const char *> strings; if (value == 0) { strings.push_back("None"); return strings; } @@ -4437,6 +4473,13 @@ void DumpVkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR(Printer &p, std:: p.SetMinKeyWidth(26); p.PrintKeyBool("presentModeFifoLatestReady", static_cast<bool>(obj.presentModeFifoLatestReady)); } +void DumpVkPhysicalDevicePresentTimingFeaturesEXT(Printer &p, std::string name, const VkPhysicalDevicePresentTimingFeaturesEXT &obj) { + ObjectWrapper object{p, name}; + p.SetMinKeyWidth(21); + p.PrintKeyBool("presentTiming", static_cast<bool>(obj.presentTiming)); + p.PrintKeyBool("presentAtAbsoluteTime", static_cast<bool>(obj.presentAtAbsoluteTime)); + p.PrintKeyBool("presentAtRelativeTime", static_cast<bool>(obj.presentAtRelativeTime)); +} void DumpVkPhysicalDevicePresentWait2FeaturesKHR(Printer &p, std::string name, const VkPhysicalDevicePresentWait2FeaturesKHR &obj) { ObjectWrapper object{p, name}; p.SetMinKeyWidth(12); @@ -5320,6 +5363,14 @@ void DumpVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(Printer &p, std:: p.SetMinKeyWidth(35); p.PrintKeyBool("shaderZeroInitializeWorkgroupMemory", static_cast<bool>(obj.shaderZeroInitializeWorkgroupMemory)); } +void DumpVkPresentTimingSurfaceCapabilitiesEXT(Printer &p, std::string name, const VkPresentTimingSurfaceCapabilitiesEXT &obj) { + ObjectWrapper object{p, name}; + p.SetMinKeyWidth(30); + p.PrintKeyBool("presentTimingSupported", static_cast<bool>(obj.presentTimingSupported)); + p.PrintKeyBool("presentAtAbsoluteTimeSupported", static_cast<bool>(obj.presentAtAbsoluteTimeSupported)); + p.PrintKeyBool("presentAtRelativeTimeSupported", static_cast<bool>(obj.presentAtRelativeTimeSupported)); + DumpVkPresentStageFlagsEXT(p, "presentStageQueries", obj.presentStageQueries); +} void DumpVkQueueFamilyGlobalPriorityProperties(Printer &p, std::string name, const VkQueueFamilyGlobalPriorityProperties &obj) { ObjectWrapper object{p, name}; p.SetMinKeyWidth(13); @@ -6722,6 +6773,7 @@ struct phys_device_features2_chain { VkPhysicalDevicePresentId2FeaturesKHR PhysicalDevicePresentId2FeaturesKHR{}; VkPhysicalDevicePresentIdFeaturesKHR PhysicalDevicePresentIdFeaturesKHR{}; VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR{}; + VkPhysicalDevicePresentTimingFeaturesEXT PhysicalDevicePresentTimingFeaturesEXT{}; VkPhysicalDevicePresentWait2FeaturesKHR PhysicalDevicePresentWait2FeaturesKHR{}; VkPhysicalDevicePresentWaitFeaturesKHR PhysicalDevicePresentWaitFeaturesKHR{}; VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT{}; @@ -6891,6 +6943,7 @@ struct phys_device_features2_chain { PhysicalDevicePresentId2FeaturesKHR.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR; PhysicalDevicePresentIdFeaturesKHR.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR; PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR; + PhysicalDevicePresentTimingFeaturesEXT.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT; PhysicalDevicePresentWait2FeaturesKHR.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR; PhysicalDevicePresentWaitFeaturesKHR.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR; PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT; @@ -7179,6 +7232,8 @@ struct phys_device_features2_chain { if (gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME) || gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME)) chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR)); + if (gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRESENT_TIMING_EXTENSION_NAME)) + chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDevicePresentTimingFeaturesEXT)); if (gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME)) chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PhysicalDevicePresentWait2FeaturesKHR)); if (gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PRESENT_WAIT_EXTENSION_NAME)) @@ -8072,6 +8127,12 @@ void chain_iterator_phys_device_features2(Printer &p, AppGpu &gpu, bool show_pro } p.AddNewline(); } + if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT) { + const VkPhysicalDevicePresentTimingFeaturesEXT* props = (const VkPhysicalDevicePresentTimingFeaturesEXT*)structure; + const char* name = "VkPhysicalDevicePresentTimingFeaturesEXT"; + DumpVkPhysicalDevicePresentTimingFeaturesEXT(p, name, *props); + p.AddNewline(); + } if (structure->sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR) { const VkPhysicalDevicePresentWait2FeaturesKHR* props = (const VkPhysicalDevicePresentWait2FeaturesKHR*)structure; const char* name = "VkPhysicalDevicePresentWait2FeaturesKHR"; @@ -8683,6 +8744,7 @@ struct surface_capabilities2_chain { surface_capabilities2_chain(surface_capabilities2_chain &&) = delete; surface_capabilities2_chain& operator=(surface_capabilities2_chain &&) = delete; void* start_of_chain = nullptr; + VkPresentTimingSurfaceCapabilitiesEXT PresentTimingSurfaceCapabilitiesEXT{}; VkSharedPresentSurfaceCapabilitiesKHR SharedPresentSurfaceCapabilitiesKHR{}; #ifdef VK_USE_PLATFORM_WIN32_KHR VkSurfaceCapabilitiesFullScreenExclusiveEXT SurfaceCapabilitiesFullScreenExclusiveEXT{}; @@ -8691,6 +8753,7 @@ struct surface_capabilities2_chain { VkSurfaceCapabilitiesPresentWait2KHR SurfaceCapabilitiesPresentWait2KHR{}; VkSurfaceProtectedCapabilitiesKHR SurfaceProtectedCapabilitiesKHR{}; void initialize_chain(AppInstance &inst, AppGpu &gpu) noexcept { + PresentTimingSurfaceCapabilitiesEXT.sType = VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT; SharedPresentSurfaceCapabilitiesKHR.sType = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR; #ifdef VK_USE_PLATFORM_WIN32_KHR SurfaceCapabilitiesFullScreenExclusiveEXT.sType = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT; @@ -8699,6 +8762,8 @@ struct surface_capabilities2_chain { SurfaceCapabilitiesPresentWait2KHR.sType = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR; SurfaceProtectedCapabilitiesKHR.sType = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR; std::vector<VkBaseOutStructure*> chain_members{}; + if (gpu.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRESENT_TIMING_EXTENSION_NAME)) + chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&PresentTimingSurfaceCapabilitiesEXT)); if (gpu.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME)) chain_members.push_back(reinterpret_cast<VkBaseOutStructure*>(&SharedPresentSurfaceCapabilitiesKHR)); #ifdef VK_USE_PLATFORM_WIN32_KHR @@ -8730,6 +8795,12 @@ void chain_iterator_surface_capabilities2(Printer &p, AppInstance &inst, AppGpu while (place) { const VkBaseOutStructure *structure = (const VkBaseOutStructure *)place; p.SetSubHeader(); + if (structure->sType == VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT) { + const VkPresentTimingSurfaceCapabilitiesEXT* props = (const VkPresentTimingSurfaceCapabilitiesEXT*)structure; + const char* name = "VkPresentTimingSurfaceCapabilitiesEXT"; + DumpVkPresentTimingSurfaceCapabilitiesEXT(p, name, *props); + p.AddNewline(); + } if (structure->sType == VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR) { const VkSharedPresentSurfaceCapabilitiesKHR* props = (const VkSharedPresentSurfaceCapabilitiesKHR*)structure; const char* name = "VkSharedPresentSurfaceCapabilitiesKHR"; |
