diff options
author | Adam Bodnar <abodnar@google.com> | 2019-07-17 12:35:53 -0700 |
---|---|---|
committer | Adam Bodnar <abodnar@google.com> | 2019-07-18 11:16:42 -0700 |
commit | 87edb95cbba91c28fb9c0bc4977b50c5e1c04940 (patch) | |
tree | d007f8e1fde11637c35bf67dea4cdecc45857bc7 /vulkan/libvulkan/api.cpp | |
parent | 5b57ce520e66ac33417c9fdb8782864eb0c5b829 (diff) |
Check if Vulkan layers have a valid looking GIPA
Bug: 137862180
Test: flash, remove vkGetInstanceProcAddr from layer symbols, run
Change-Id: I4d4d75585623d2c15c57b4d8ad0243a2fc347fce
Diffstat (limited to 'vulkan/libvulkan/api.cpp')
-rw-r--r-- | vulkan/libvulkan/api.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/vulkan/libvulkan/api.cpp b/vulkan/libvulkan/api.cpp index 71048db920..368130d13b 100644 --- a/vulkan/libvulkan/api.cpp +++ b/vulkan/libvulkan/api.cpp @@ -664,6 +664,12 @@ VkResult LayerChain::LoadLayer(ActiveLayer& layer, const char* name) { return VK_ERROR_LAYER_NOT_PRESENT; } + if (!layer.ref.GetGetInstanceProcAddr()) { + ALOGW("Failed to locate vkGetInstanceProcAddr in layer %s", name); + layer.ref.~LayerRef(); + return VK_ERROR_LAYER_NOT_PRESENT; + } + ALOGI("Loaded layer %s", name); return VK_SUCCESS; |