@@ -191,8 +191,12 @@ class HelloTriangleApplication {
191191 { return strcmp ( availableDeviceExtension.extensionName , requiredDeviceExtension ) == 0 ; } );
192192 } );
193193
194- auto features = device.template getFeatures2 <vk::PhysicalDeviceFeatures2, vk::PhysicalDeviceVulkan13Features, vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>();
195- bool supportsRequiredFeatures = features.template get <vk::PhysicalDeviceVulkan13Features>().dynamicRendering &&
194+ auto features = device.template getFeatures2 <vk::PhysicalDeviceFeatures2,
195+ vk::PhysicalDeviceVulkan11Features,
196+ vk::PhysicalDeviceVulkan13Features,
197+ vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>();
198+ bool supportsRequiredFeatures = features.template get <vk::PhysicalDeviceVulkan11Features>().shaderDrawParameters &&
199+ features.template get <vk::PhysicalDeviceVulkan13Features>().dynamicRendering &&
196200 features.template get <vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>().extendedDynamicState ;
197201
198202 return supportsVulkan1_3 && supportsGraphics && supportsAllRequiredExtensions && supportsRequiredFeatures;
@@ -228,8 +232,13 @@ class HelloTriangleApplication {
228232 }
229233
230234 // query for Vulkan 1.3 features
231- vk::StructureChain<vk::PhysicalDeviceFeatures2, vk::PhysicalDeviceVulkan13Features, vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT> featureChain = {
235+ vk::StructureChain<vk::PhysicalDeviceFeatures2,
236+ vk::PhysicalDeviceVulkan11Features,
237+ vk::PhysicalDeviceVulkan13Features,
238+ vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT>
239+ featureChain = {
232240 {}, // vk::PhysicalDeviceFeatures2
241+ {.shaderDrawParameters = true }, // vk::PhysicalDeviceVulkan11Features
233242 {.dynamicRendering = true }, // vk::PhysicalDeviceVulkan13Features
234243 {.extendedDynamicState = true } // vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT
235244 };
0 commit comments