mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
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 <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:
parent
1b6ed06527
commit
4654a57bb5
3 changed files with 18 additions and 18 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue