zink: add a GET_PROC_ADDR macro to simplify load_device_extensions
[mesa.git] / 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;
 }