From cef876910a04070e5c89667d88df7bc3e588af19 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 20 Aug 2020 09:22:37 -0400 Subject: [PATCH] zink: enable PIPE_CAP_MULTI_DRAW_INDIRECT(_PARAMS) caps Reviewed-by: Erik Faye-Lund Part-of: --- src/gallium/drivers/zink/zink_screen.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 9cdfc821cf9..13b3b73a867 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -105,6 +105,11 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS: return 1; + case PIPE_CAP_MULTI_DRAW_INDIRECT: + case PIPE_CAP_MULTI_DRAW_INDIRECT_PARAMS: + return screen->vk_CmdDrawIndirectCount && + screen->vk_CmdDrawIndexedIndirectCount; + case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR: return screen->info.have_EXT_vertex_attribute_divisor; @@ -839,7 +844,7 @@ load_instance_extensions(struct zink_screen *screen) GET_PROC_ADDR_INSTANCE_LOCAL(screen->instance, CmdDrawIndexedIndirectCountKHR); screen->vk_CmdDrawIndirectCount = vk_CmdDrawIndirectCountKHR; screen->vk_CmdDrawIndexedIndirectCount = vk_CmdDrawIndexedIndirectCountKHR; - } else if (VK_MAKE_VERSION(1,1,0) <= screen->loader_version) { + } else if (VK_MAKE_VERSION(1,2,0) <= screen->loader_version) { // Get Vk 1.1+ Instance functions GET_PROC_ADDR_INSTANCE(CmdDrawIndirectCount); GET_PROC_ADDR_INSTANCE(CmdDrawIndexedIndirectCount);