aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Giessen <charles@lunarg.com>2025-12-01 10:40:37 -0600
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>2025-12-01 09:59:16 -0700
commit48b5d246b2d0b1a41ee7ea1b69525ae7bb38a2ae (patch)
tree7d2a41b2b9b30eab8e6921e15a667ffbc2b667a5
parent2a3347d5e74d359e3ecb8e229917f3335bfa2dfa (diff)
downloadusermoji-48b5d246b2d0b1a41ee7ea1b69525ae7bb38a2ae.tar.xz
build: Update to header 1.4.335
-rw-r--r--CMakeLists.txt2
-rw-r--r--icd/VkICD_mock_icd.json.in2
-rw-r--r--icd/generated/function_declarations.h27
-rw-r--r--icd/generated/function_definitions.h34
-rw-r--r--icd/generated/vk_typemap_helper.h90
-rw-r--r--scripts/known_good.json4
-rw-r--r--vulkaninfo/generated/vulkaninfo.hpp71
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";