VK_EXT_multi_draw
Other Extension Metadata
Last Modified Date
2021-05-19
Interactions and External Dependencies
- Interacts with Vulkan 1.1.
- Interacts with 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
VkMultiDrawInfoEXT or VkMultiDrawIndexedInfoEXT structs with
vkCmdDrawMultiEXT
or 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.
New Commands
New Structures
- VkMultiDrawIndexedInfoEXT
- VkMultiDrawInfoEXT
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
- Extending VkPhysicalDeviceProperties2:
New Enum Constants
VK_EXT_MULTI_DRAW_EXTENSION_NAME
VK_EXT_MULTI_DRAW_SPEC_VERSION
- Extending VkStructureType:
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
New or Modified Built-In Variables
- (modified)
DrawIndex
Version History
- Revision 1, 2021-01-20 (Mike Blumenkrantz)
- Initial version