Mesa (main): zink: pass screen to extension getter macro
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri May 13 17:05:46 UTC 2022
Module: Mesa
Branch: main
Commit: 9e9ead2c152512e7f283f496f06cf08fe172558a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9e9ead2c152512e7f283f496f06cf08fe172558a
Author: Erik Faye-Lund <erik.faye-lund at collabora.com>
Date: Wed Jun 23 10:18:20 2021 +0200
zink: pass screen to extension getter macro
This is just prep-work to reduce the size of the final commit; this
allows us to store the extension-getter function in the screen object.
Reviewed-by: Hoe Hao Cheng <haochengho12907 at gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11550>
---
src/gallium/drivers/zink/zink_screen.c | 13 +++++++------
src/gallium/drivers/zink/zink_screen.h | 2 +-
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
index fb402ed1367..3550957145c 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -1602,9 +1602,9 @@ zink_internal_setup_moltenvk(struct zink_screen *screen)
if (!screen->instance_info.have_MVK_moltenvk)
return true;
- GET_PROC_ADDR_INSTANCE_LOCAL(screen->instance, GetMoltenVKConfigurationMVK);
- GET_PROC_ADDR_INSTANCE_LOCAL(screen->instance, SetMoltenVKConfigurationMVK);
- GET_PROC_ADDR_INSTANCE_LOCAL(screen->instance, GetVersionStringsMVK);
+ GET_PROC_ADDR_INSTANCE_LOCAL(screen, screen->instance, GetMoltenVKConfigurationMVK);
+ GET_PROC_ADDR_INSTANCE_LOCAL(screen, screen->instance, SetMoltenVKConfigurationMVK);
+ GET_PROC_ADDR_INSTANCE_LOCAL(screen, screen->instance, GetVersionStringsMVK);
if (vk_GetVersionStringsMVK) {
char molten_version[64] = {0};
@@ -1739,13 +1739,13 @@ zink_screen_timeline_wait(struct zink_screen *screen, uint32_t batch_id, uint64_
}
static uint32_t
-zink_get_loader_version(void)
+zink_get_loader_version(struct zink_screen *screen)
{
uint32_t loader_version = VK_API_VERSION_1_0;
// Get the Loader version
- GET_PROC_ADDR_INSTANCE_LOCAL(NULL, EnumerateInstanceVersion);
+ GET_PROC_ADDR_INSTANCE_LOCAL(screen, NULL, EnumerateInstanceVersion);
if (vk_EnumerateInstanceVersion) {
uint32_t loader_version_temp = VK_API_VERSION_1_0;
if (VK_SUCCESS == (*vk_EnumerateInstanceVersion)(&loader_version_temp)) {
@@ -2045,7 +2045,8 @@ zink_internal_create_screen(const struct pipe_screen_config *config)
abort();
}
- screen->instance_info.loader_version = zink_get_loader_version();
+ screen->instance_info.loader_version = zink_get_loader_version(screen);
+
#if WITH_XMLCONFIG
if (config) {
driParseConfigFiles(config->options, config->options_info, 0, "zink",
diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h
index d6e8c994b4e..6eb5b904eba 100644
--- a/src/gallium/drivers/zink/zink_screen.h
+++ b/src/gallium/drivers/zink/zink_screen.h
@@ -265,7 +265,7 @@ zink_screen_timeline_wait(struct zink_screen *screen, uint32_t batch_id, uint64_
bool
zink_is_depth_format_supported(struct zink_screen *screen, VkFormat format);
-#define GET_PROC_ADDR_INSTANCE_LOCAL(instance, x) PFN_vk##x vk_##x = (PFN_vk##x)vkGetInstanceProcAddr(instance, "vk"#x)
+#define GET_PROC_ADDR_INSTANCE_LOCAL(screen, instance, x) PFN_vk##x vk_##x = (PFN_vk##x)vkGetInstanceProcAddr(instance, "vk"#x)
void
zink_screen_update_pipeline_cache(struct zink_screen *screen, struct zink_program *pg);
More information about the mesa-commit
mailing list