diff --git a/src/VkBootstrap.cpp b/src/VkBootstrap.cpp index ba40d9a..60c1bfc 100644 --- a/src/VkBootstrap.cpp +++ b/src/VkBootstrap.cpp @@ -31,7 +31,6 @@ #include #endif -#include #include namespace vkb { @@ -1265,10 +1264,6 @@ PhysicalDeviceSelector& PhysicalDeviceSelector::set_desired_version(uint32_t maj criteria.desired_version = VK_MAKE_VERSION(major, minor, 0); return *this; } -PhysicalDeviceSelector& PhysicalDeviceSelector::set_required_features(VkPhysicalDeviceFeatures const& features) { - criteria.required_features = features; - return *this; -} #if defined(VK_API_VERSION_1_2) // Just calls add_required_features PhysicalDeviceSelector& PhysicalDeviceSelector::set_required_features_11( @@ -1440,8 +1435,6 @@ detail::Result DeviceBuilder::build() const { final_pnext_chain.push_back(reinterpret_cast(&features_node)); } } - } else { - printf("User provided VkPhysicalDeviceFeatures2 instance found in pNext chain. All requirements added via 'add_required_extension_features' will be ignored."); } if(!user_defined_phys_dev_features_2 && !has_phys_dev_features_2) { @@ -1465,6 +1458,10 @@ detail::Result DeviceBuilder::build() const { device_create_info.enabledExtensionCount = static_cast(extensions.size()); device_create_info.ppEnabledExtensionNames = extensions.data(); + if(!final_pnext_chain.empty()) { + device_create_info.pNext = final_pnext_chain.front(); + } + Device device; VkResult res = detail::vulkan_functions().fp_vkCreateDevice( diff --git a/src/VkBootstrap.h b/src/VkBootstrap.h index dacd29b..f9f2630 100644 --- a/src/VkBootstrap.h +++ b/src/VkBootstrap.h @@ -459,8 +459,10 @@ class PhysicalDeviceSelector { return *this; } #endif - // Require a physical device which supports the features in VkPhysicalDeviceFeatures. - PhysicalDeviceSelector& set_required_features(VkPhysicalDeviceFeatures const& features); + PhysicalDeviceSelector& set_required_features(VkPhysicalDeviceFeatures const& features) { + criteria.required_features = features; + return *this; + } #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