// Copyright 2021-2024 The Khronos Group Inc. // // SPDX-License-Identifier: CC-BY-4.0 include::{generated}/meta/{refprefix}VK_EXT_multi_draw.adoc[] === Other Extension Metadata *Last Modified Date*:: 2021-05-19 *Interactions and External Dependencies*:: - Interacts with Vulkan 1.1. - Interacts with `apiext:VK_KHR_shader_draw_parameters`. *IP Status*:: No known IP claims. *Contributors*:: - Mike Blumenkrantz, VALVE - Piers Daniell, NVIDIA - Faith Ekstrand, INTEL - Spencer Fricke, SAMSUNG - Ricardo Garcia, IGALIA - Jon Leech, KHRONOS - Stu Smith, AMD === Description Processing multiple draw commands in sequence incurs measurable overhead within drivers due to repeated state checks and updates during dispatch. This extension enables passing the entire sequence of draws directly to the driver in order to avoid any such overhead, using an array of slink:VkMultiDrawInfoEXT or slink:VkMultiDrawIndexedInfoEXT structs with fname:vkCmdDrawMultiEXT or fname:vkCmdDrawMultiIndexedEXT, respectively. These functions could be used any time multiple draw commands are being recorded without any state changes between them in order to maximize performance. include::{generated}/interfaces/VK_EXT_multi_draw.adoc[] === New or Modified Built-In Variables * (modified)code:DrawIndex === Version History * Revision 1, 2021-01-20 (Mike Blumenkrantz) ** Initial version