loader: Return NULL for WSI entrypoints if extension not enabled
diff --git a/loader/loader.c b/loader/loader.c
index a5b8e48..1f7adc1 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1381,9 +1381,10 @@
         return addr;
 
     /* return any extension global entrypoints */
-    addr = wsi_lunarg_GetInstanceProcAddr(instance, pName);
+    bool wsi_enabled;
+    addr = wsi_lunarg_GetInstanceProcAddr(instance, pName, &wsi_enabled);
     if (addr)
-        return addr;
+        return (wsi_enabled) ? addr : NULL;
 
     /* return the instance dispatch table entrypoint for extensions */
     const VkLayerInstanceDispatchTable *disp_table = * (VkLayerInstanceDispatchTable **) instance;
@@ -1413,9 +1414,10 @@
     }
 
     /* return any extension device entrypoints the loader knows about */
-    addr = wsi_lunarg_GetDeviceProcAddr(device, pName);
+    bool wsi_enabled;
+    addr = wsi_lunarg_GetDeviceProcAddr(device, pName, &wsi_enabled);
     if (addr)
-        return addr;
+        return (wsi_enabled) ? addr : NULL;
 
     /* return the dispatch table entrypoint for the fastest case */
     const VkLayerDispatchTable *disp_table = * (VkLayerDispatchTable **) device;
diff --git a/loader/wsi_lunarg.c b/loader/wsi_lunarg.c
index 14e3cb9..31f6985 100644
--- a/loader/wsi_lunarg.c
+++ b/loader/wsi_lunarg.c
@@ -156,13 +156,13 @@
 
 void *wsi_lunarg_GetInstanceProcAddr(
         VkInstance                              instance,
-        const char*                             pName)
+        const char*                             pName,
+        bool                                    *enabled)
 {
     if (instance == VK_NULL_HANDLE)
         return NULL;
 
-    if (wsi_enabled == false)
-	return NULL;
+    *enabled = wsi_enabled;
 
     /* since two of these entrypoints must be loader handled will report all */
     if (!strcmp(pName, "vkGetDisplayInfoWSI"))
@@ -181,13 +181,13 @@
 
 void *wsi_lunarg_GetDeviceProcAddr(
         VkDevice                                device,
-        const char*                             name)
+        const char*                             name,
+        bool                                    *enabled)
 {
     if (device == VK_NULL_HANDLE)
         return NULL;
 
-    if (wsi_enabled == false)
-	    return NULL;
+    *enabled = wsi_enabled;
 
     /* only handle device entrypoints that are loader special cases */
     if (!strcmp(name, "vkCreateSwapChainWSI"))
diff --git a/loader/wsi_lunarg.h b/loader/wsi_lunarg.h
index fd1b6da..02ff37e 100644
--- a/loader/wsi_lunarg.h
+++ b/loader/wsi_lunarg.h
@@ -39,8 +39,10 @@
 
 void *wsi_lunarg_GetInstanceProcAddr(
         VkInstance                              instance,
-        const char*                             pName);
+        const char*                             pName,
+        bool*                                   enabled);
 
 void *wsi_lunarg_GetDeviceProcAddr(
         VkDevice                                device,
-        const char*                             pName);
+        const char*                             pName,
+        bool*                                   enabled);