diff options
| author | Tony Barbour <tony@LunarG.com> | 2016-05-16 15:47:56 -0600 |
|---|---|---|
| committer | Tony Barbour <tony@LunarG.com> | 2016-05-17 09:00:43 -0600 |
| commit | cff1cd36aa64b0713c068d82380bd6554984fa67 (patch) | |
| tree | 793709520e039b9da340ce845adf3d5b465ed472 | |
| parent | 9e7488ecfe5ca0eab69da1c0031dc8b125871945 (diff) | |
| download | usermoji-cff1cd36aa64b0713c068d82380bd6554984fa67.tar.xz | |
demos: Make sure shaderClipDistance is available before requesting
Change-Id: Id0b58d54a553fce4914ddc1097f1e1c8ac3c337f
| -rw-r--r-- | demos/tri.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/demos/tri.c b/demos/tri.c index 1c80a22b..789ec2bd 100644 --- a/demos/tri.c +++ b/demos/tri.c @@ -199,6 +199,7 @@ struct demo { VkDevice device; VkQueue queue; VkPhysicalDeviceProperties gpu_props; + VkPhysicalDeviceFeatures gpu_features; VkQueueFamilyProperties *queue_props; uint32_t graphics_queue_node_index; @@ -2161,8 +2162,7 @@ static void demo_init_vk(struct demo *demo) { demo->queue_props); assert(demo->queue_count >= 1); - VkPhysicalDeviceFeatures features; - vkGetPhysicalDeviceFeatures(demo->gpu, &features); + vkGetPhysicalDeviceFeatures(demo->gpu, &demo->gpu_features); // Graphics queue and MemMgr queue can be separate. // TODO: Add support for separate queues, including synchronization, @@ -2180,9 +2180,12 @@ static void demo_init_device(struct demo *demo) { .queueCount = 1, .pQueuePriorities = queue_priorities}; - VkPhysicalDeviceFeatures features = { - .shaderClipDistance = VK_TRUE, - }; + + VkPhysicalDeviceFeatures features; + memset(&features, 0, sizeof(features)); + if (demo->gpu_features.shaderClipDistance) { + features.shaderClipDistance = VK_TRUE; + } VkDeviceCreateInfo device = { .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, |
