From f2f77716add7ec9211c140c5cfa517dd65418502 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 17 Nov 2022 15:40:48 +0000 Subject: [PATCH] Test that vkEnumeratePhysicalDevices correctly handles undersized array --- util/test/demos/vk/vk_parameter_zoo.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/util/test/demos/vk/vk_parameter_zoo.cpp b/util/test/demos/vk/vk_parameter_zoo.cpp index 5fcd78658..6bca788e2 100644 --- a/util/test/demos/vk/vk_parameter_zoo.cpp +++ b/util/test/demos/vk/vk_parameter_zoo.cpp @@ -358,6 +358,27 @@ void main() } } + { + uint32_t physCount = 0; + vkEnumeratePhysicalDevices(instance, &physCount, NULL); + + if(physCount > 1) + { + std::vector physArray; + physArray.resize(physCount); + + physCount = 1; + VkResult vkr = vkEnumeratePhysicalDevices(instance, &physCount, physArray.data()); + + if(vkr != VK_INCOMPLETE || physCount != 1 || physArray[1] != VK_NULL_HANDLE) + { + TEST_ERROR( + "vkEnumeratePhysicalDevices didn't return correct results for truncated array"); + return 3; + } + } + } + bool KHR_descriptor_update_template = std::find(devExts.begin(), devExts.end(), VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME) != devExts.end();