diff --git a/src/VkBootstrap.cpp b/src/VkBootstrap.cpp index 9a81c8b..b4bafa2 100644 --- a/src/VkBootstrap.cpp +++ b/src/VkBootstrap.cpp @@ -1259,12 +1259,14 @@ PhysicalDeviceSelector& PhysicalDeviceSelector::set_desired_version(uint32_t maj #if defined(VK_API_VERSION_1_2) // Just calls add_required_features PhysicalDeviceSelector& PhysicalDeviceSelector::set_required_features_11( - VkPhysicalDeviceVulkan11Features const& features_11) { + VkPhysicalDeviceVulkan11Features& features_11) { + features_11.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES; add_required_extension_features(features_11); return *this; } PhysicalDeviceSelector& PhysicalDeviceSelector::set_required_features_12( - VkPhysicalDeviceVulkan12Features const& features_12) { + VkPhysicalDeviceVulkan12Features& features_12) { + features_12.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; add_required_extension_features(features_12); return *this; } diff --git a/src/VkBootstrap.h b/src/VkBootstrap.h index 8111cf9..4a03925 100644 --- a/src/VkBootstrap.h +++ b/src/VkBootstrap.h @@ -549,10 +549,10 @@ class PhysicalDeviceSelector { #if defined(VK_API_VERSION_1_2) // Require a physical device which supports the features in VkPhysicalDeviceVulkan11Features. // Must have vulkan version 1.2 - This is due to the VkPhysicalDeviceVulkan11Features struct being added in 1.2, not 1.1 - PhysicalDeviceSelector& set_required_features_11(VkPhysicalDeviceVulkan11Features const& features_11); + PhysicalDeviceSelector& set_required_features_11(VkPhysicalDeviceVulkan11Features& features_11); // Require a physical device which supports the features in VkPhysicalDeviceVulkan12Features. // Must have vulkan version 1.2 - PhysicalDeviceSelector& set_required_features_12(VkPhysicalDeviceVulkan12Features const& features_12); + PhysicalDeviceSelector& set_required_features_12(VkPhysicalDeviceVulkan12Features& features_12); #endif // Used when surface creation happens after physical device selection. diff --git a/tests/bootstrap_tests.cpp b/tests/bootstrap_tests.cpp index b60ae02..6d3afe7 100644 --- a/tests/bootstrap_tests.cpp +++ b/tests/bootstrap_tests.cpp @@ -454,8 +454,10 @@ TEST_CASE("Querying Vulkan 1.1 and 1.2 features", "[VkBootstrap.version]") { // Requires a device that supports multiview and bufferDeviceAddress { VkPhysicalDeviceVulkan11Features features_11{}; + features_11.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES; features_11.multiview = true; VkPhysicalDeviceVulkan12Features features_12{}; + features_11.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES; features_12.bufferDeviceAddress = true; vkb::PhysicalDeviceSelector selector(instance_ret.value()); @@ -472,6 +474,7 @@ TEST_CASE("Querying Vulkan 1.1 and 1.2 features", "[VkBootstrap.version]") { // protectedMemory should NOT be supported { VkPhysicalDeviceVulkan11Features features_11{}; + features_11.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES; features_11.protectedMemory = true; vkb::PhysicalDeviceSelector selector(instance_ret.value());