loader: Fix merge of layer names from env and CreateDevice
diff --git a/loader/loader.c b/loader/loader.c
index 6d87795..46a7bfc 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -807,12 +807,13 @@
while (pCi) {
if (pCi->sType == XGL_STRUCTURE_TYPE_LAYER_CREATE_INFO) {
const char *name;
- uint32_t len;
+ uint32_t len, j = 0;
for (uint32_t i = env_layer_count; i < (env_layer_count + pCi->layerCount); i++) {
const char * lib_name = NULL;
- name = *(pCi->ppActiveLayerNames + i);
- if (!find_layer_name(icd, gpu_index, name, &lib_name))
- return loader_get_layer_env(icd, gpu_index, layerNames);
+ name = *(pCi->ppActiveLayerNames + j);
+ if (!find_layer_name(icd, gpu_index, name, &lib_name)) {
+ return i;
+ }
len = (uint32_t) strlen(name);
layerNames[i].layer_name = malloc(len + 1);
if (!layerNames[i].layer_name)
@@ -820,12 +821,13 @@
strncpy((char *) layerNames[i].layer_name, name, len);
layerNames[i].layer_name[len] = '\0';
layerNames[i].lib_name = lib_name;
+ j++;
}
- return pCi->layerCount + loader_get_layer_env(icd, gpu_index, layerNames);
+ return pCi->layerCount + env_layer_count;
}
pCi = pCi->pNext;
}
- return loader_get_layer_env(icd, gpu_index, layerNames);
+ return env_layer_count;
}
static void loader_deactivate_layer(const struct loader_instance *instance)