From 5f5f0994bbfcccd734f78c9efbed03c22c3e73a2 Mon Sep 17 00:00:00 2001 From: saschawillems Date: Wed, 15 Mar 2017 21:15:19 +0100 Subject: [PATCH] Check device support for geometry shaders --- geometryshader/geometryshader.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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())