aboutsummaryrefslogtreecommitdiff
path: root/loader/loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'loader/loader.c')
-rw-r--r--loader/loader.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/loader/loader.c b/loader/loader.c
index 34df4a5e..9a5312f8 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -700,11 +700,11 @@ static uint32_t loader_get_layer_env(struct loader_icd *icd, uint32_t gpu_index,
static uint32_t loader_get_layer_libs(struct loader_icd *icd, uint32_t gpu_index, const XGL_DEVICE_CREATE_INFO* pCreateInfo, struct layer_name_pair **ppLayerNames)
{
static struct layer_name_pair layerNames[MAX_LAYER_LIBRARIES];
+ int env_layer_count = 0;
*ppLayerNames = &layerNames[0];
- if (!pCreateInfo) {
- return loader_get_layer_env(icd, gpu_index, layerNames);
- }
+ /* Load any layers specified in the environment first */
+ env_layer_count = loader_get_layer_env(icd, gpu_index, layerNames);
const XGL_LAYER_CREATE_INFO *pCi =
(const XGL_LAYER_CREATE_INFO *) pCreateInfo->pNext;
@@ -713,7 +713,7 @@ static uint32_t loader_get_layer_libs(struct loader_icd *icd, uint32_t gpu_index
if (pCi->sType == XGL_STRUCTURE_TYPE_LAYER_CREATE_INFO) {
const char *name;
uint32_t len;
- for (uint32_t i = 0; i < pCi->layerCount; i++) {
+ 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))