diff --git a/geometryshader/geometryshader.cpp b/geometryshader/geometryshader.cpp index afacf5c4..0cbe5f2b 100644 --- a/geometryshader/geometryshader.cpp +++ b/geometryshader/geometryshader.cpp @@ -76,9 +76,6 @@ public: rotation = glm::vec3(0.0f, -25.0f, 0.0f); enableTextOverlay = true; title = "Vulkan Example - Geometry shader"; - // Enable physical device features required for this example - // Tell the driver that we are going to use geometry shaders - enabledFeatures.geometryShader = VK_TRUE; } ~VulkanExample() @@ -97,6 +94,18 @@ public: uniformBuffers.VS.destroy(); } + // Enable physical device features required for this example + virtual void getEnabledFeatures() + { + // Geometry shader support is required for this example + if (deviceFeatures.fillModeNonSolid) { + enabledFeatures.geometryShader = VK_TRUE; + } + else { + vks::tools::exitFatal("Selected GPU does not support geometry shaders!", "Feature not supported"); + } + } + void reBuildCommandBuffers() { if (!checkCommandBuffers())