Module: Mesa Branch: main Commit: 9e9ead2c152512e7f283f496f06cf08fe172558a URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9e9ead2c152512e7f283f496f06cf08fe172558a
Author: Erik Faye-Lund <[email protected]> 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 <[email protected]> Reviewed-By: Mike Blumenkrantz <[email protected]> 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);
