From 53f10ab19e6ed30d1572e4d75552f2d0b50b9eae Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Sun, 23 Nov 2025 04:52:38 -0400 Subject: [PATCH] [vk] Bumping features to 1.4 --- src/video_core/vulkan_common/vulkan_device.cpp | 14 ++++++++++++++ src/video_core/vulkan_common/vulkan_device.h | 8 ++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index ad4cd48a5e..ed0c54d458 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -918,6 +918,7 @@ bool Device::GetSuitability(bool requires_swapchain) { // Configure properties. VkPhysicalDeviceVulkan12Features features_1_2{}; VkPhysicalDeviceVulkan13Features features_1_3{}; + VkPhysicalDeviceVulkan14Features features_1_4{}; // Configure properties. properties.properties = physical.GetProperties(); @@ -957,6 +958,9 @@ bool Device::GetSuitability(bool requires_swapchain) { if (instance_version < VK_API_VERSION_1_3) { FOR_EACH_VK_FEATURE_1_3(FEATURE_EXTENSION); } + if (instance_version < VK_API_VERSION_1_4) { + FOR_EACH_VK_FEATURE_1_4(FEATURE_EXTENSION); + } FOR_EACH_VK_FEATURE_EXT(FEATURE_EXTENSION); FOR_EACH_VK_EXTENSION(EXTENSION); @@ -997,6 +1001,11 @@ bool Device::GetSuitability(bool requires_swapchain) { features_1_2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; features_1_3.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES; + if (instance_version >= VK_API_VERSION_1_4) { + features_1_4.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES; + features_1_3.pNext = &features_1_4; + } + features_1_2.pNext = &features_1_3; *next = &features_1_2; @@ -1028,6 +1037,11 @@ bool Device::GetSuitability(bool requires_swapchain) { } else { FOR_EACH_VK_FEATURE_1_3(EXT_FEATURE); } + if (instance_version >= VK_API_VERSION_1_4) { + FOR_EACH_VK_FEATURE_1_4(FEATURE); + } else { + FOR_EACH_VK_FEATURE_1_4(EXT_FEATURE); + } #undef EXT_FEATURE #undef FEATURE diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h index 13e8777a62..0b1b2e3822 100644 --- a/src/video_core/vulkan_common/vulkan_device.h +++ b/src/video_core/vulkan_common/vulkan_device.h @@ -42,6 +42,10 @@ VK_DEFINE_HANDLE(VmaAllocator) FEATURE(EXT, SubgroupSizeControl, SUBGROUP_SIZE_CONTROL, subgroup_size_control) \ FEATURE(KHR, Maintenance4, MAINTENANCE_4, maintenance4) +#define FOR_EACH_VK_FEATURE_1_4(FEATURE) \ + FEATURE(KHR, Maintenance5, MAINTENANCE_5, maintenance5) \ + FEATURE(KHR, Maintenance6, MAINTENANCE_6, maintenance6) + // Define all features which may be used by the implementation and require an extension here. #define FOR_EACH_VK_FEATURE_EXT(FEATURE) \ FEATURE(EXT, CustomBorderColor, CUSTOM_BORDER_COLOR, custom_border_color) \ @@ -60,8 +64,6 @@ VK_DEFINE_HANDLE(VmaAllocator) FEATURE(EXT, TransformFeedback, TRANSFORM_FEEDBACK, transform_feedback) \ FEATURE(EXT, VertexInputDynamicState, VERTEX_INPUT_DYNAMIC_STATE, vertex_input_dynamic_state) \ FEATURE(EXT, SwapchainMaintenance1, SWAPCHAIN_MAINTENANCE_1, swapchain_maintenance1) \ - FEATURE(KHR, Maintenance5, MAINTENANCE_5, maintenance5) \ - FEATURE(KHR, Maintenance6, MAINTENANCE_6, maintenance6) \ FEATURE(KHR, Maintenance7, MAINTENANCE_7, maintenance7) \ FEATURE(KHR, Maintenance8, MAINTENANCE_8, maintenance8) \ FEATURE(KHR, Maintenance9, MAINTENANCE_9, maintenance9) \ @@ -844,6 +846,7 @@ private: FOR_EACH_VK_FEATURE_1_1(FEATURE); FOR_EACH_VK_FEATURE_1_2(FEATURE); FOR_EACH_VK_FEATURE_1_3(FEATURE); + FOR_EACH_VK_FEATURE_1_4(FEATURE); FOR_EACH_VK_FEATURE_EXT(FEATURE); FOR_EACH_VK_EXTENSION(EXTENSION); @@ -860,6 +863,7 @@ private: FOR_EACH_VK_FEATURE_1_1(FEATURE_CORE); FOR_EACH_VK_FEATURE_1_2(FEATURE_CORE); FOR_EACH_VK_FEATURE_1_3(FEATURE_CORE); + FOR_EACH_VK_FEATURE_1_4(FEATURE_CORE); FOR_EACH_VK_FEATURE_EXT(FEATURE_EXT); #undef FEATURE_CORE