[Mesa-dev] [PATCH 06/21] anv: Add a per-instance table of enabled extensions

Jason Ekstrand jason at jlekstrand.net
Sat Jan 20 19:11:41 UTC 2018


Nothing needs this yet but we will want it later.
---
 src/intel/vulkan/anv_device.c  | 4 ++++
 src/intel/vulkan/anv_private.h | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 6ec8399..a59890b 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -538,6 +538,7 @@ VkResult anv_CreateInstance(
                        VK_VERSION_PATCH(client_version));
    }
 
+   struct anv_instance_extension_table enabled_extensions = {};
    for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
       int idx;
       for (idx = 0; idx < ANV_INSTANCE_EXTENSION_COUNT; idx++) {
@@ -551,6 +552,8 @@ VkResult anv_CreateInstance(
 
       if (!anv_instance_extensions_supported.extensions[idx])
          return vk_error(VK_ERROR_EXTENSION_NOT_PRESENT);
+
+      enabled_extensions.extensions[idx] = true;
    }
 
    instance = vk_alloc2(&default_alloc, pAllocator, sizeof(*instance), 8,
@@ -566,6 +569,7 @@ VkResult anv_CreateInstance(
       instance->alloc = default_alloc;
 
    instance->apiVersion = client_version;
+   instance->enabled_extensions = enabled_extensions;
    instance->physicalDeviceCount = -1;
 
    if (pthread_mutex_init(&instance->callbacks_mutex, NULL) != 0) {
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index eef230d..cd93810 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -811,6 +811,8 @@ struct anv_instance {
     VkAllocationCallbacks                       alloc;
 
     uint32_t                                    apiVersion;
+    struct anv_instance_extension_table         enabled_extensions;
+
     int                                         physicalDeviceCount;
     struct anv_physical_device                  physicalDevice;
 
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list