Mesa (master): zink: rewrite macro for getting KHR device functions
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Mar 3 22:43:48 UTC 2021
Module: Mesa
Branch: master
Commit: 3c20b698e26f90ca9191e0a41f0c9964fc55d618
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c20b698e26f90ca9191e0a41f0c9964fc55d618
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Wed Mar 3 16:44:09 2021 -0500
zink: rewrite macro for getting KHR device functions
we have the technology. we can improve our our lives with better macros.
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9398>
---
src/gallium/drivers/zink/zink_screen.c | 6 ++----
src/gallium/drivers/zink/zink_screen.h | 9 ++++++++-
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
index 948a1ebd620..9e0fe23ba57 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -1028,10 +1028,8 @@ load_device_extensions(struct zink_screen *screen)
}
if (screen->info.have_KHR_draw_indirect_count) {
- GET_PROC_ADDR_DEVICE_LOCAL(CmdDrawIndexedIndirectCountKHR);
- screen->vk_CmdDrawIndexedIndirectCount = vk_CmdDrawIndexedIndirectCountKHR;
- GET_PROC_ADDR_DEVICE_LOCAL(CmdDrawIndirectCountKHR);
- screen->vk_CmdDrawIndirectCount = vk_CmdDrawIndirectCountKHR;
+ GET_PROC_ADDR_KHR(CmdDrawIndexedIndirectCount);
+ GET_PROC_ADDR_KHR(CmdDrawIndirectCount);
}
if (screen->info.have_EXT_calibrated_timestamps) {
diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h
index 169c350c5fa..065abf44a0c 100644
--- a/src/gallium/drivers/zink/zink_screen.h
+++ b/src/gallium/drivers/zink/zink_screen.h
@@ -147,6 +147,14 @@ zink_is_depth_format_supported(struct zink_screen *screen, VkFormat format);
} \
} while (0)
+#define GET_PROC_ADDR_KHR(x) do { \
+ screen->vk_##x = (PFN_vk##x)vkGetDeviceProcAddr(screen->dev, "vk"#x"KHR"); \
+ if (!screen->vk_##x) { \
+ mesa_loge("ZINK: vkGetDeviceProcAddr failed: vk"#x"KHR\n"); \
+ return false; \
+ } \
+ } while (0)
+
#define GET_PROC_ADDR_INSTANCE(x) do { \
screen->vk_##x = (PFN_vk##x)vkGetInstanceProcAddr(screen->instance, "vk"#x); \
if (!screen->vk_##x) { \
@@ -155,7 +163,6 @@ zink_is_depth_format_supported(struct zink_screen *screen, VkFormat format);
} \
} while (0)
-#define GET_PROC_ADDR_DEVICE_LOCAL(x) PFN_vk##x vk_##x = (PFN_vk##x)vkGetDeviceProcAddr(screen->dev, "vk"#x)
#define GET_PROC_ADDR_INSTANCE_LOCAL(instance, x) PFN_vk##x vk_##x = (PFN_vk##x)vkGetInstanceProcAddr(instance, "vk"#x)
void
More information about the mesa-commit
mailing list