Module: Mesa Branch: main Commit: 4654a57bb50858d943150f59a74e6a957c993a8b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4654a57bb50858d943150f59a74e6a957c993a8b
Author: Erik Faye-Lund <[email protected]> Date: Wed Jun 23 08:15:42 2021 +0200 zink: call vk-functions through dispatch-table This is going to make it possible to avoid linking directly to the vulkan-loader. 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_device_info.py | 8 ++++---- src/gallium/drivers/zink/zink_pipeline.c | 8 ++++---- src/gallium/drivers/zink/zink_screen.c | 20 ++++++++++---------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/gallium/drivers/zink/zink_device_info.py b/src/gallium/drivers/zink/zink_device_info.py index 7aecee236c4..0fe8f469883 100644 --- a/src/gallium/drivers/zink/zink_device_info.py +++ b/src/gallium/drivers/zink/zink_device_info.py @@ -363,16 +363,16 @@ zink_get_physical_device_info(struct zink_screen *screen) uint32_t num_extensions = 0; // get device memory properties - vkGetPhysicalDeviceMemoryProperties(screen->pdev, &info->mem_props); + screen->vk.GetPhysicalDeviceMemoryProperties(screen->pdev, &info->mem_props); // enumerate device supported extensions - if (vkEnumerateDeviceExtensionProperties(screen->pdev, NULL, &num_extensions, NULL) != VK_SUCCESS) { + if (screen->vk.EnumerateDeviceExtensionProperties(screen->pdev, NULL, &num_extensions, NULL) != VK_SUCCESS) { mesa_loge("ZINK: vkEnumerateDeviceExtensionProperties failed"); } else { if (num_extensions > 0) { VkExtensionProperties *extensions = MALLOC(sizeof(VkExtensionProperties) * num_extensions); if (!extensions) goto fail; - if (vkEnumerateDeviceExtensionProperties(screen->pdev, NULL, &num_extensions, extensions) != VK_SUCCESS) { + if (screen->vk.EnumerateDeviceExtensionProperties(screen->pdev, NULL, &num_extensions, extensions) != VK_SUCCESS) { mesa_loge("ZINK: vkEnumerateDeviceExtensionProperties failed"); } @@ -427,7 +427,7 @@ zink_get_physical_device_info(struct zink_screen *screen) screen->vk.GetPhysicalDeviceFeatures2(screen->pdev, &info->feats); } else { - vkGetPhysicalDeviceFeatures(screen->pdev, &info->feats.features); + screen->vk.GetPhysicalDeviceFeatures(screen->pdev, &info->feats.features); } // check for device properties diff --git a/src/gallium/drivers/zink/zink_pipeline.c b/src/gallium/drivers/zink/zink_pipeline.c index 1823dbba296..b00b47ad0fd 100644 --- a/src/gallium/drivers/zink/zink_pipeline.c +++ b/src/gallium/drivers/zink/zink_pipeline.c @@ -356,8 +356,8 @@ zink_create_gfx_pipeline(struct zink_screen *screen, pci.stageCount = num_stages; VkPipeline pipeline; - if (vkCreateGraphicsPipelines(screen->dev, prog->base.pipeline_cache, 1, &pci, - NULL, &pipeline) != VK_SUCCESS) { + if (VKSCR(CreateGraphicsPipelines)(screen->dev, prog->base.pipeline_cache, + 1, &pci, NULL, &pipeline) != VK_SUCCESS) { mesa_loge("ZINK: vkCreateGraphicsPipelines failed"); return VK_NULL_HANDLE; } @@ -397,8 +397,8 @@ zink_create_compute_pipeline(struct zink_screen *screen, struct zink_compute_pro pci.stage = stage; VkPipeline pipeline; - if (vkCreateComputePipelines(screen->dev, comp->base.pipeline_cache, 1, &pci, - NULL, &pipeline) != VK_SUCCESS) { + if (VKSCR(CreateComputePipelines)(screen->dev, comp->base.pipeline_cache, + 1, &pci, NULL, &pipeline) != VK_SUCCESS) { mesa_loge("ZINK: vkCreateComputePipelines failed"); return VK_NULL_HANDLE; } diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 9e92284f6d5..7fde06bc438 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1224,7 +1224,7 @@ zink_destroy_screen(struct pipe_screen *pscreen) simple_mtx_destroy(&screen->queue_lock); VKSCR(DestroyDevice)(screen->dev, NULL); - vkDestroyInstance(screen->instance, NULL); + VKSCR(DestroyInstance)(screen->instance, NULL); util_idalloc_mt_fini(&screen->buffer_ids); slab_destroy_parent(&screen->transfer_pool); @@ -1238,7 +1238,7 @@ choose_pdev(struct zink_screen *screen) uint32_t i, pdev_count; VkPhysicalDevice *pdevs; bool is_cpu = false; - VkResult result = vkEnumeratePhysicalDevices(screen->instance, &pdev_count, NULL); + VkResult result = VKSCR(EnumeratePhysicalDevices)(screen->instance, &pdev_count, NULL); if (result != VK_SUCCESS) { mesa_loge("ZINK: vkEnumeratePhysicalDevices failed"); return is_cpu; @@ -1247,7 +1247,7 @@ choose_pdev(struct zink_screen *screen) assert(pdev_count > 0); pdevs = malloc(sizeof(*pdevs) * pdev_count); - result = vkEnumeratePhysicalDevices(screen->instance, &pdev_count, pdevs); + result = VKSCR(EnumeratePhysicalDevices)(screen->instance, &pdev_count, pdevs); assert(result == VK_SUCCESS); assert(pdev_count > 0); @@ -1273,7 +1273,7 @@ choose_pdev(struct zink_screen *screen) unsigned idx = 0; int cur_prio = 0; for (i = 0; i < pdev_count; ++i) { - vkGetPhysicalDeviceProperties(pdevs[i], &props); + VKSCR(GetPhysicalDeviceProperties)(pdevs[i], &props); if (cpu) { /* if user wants cpu, only give them cpu */ @@ -1295,7 +1295,7 @@ choose_pdev(struct zink_screen *screen) goto out; screen->pdev = pdevs[idx]; - vkGetPhysicalDeviceProperties(screen->pdev, &screen->info.props); + VKSCR(GetPhysicalDeviceProperties)(screen->pdev, &screen->info.props); screen->info.device_version = screen->info.props.apiVersion; /* runtime version is the lesser of the instance version and device version */ @@ -1317,11 +1317,11 @@ static void update_queue_props(struct zink_screen *screen) { uint32_t num_queues; - vkGetPhysicalDeviceQueueFamilyProperties(screen->pdev, &num_queues, NULL); + VKSCR(GetPhysicalDeviceQueueFamilyProperties)(screen->pdev, &num_queues, NULL); assert(num_queues > 0); VkQueueFamilyProperties *props = malloc(sizeof(*props) * num_queues); - vkGetPhysicalDeviceQueueFamilyProperties(screen->pdev, &num_queues, props); + VKSCR(GetPhysicalDeviceQueueFamilyProperties)(screen->pdev, &num_queues, props); for (uint32_t i = 0; i < num_queues; i++) { if (props[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) { @@ -1338,9 +1338,9 @@ static void init_queue(struct zink_screen *screen) { simple_mtx_init(&screen->queue_lock, mtx_plain); - vkGetDeviceQueue(screen->dev, screen->gfx_queue, 0, &screen->queue); + VKSCR(GetDeviceQueue)(screen->dev, screen->gfx_queue, 0, &screen->queue); if (screen->threaded && screen->max_queues > 1) - vkGetDeviceQueue(screen->dev, screen->gfx_queue, 1, &screen->thread_queue); + VKSCR(GetDeviceQueue)(screen->dev, screen->gfx_queue, 1, &screen->thread_queue); else screen->thread_queue = screen->queue; } @@ -1951,7 +1951,7 @@ zink_create_logical_device(struct zink_screen *screen) dci.ppEnabledExtensionNames = screen->info.extensions; dci.enabledExtensionCount = screen->info.num_extensions; - if (vkCreateDevice(screen->pdev, &dci, NULL, &dev) != VK_SUCCESS) { + if (VKSCR(CreateDevice)(screen->pdev, &dci, NULL, &dev) != VK_SUCCESS) { mesa_loge("ZINK: vkCreateDevice failed"); } return dev;
