diff options
| author | Jon Ashburn <jon@lunarg.com> | 2015-05-22 09:51:03 -0600 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-06-17 19:47:02 -0600 |
| commit | 6ebe70614672c554f76228a296c5d46642f9e0d1 (patch) | |
| tree | d7608df7df3da8026d6395dc092e278bd0e58dde /loader | |
| parent | 8b6cae047953411ebcc4befc5273ced2be8a19ec (diff) | |
| download | usermoji-6ebe70614672c554f76228a296c5d46642f9e0d1.tar.xz | |
loader: Return NULL for WSI entrypoints if extension not enabled
Diffstat (limited to 'loader')
| -rw-r--r-- | loader/loader.c | 10 | ||||
| -rw-r--r-- | loader/wsi_lunarg.c | 12 | ||||
| -rw-r--r-- | loader/wsi_lunarg.h | 6 |
3 files changed, 16 insertions, 12 deletions
diff --git a/loader/loader.c b/loader/loader.c index a5b8e48b..1f7adc13 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -1381,9 +1381,10 @@ LOADER_EXPORT void * VKAPI vkGetInstanceProcAddr(VkInstance instance, const char 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 @@ LOADER_EXPORT void * VKAPI vkGetDeviceProcAddr(VkDevice device, const char * pNa } /* 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 14e3cb92..31f69855 100644 --- a/loader/wsi_lunarg.c +++ b/loader/wsi_lunarg.c @@ -156,13 +156,13 @@ void wsi_lunarg_register_extensions( 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_GetInstanceProcAddr( 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 fd1b6da0..02ff37eb 100644 --- a/loader/wsi_lunarg.h +++ b/loader/wsi_lunarg.h @@ -39,8 +39,10 @@ void wsi_lunarg_register_extensions( 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); |
