Inconsistent behavior involving VkPhysicalDeviceFeatures.fillModeNonSolid I departed slightly from the Vulkan tutorial I was following and decided to draw a wireframe instead of a solid triangle.

As soon as I call vkCreateGraphicsPipelines(), I get the following message from Validation Layer even though the call finishes with VK_SUCCESS.


  vkCreateGraphicsPipelines parameter, VkPolygonMode pCreateInfos-&gt; pRasterizationState-&gt;polygonMode cannot be VK_POLYGON_MODE_POINT or VK_POLYGON_MODE_LINE if VkPhysicalDeviceFeatures-&gt;fillModeNonSolid is false.


For good measure I check the VkPhysicalDeviceFeatures right after I call vkCreateGraphicsPipelines() and fillModeNonSolid is VK_TRUE.

The output is a wireframe triangle as expected but the message got me worried if I am missing something.

I am using Nvidia GeForce GTX 1050Ti (driver 417.22), Vulkan 1.1.82.1 on Windows 10(64-bit).

PS: I am experiencing similar problem with wideLines feature as well:VkPhysicalDeviceFeatures has wideLines as VK_TRUE but Validation Layer thinks it is set to false
It turned out that the fillModeNonSolid feature needed to be explicitly enabled during logical device creation.