anv/device: initialize the list of enabled extensions properly
authorIago Toral Quiroga <itoral@igalia.com>
Mon, 5 Feb 2018 08:49:54 +0000 (09:49 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Tue, 6 Feb 2018 06:51:00 +0000 (07:51 +0100)
The loop goes through the list of enabled extensions marking them as
enabled in the list, but this relies on every other extension being
initialized to false by default.

This bug would make us, for example, advertise certain device extension
entry points as available even when the corresponding extensions had
not been enabled.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes: abc62282b5c "anv: Add a per-device table of enabled extensions"
Cc: "18.0" <mesa-stable@lists.freedesktop.org>
src/intel/vulkan/anv_device.c

index 0cba17aa1690c4b94bf18df32919f91f286d5f72..86c1bdc1d51dcb39a87e2a8650e12d047d299d65 100644 (file)
@@ -1331,7 +1331,7 @@ VkResult anv_CreateDevice(
 
    assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO);
 
-   struct anv_device_extension_table enabled_extensions;
+   struct anv_device_extension_table enabled_extensions = { };
    for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
       int idx;
       for (idx = 0; idx < ANV_DEVICE_EXTENSION_COUNT; idx++) {