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@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11550>
This commit is contained in:
Erik Faye-Lund
2021-06-23 10:18:20 +02:00
committed by Marge Bot
parent 57293dee2b
commit 9e9ead2c15
2 changed files with 8 additions and 7 deletions
+7 -6
View File
@@ -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",
+1 -1
View File
@@ -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);