zink: add a GET_PROC_ADDR macro to simplify load_device_extensions
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Fri, 8 May 2020 10:07:48 +0000 (12:07 +0200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 11 May 2020 09:09:34 +0000 (09:09 +0000)
This doesn't do much for now, but it will keep thing cleaner in the next
commit.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4835>

src/gallium/drivers/zink/zink_screen.c

index fae39c6ec1b2be88767d6f2265db21b6037a5c17..53db925192df8ba4780a0b19f522e703158dd025 100644 (file)
@@ -707,11 +707,16 @@ zink_flush_frontbuffer(struct pipe_screen *pscreen,
 static bool
 load_device_extensions(struct zink_screen *screen)
 {
-   if (screen->have_KHR_external_memory_fd) {
-      screen->vk_GetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)vkGetDeviceProcAddr(screen->dev, "vkGetMemoryFdKHR");
-      if (!screen->vk_GetMemoryFdKHR)
-         return false;
-   }
+#define GET_PROC_ADDR(x) do {                                               \
+      screen->vk_##x = (PFN_vk##x)vkGetDeviceProcAddr(screen->dev, "vk"#x); \
+      if (!screen->vk_##x)                                                  \
+         return false;                                                      \
+   } while (0)
+
+   if (screen->have_KHR_external_memory_fd)
+      GET_PROC_ADDR(GetMemoryFdKHR);
+
+#undef GET_PROC_ADDR
 
    return true;
 }