diff --git a/util/test/demos/vk/vk_descriptor_index.cpp b/util/test/demos/vk/vk_descriptor_index.cpp index c36a7a7c6..95e236bfe 100644 --- a/util/test/demos/vk/vk_descriptor_index.cpp +++ b/util/test/demos/vk/vk_descriptor_index.cpp @@ -225,6 +225,20 @@ void main() VulkanGraphicsTest::Prepare(argc, argv); + if(!Avail.empty()) + return; + + VkPhysicalDeviceProperties props; + vkGetPhysicalDeviceProperties(phys, &props); + + // lazy - we could reduce this limit to a couple by not using combined image samplers + if(props.limits.maxDescriptorSetSamplers < DESC_ARRAY1_SIZE + DESC_ARRAY2_SIZE) + Avail = "maxDescriptorSetSamplers " + std::to_string(props.limits.maxDescriptorSetSamplers) + + " is insufficient"; + else if(props.limits.maxDescriptorSetSampledImages < DESC_ARRAY1_SIZE + DESC_ARRAY2_SIZE) + Avail = "maxDescriptorSetSampledImages " + + std::to_string(props.limits.maxDescriptorSetSampledImages) + " is insufficient"; + if(!Avail.empty()) return;