@@ -146,7 +146,7 @@ class HelloTriangleApplication
146146 vk::DebugUtilsMessageSeverityFlagsEXT severityFlags (vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning |
147147 vk::DebugUtilsMessageSeverityFlagBitsEXT::eError);
148148 vk::DebugUtilsMessageTypeFlagsEXT messageTypeFlags (
149- vk::DebugUtilsMessageTypeFlagBitsEXT::eGeneral | vk::DebugUtilsMessageTypeFlagBitsEXT::ePerformance | vk::DebugUtilsMessageTypeFlagBitsEXT::eValidation);
149+ vk::DebugUtilsMessageTypeFlagBitsEXT::eGeneral | vk::DebugUtilsMessageTypeFlagBitsEXT::ePerformance | vk::DebugUtilsMessageTypeFlagBitsEXT::eValidation);
150150 vk::DebugUtilsMessengerCreateInfoEXT debugUtilsMessengerCreateInfoEXT{.messageSeverity = severityFlags,
151151 .messageType = messageTypeFlags,
152152 .pfnUserCallback = &debugCallback};
@@ -172,10 +172,12 @@ class HelloTriangleApplication
172172 });
173173
174174 // Check if the physicalDevice supports the required features
175- auto features =
176- physicalDevice
177- .template getFeatures2 <vk::PhysicalDeviceFeatures2, vk::PhysicalDeviceVulkan13Features, vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>();
178- bool supportsRequiredFeatures = features.template get <vk::PhysicalDeviceVulkan13Features>().dynamicRendering &&
175+ auto features = physicalDevice.template getFeatures2 <vk::PhysicalDeviceFeatures2,
176+ vk::PhysicalDeviceVulkan11Features,
177+ vk::PhysicalDeviceVulkan13Features,
178+ vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>();
179+ bool supportsRequiredFeatures = features.template get <vk::PhysicalDeviceVulkan11Features>().shaderDrawParameters &&
180+ features.template get <vk::PhysicalDeviceVulkan13Features>().dynamicRendering &&
179181 features.template get <vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>().extendedDynamicState ;
180182
181183 // Return true if the physicalDevice meets all the criteria
@@ -205,11 +207,16 @@ class HelloTriangleApplication
205207 auto graphicsIndex = static_cast <uint32_t >(std::distance (queueFamilyProperties.begin (), graphicsQueueFamilyProperty));
206208
207209 // query for Vulkan 1.3 features
208- vk::StructureChain<vk::PhysicalDeviceFeatures2, vk::PhysicalDeviceVulkan13Features, vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT> featureChain = {
209- {}, // vk::PhysicalDeviceFeatures2
210- {.dynamicRendering = true }, // vk::PhysicalDeviceVulkan13Features
211- {.extendedDynamicState = true } // vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT
212- };
210+ vk::StructureChain<vk::PhysicalDeviceFeatures2,
211+ vk::PhysicalDeviceVulkan11Features,
212+ vk::PhysicalDeviceVulkan13Features,
213+ vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>
214+ featureChain = {
215+ {}, // vk::PhysicalDeviceFeatures2
216+ {.shaderDrawParameters = true }, // vk::PhysicalDeviceVulkan11Features
217+ {.dynamicRendering = true }, // vk::PhysicalDeviceVulkan13Features
218+ {.extendedDynamicState = true } // vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT
219+ };
213220
214221 // create a Device
215222 float queuePriority = 0 .5f ;
0 commit comments