summaryrefslogtreecommitdiff
path: root/vulkan
diff options
context:
space:
mode:
authorJesse Hall <jessehall@google.com>2020-05-22 21:21:26 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-05-22 21:21:26 +0000
commit47d4af7c6ca7dcea7e635a46addf8151babe6041 (patch)
treeb4cce44fb3d4941254f456caf7a4ade96922b386 /vulkan
parentdbb46aa5d41ad8b546dea251278494a6255d0b80 (diff)
parent68904ad94c9a6ab6294ac0d4394a191c1d4c7f02 (diff)
downloadnative-47d4af7c6ca7dcea7e635a46addf8151babe6041.tar.gz
Merge "libvulkan: support vkGIPA self-query" into rvc-dev am: 68904ad94c
Change-Id: Ib770da958eade79235f4c6854bc9f85128af2288
Diffstat (limited to 'vulkan')
-rw-r--r--vulkan/libvulkan/api_gen.cpp1
-rw-r--r--vulkan/scripts/api_generator.py4
2 files changed, 4 insertions, 1 deletions
diff --git a/vulkan/libvulkan/api_gen.cpp b/vulkan/libvulkan/api_gen.cpp
index 37b5368452..d9a94274a4 100644
--- a/vulkan/libvulkan/api_gen.cpp
+++ b/vulkan/libvulkan/api_gen.cpp
@@ -621,6 +621,7 @@ VKAPI_ATTR PFN_vkVoidFunction GetInstanceProcAddr(VkInstance instance, const cha
// global functions
if (instance == VK_NULL_HANDLE) {
if (strcmp(pName, "vkCreateInstance") == 0) return reinterpret_cast<PFN_vkVoidFunction>(CreateInstance);
+ if (strcmp(pName, "vkGetInstanceProcAddr") == 0) return reinterpret_cast<PFN_vkVoidFunction>(GetInstanceProcAddr);
if (strcmp(pName, "vkEnumerateInstanceVersion") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceVersion);
if (strcmp(pName, "vkEnumerateInstanceLayerProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceLayerProperties);
if (strcmp(pName, "vkEnumerateInstanceExtensionProperties") == 0) return reinterpret_cast<PFN_vkVoidFunction>(EnumerateInstanceExtensionProperties);
diff --git a/vulkan/scripts/api_generator.py b/vulkan/scripts/api_generator.py
index 7c390755e1..be24172eed 100644
--- a/vulkan/scripts/api_generator.py
+++ b/vulkan/scripts/api_generator.py
@@ -152,7 +152,9 @@ def _intercept_instance_proc_addr(f):
if (instance == VK_NULL_HANDLE) {\n""")
for cmd in gencom.command_list:
- if gencom.is_globally_dispatched(cmd):
+ # vkGetInstanceProcAddr(nullptr, "vkGetInstanceProcAddr") is effectively
+ # globally dispatched
+ if gencom.is_globally_dispatched(cmd) or cmd == 'vkGetInstanceProcAddr':
f.write(gencom.indent(2) +
'if (strcmp(pName, \"' + cmd +
'\") == 0) return reinterpret_cast<PFN_vkVoidFunction>(' +