loader: Activate layers at EnumerateGpus instead of CreateDevice
diff --git a/loader/loader.c b/loader/loader.c
index d5dcf8d..b9f315e 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1014,6 +1014,8 @@
const VkLayerDispatchTable **disp;
disp = (const VkLayerDispatchTable **) gpus[i];
*disp = icd->loader_dispatch + i;
+ loader_activate_layers(icd, i, ptr_instance->extension_count,
+ (const char *const*) ptr_instance->extension_names);
}
count += n;
diff --git a/vk-generate.py b/vk-generate.py
index c25f254..464cff6 100755
--- a/vk-generate.py
+++ b/vk-generate.py
@@ -159,16 +159,6 @@
func.append(" VkResult res;")
func.append("")
- # active layers before dispatching CreateDevice
- if proto.name == "CreateDevice":
- func.append(" {")
- func.append(" uint32_t gpu_index;")
- func.append(" struct loader_icd *icd = loader_get_icd((const VkBaseLayerObject *) gpu, &gpu_index);")
- func.append(" loader_activate_layers((void *) icd, gpu_index, %s->extensionCount, %s->ppEnabledExtensionNames);"
- % (proto.params[1].name, proto.params[1].name))
- func.append(" }")
- func.append("")
-
# get dispatch table and unwrap GPUs
for param in proto.params:
stmt = ""