libvulkan: avoid allocation if final extension count is zero
This change also makes sure ExtensionFilter is properly initialized.
Bug: 161810298
Test: dEQP-VK.api.object_management.max_concurrent#instance
Change-Id: I2e3526b38fc5eeddf0e96d18dfd6f218bbb80201
diff --git a/vulkan/libvulkan/driver.cpp b/vulkan/libvulkan/driver.cpp
index 8deca47..997b332 100644
--- a/vulkan/libvulkan/driver.cpp
+++ b/vulkan/libvulkan/driver.cpp
@@ -120,6 +120,8 @@
const char** names;
uint32_t name_count;
+ ExtensionFilter()
+ : exts(nullptr), ext_count(0), names(nullptr), name_count(0) {}
};
VkResult SanitizeApiVersion();
@@ -607,6 +609,10 @@
} else {
count = std::min(filter.ext_count, dev_info_.enabledExtensionCount);
}
+
+ if (!count)
+ return VK_SUCCESS;
+
filter.names = reinterpret_cast<const char**>(allocator_.pfnAllocation(
allocator_.pUserData, sizeof(const char*) * count, alignof(const char*),
VK_SYSTEM_ALLOCATION_SCOPE_COMMAND));