Top Description Fields Constructors Methods
org.lwjgl.vulkan

public Class EXTMultiDraw

extends Object
Class Inheritance
Imports
javax.annotation.*, java.nio.*, org.lwjgl.system.*

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.
VK_EXT_multi_draw
Name String
VK_EXT_multi_draw
Extension Type
Device extension
Registered Extension Number
393
Revision
1
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2
Contact
  • Mike Blumenkrantz zmike
Other Extension Metadata
Last Modified Date
2021-05-19
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

Field Summary

Modifier and TypeField and Description
public static final String
public static final int
VK_EXT_MULTI_DRAW_SPEC_VERSION

The extension specification version.

public static final int
public static final int

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
nvkCmdDrawMultiEXT(VkCommandBuffer commandBuffer, int
the number of draws to execute, and can be zero.
drawCount
,
long pVertexInfo, int instanceCount, int firstInstance, int stride)

Unsafe version of: CmdDrawMultiEXT

public static void
nvkCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, int
the number of draws to execute, and can be zero.
drawCount
,
long pIndexInfo, int instanceCount, int firstInstance, int stride, long pVertexOffset)

Unsafe version of: CmdDrawMultiIndexedEXT

public static void
vkCmdDrawMultiEXT(VkCommandBuffer
the command buffer into which the command is recorded.
commandBuffer
,
VkMultiDrawInfoEXT.Buffer
a pointer to an array of VkMultiDrawInfoEXT with vertex information to be drawn.
pVertexInfo
,
int
the number of instances to draw.
instanceCount
,
int
the instance ID of the first instance to draw.
firstInstance
,
int
the byte stride between consecutive elements of pVertexInfo.
stride
)

Draw primitives.

public static void
vkCmdDrawMultiIndexedEXT(VkCommandBuffer
the command buffer into which the command is recorded.
commandBuffer
,
VkMultiDrawIndexedInfoEXT.Buffer
a pointer to an array of VkMultiDrawIndexedInfoEXT with index information to be drawn.
pIndexInfo
,
int
the number of instances to draw.
instanceCount
,
int
the instance ID of the first instance to draw.
firstInstance
,
int
the byte stride between consecutive elements of pIndexInfo.
stride
,
IntBuffer
NULL or a pointer to the value added to the vertex index before indexing into the vertex buffer. When specified, VkMultiDrawIndexedInfoEXT::offset is ignored.
pVertexOffset
)

Draw primitives.

public static void
vkCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, VkMultiDrawIndexedInfoEXT.Buffer pIndexInfo, int instanceCount, int firstInstance, int stride, int[] pVertexOffset)

Array version of: CmdDrawMultiIndexedEXT

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait