summaryrefslogtreecommitdiff
path: root/vulkan/libvulkan/api.cpp
diff options
context:
space:
mode:
authorAdam Bodnar <abodnar@google.com>2019-07-17 12:35:53 -0700
committerAdam Bodnar <abodnar@google.com>2019-07-18 11:16:42 -0700
commit87edb95cbba91c28fb9c0bc4977b50c5e1c04940 (patch)
treed007f8e1fde11637c35bf67dea4cdecc45857bc7 /vulkan/libvulkan/api.cpp
parent5b57ce520e66ac33417c9fdb8782864eb0c5b829 (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.cpp6
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;