aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Barbour <tony@LunarG.com>2016-05-16 15:47:56 -0600
committerTony Barbour <tony@LunarG.com>2016-05-17 09:00:43 -0600
commitcff1cd36aa64b0713c068d82380bd6554984fa67 (patch)
tree793709520e039b9da340ce845adf3d5b465ed472
parent9e7488ecfe5ca0eab69da1c0031dc8b125871945 (diff)
downloadusermoji-cff1cd36aa64b0713c068d82380bd6554984fa67.tar.xz
demos: Make sure shaderClipDistance is available before requesting
Change-Id: Id0b58d54a553fce4914ddc1097f1e1c8ac3c337f
-rw-r--r--demos/tri.c13
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,