Class KHRDrawIndirectCount

java.lang.Object
org.lwjgl.vulkan.KHRDrawIndirectCount

public class KHRDrawIndirectCount extends Object
This extension is based off the VK_AMD_draw_indirect_count extension. This extension allows an application to source the number of draws for indirect drawing calls from a buffer.

Applications might want to do culling on the GPU via a compute shader prior to drawing. This enables the application to generate an arbitrary number of drawing commands and execute them without host intervention.

Promotion to Vulkan 1.2

All functionality in this extension is included in core Vulkan 1.2, with the KHR suffix omitted. However, if Vulkan 1.2 is supported and this extension is not, the entry points CmdDrawIndirectCount and CmdDrawIndexedIndirectCount are optional. The original type, enum and command names are still available as aliases of the core functionality.

VK_KHR_draw_indirect_count
Name String
VK_KHR_draw_indirect_count
Extension Type
Device extension
Registered Extension Number
170
Revision
1
Deprecation State
Contact
Other Extension Metadata
Last Modified Date
2017-08-25
Interactions and External Dependencies
  • Promoted to Vulkan 1.2 Core
IP Status
No known IP claims.
Contributors
  • Matthaeus G. Chajdas, AMD
  • Derrick Owens, AMD
  • Graham Sellers, AMD
  • Daniel Rakos, AMD
  • Dominik Witczak, AMD
  • Piers Daniell, NVIDIA
  • Field Details

    • VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION

      public static final int VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION
      The extension specification version.
      See Also:
    • VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME

      public static final String VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME
      The extension name.
      See Also:
  • Method Details

    • vkCmdDrawIndirectCountKHR

      public static void vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, long buffer, long offset, long countBuffer, long countBufferOffset, int maxDrawCount, int stride)
      Parameters:
      commandBuffer - the command buffer into which the command is recorded.
      buffer - the buffer containing draw parameters.
      offset - the byte offset into buffer where parameters begin.
      countBuffer - the buffer containing the draw count.
      countBufferOffset - the byte offset into countBuffer where the draw count begins.
      maxDrawCount - specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount.
      stride - the byte stride between successive sets of draw parameters.
    • vkCmdDrawIndexedIndirectCountKHR

      public static void vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, long buffer, long offset, long countBuffer, long countBufferOffset, int maxDrawCount, int stride)
      Parameters:
      commandBuffer - the command buffer into which the command is recorded.
      buffer - the buffer containing draw parameters.
      offset - the byte offset into buffer where parameters begin.
      countBuffer - the buffer containing the draw count.
      countBufferOffset - the byte offset into countBuffer where the draw count begins.
      maxDrawCount - specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount.
      stride - the byte stride between successive sets of draw parameters.