misc: Add create_info struct to CreateInstance()

Allows extnesion or layer enablement at CreateInstance
Khronos Bug 13637
diff --git a/icd/intel/instance.c b/icd/intel/instance.c
index e451171..d2112b1 100644
--- a/icd/intel/instance.c
+++ b/icd/intel/instance.c
@@ -108,15 +108,15 @@
     icd_instance_destroy(icd);
 }
 
-static struct intel_instance *intel_instance_create(const XGL_APPLICATION_INFO *app_info,
-                                                    const XGL_ALLOC_CALLBACKS *alloc_cb)
+static struct intel_instance *intel_instance_create(const XGL_INSTANCE_CREATE_INFO* info)
 {
     struct intel_instance *instance;
     struct icd_instance *icd;
+    uint32_t i;
 
     intel_debug_init();
 
-    icd = icd_instance_create(app_info, alloc_cb);
+    icd = icd_instance_create(info->pAppInfo, info->pAllocCb);
     if (!icd)
         return NULL;
 
@@ -132,17 +132,23 @@
 
     instance->icd = icd;
 
+    for (i = 0; i < info->extensionCount; i++) {
+        const enum intel_ext_type ext = intel_gpu_lookup_extension(NULL,
+                info->ppEnabledExtensionNames[i]);
+
+        if (ext != INTEL_EXT_INVALID)
+            instance->exts[ext] = true;
+    }
     return instance;
 }
 
 ICD_EXPORT XGL_RESULT XGLAPI xglCreateInstance(
-    const XGL_APPLICATION_INFO*                 pAppInfo,
-    const XGL_ALLOC_CALLBACKS*                  pAllocCb,
+    const XGL_INSTANCE_CREATE_INFO*             pCreateInfo,
     XGL_INSTANCE*                               pInstance)
 {
     struct intel_instance *instance;
 
-    instance = intel_instance_create(pAppInfo, pAllocCb);
+    instance = intel_instance_create(pCreateInfo);
     if (!instance)
         return XGL_ERROR_OUT_OF_MEMORY;