| // Copyright 2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_EXT_multi_draw.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2021-05-19 |
| *IP Status*:: |
| No known IP claims. |
| *Contributors*:: |
| - Mike Blumenkrantz, VALVE |
| - Piers Daniell, NVIDIA |
| - Jason 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.txt[] |
| |
| === New or Modified Built-In Variables |
| |
| * (modified)code:DrawIndex |
| |
| === Version History |
| |
| * Revision 1, 2021-01-20 (Mike Blumenkrantz) |
| - Initial version |