zink: hook up push descriptor and descriptor template extensions

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10998>
This commit is contained in:
Mike Blumenkrantz
2021-03-23 11:11:00 -04:00
committed by Marge Bot
parent e4e20556d6
commit 7a5800af3d
3 changed files with 21 additions and 0 deletions
@@ -161,6 +161,11 @@ EXTENSIONS = [
Extension("VK_KHR_shader_float16_int8",
alias="shader_float16_int8",
features=True),
Extension("VK_KHR_push_descriptor",
alias="push",
properties=True),
Extension("VK_KHR_descriptor_update_template",
alias="template"),
]
# constructor: Versions(device_version(major, minor, patch), struct_version(major, minor))
+11
View File
@@ -1248,6 +1248,17 @@ load_device_extensions(struct zink_screen *screen)
if (screen->info.have_KHR_maintenance3)
GET_PROC_ADDR_KHR(GetDescriptorSetLayoutSupport);
if (screen->info.have_KHR_push_descriptor) {
GET_PROC_ADDR(CmdPushDescriptorSetKHR);
GET_PROC_ADDR(CmdPushDescriptorSetWithTemplateKHR);
}
if (screen->info.have_KHR_descriptor_update_template) {
GET_PROC_ADDR_KHR(CreateDescriptorUpdateTemplate);
GET_PROC_ADDR_KHR(DestroyDescriptorUpdateTemplate);
GET_PROC_ADDR_KHR(UpdateDescriptorSetWithTemplate);
}
screen->have_triangle_fans = true;
#if defined(VK_EXTX_PORTABILITY_SUBSET_EXTENSION_NAME)
if (screen->info.have_EXTX_portability_subset) {
+5
View File
@@ -126,6 +126,11 @@ struct zink_screen {
PFN_vkWaitSemaphores vk_WaitSemaphores;
PFN_vkGetDescriptorSetLayoutSupport vk_GetDescriptorSetLayoutSupport;
PFN_vkCmdPushDescriptorSetKHR vk_CmdPushDescriptorSetKHR;
PFN_vkCreateDescriptorUpdateTemplate vk_CreateDescriptorUpdateTemplate;
PFN_vkDestroyDescriptorUpdateTemplate vk_DestroyDescriptorUpdateTemplate;
PFN_vkUpdateDescriptorSetWithTemplate vk_UpdateDescriptorSetWithTemplate;
PFN_vkCmdPushDescriptorSetWithTemplateKHR vk_CmdPushDescriptorSetWithTemplateKHR;
bool (*descriptor_program_init)(struct zink_context *ctx, struct zink_program *pg);
void (*descriptor_program_deinit)(struct zink_screen *screen, struct zink_program *pg);
void (*descriptors_update)(struct zink_context *ctx, bool is_compute);