From d4f3770ea232e015e445b9d1fcab699119417fac Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 27 Feb 2024 16:20:48 -0500 Subject: [PATCH] zink: use uncompacted vk_dispatch_table the dispatch table doesn't know which extensions zink wants to use, so let zink use the extensions it wants to use fixes #10513 cc: mesa-stable Acked-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_screen.c | 18 +++++++++--------- src/gallium/drivers/zink/zink_types.h | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 11e54a0054a..035e742c98a 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -3288,12 +3288,12 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev } } - vk_instance_dispatch_table_load(&screen->vk.instance, - screen->vk_GetInstanceProcAddr, - screen->instance); - vk_physical_device_dispatch_table_load(&screen->vk.physical_device, - screen->vk_GetInstanceProcAddr, - screen->instance); + vk_instance_uncompacted_dispatch_table_load(&screen->vk.instance, + screen->vk_GetInstanceProcAddr, + screen->instance); + vk_physical_device_uncompacted_dispatch_table_load(&screen->vk.physical_device, + screen->vk_GetInstanceProcAddr, + screen->instance); zink_verify_instance_extensions(screen); @@ -3390,9 +3390,9 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev if (!screen->dev) goto fail; - vk_device_dispatch_table_load(&screen->vk.device, - screen->vk_GetDeviceProcAddr, - screen->dev); + vk_device_uncompacted_dispatch_table_load(&screen->vk.device, + screen->vk_GetDeviceProcAddr, + screen->dev); init_queue(screen); diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index bc668b60d8e..ddfb2532c84 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -1523,7 +1523,7 @@ struct zink_screen { bool renderdoc_capture_all; #endif - struct vk_dispatch_table vk; + struct vk_uncompacted_dispatch_table vk; void (*buffer_barrier)(struct zink_context *ctx, struct zink_resource *res, VkAccessFlags flags, VkPipelineStageFlags pipeline); void (*image_barrier)(struct zink_context *ctx, struct zink_resource *res, VkImageLayout new_layout, VkAccessFlags flags, VkPipelineStageFlags pipeline);