HORIZON HASKELLDocslts/ghc-10.0.x8174fa42026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8174fa4 · 2026-10-11

Modulevulkan-3.27GHC2021

Vulkan.Core12.Promoted_From_VK_KHR_draw_indirect_count

  • 2 values
  • Packagevulkan-3.27
  • Exports2
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourcePromoted_From_VK_KHR_draw_indirect_count.hs
valuecmdDrawIndirectCount
  1. :: MonadIO io
  2. => CommandBuffer

    commandBuffer is the command buffer into which the command is recorded.

  3. -> Buffer

    buffer is the buffer containing draw parameters.

  4. -> "offset" ::: DeviceSize

    offset is the byte offset into buffer where parameters begin.

  5. -> "countBuffer" ::: Buffer

    countBuffer is the buffer containing the draw count.

  6. -> "countBufferOffset" ::: DeviceSize

    countBufferOffset is the byte offset into countBuffer where the draw count begins.

  7. -> "maxDrawCount" ::: Word32

    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.

  8. -> "stride" ::: Word32

    stride is the byte stride between successive sets of draw parameters.

  9. -> io ()
#

vkCmdDrawIndirectCount - Draw primitives with indirect parameters and draw count

Description

cmdDrawIndirectCount behaves similarly to cmdDrawIndirect except that the draw count is read by the device from a buffer during execution. The command will read an unsigned 32-bit integer from countBuffer located at countBufferOffset and use this as the draw count.

Valid Usage

Valid Usage (Implicit)

  • buffer must be a valid Buffer handle

  • countBuffer must be a valid Buffer handle

  • commandBuffer must be in the recording state

  • The CommandPool that commandBuffer was allocated from must support QUEUE_GRAPHICS_BIT operations

  • This command must only be called inside of a render pass instance

  • This command must not be called between suspended render pass instances

  • This command must only be called outside of a video coding scope

  • Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to commandBuffer must be externally synchronized

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Inside

Outside

VK_QUEUE_GRAPHICS_BIT

Action

Conditional Rendering

vkCmdDrawIndirectCount is affected by conditional rendering

See Also

VK_AMD_draw_indirect_count, VK_KHR_draw_indirect_count, VK_VERSION_1_2, Buffer, CommandBuffer, DeviceSize

valuecmdDrawIndexedIndirectCount
  1. :: MonadIO io
  2. => CommandBuffer

    commandBuffer is the command buffer into which the command is recorded.

  3. -> Buffer

    buffer is the buffer containing draw parameters.

  4. -> "offset" ::: DeviceSize

    offset is the byte offset into buffer where parameters begin.

  5. -> "countBuffer" ::: Buffer

    countBuffer is the buffer containing the draw count.

  6. -> "countBufferOffset" ::: DeviceSize

    countBufferOffset is the byte offset into countBuffer where the draw count begins.

  7. -> "maxDrawCount" ::: Word32

    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.

  8. -> "stride" ::: Word32

    stride is the byte stride between successive sets of draw parameters.

  9. -> io ()
#

vkCmdDrawIndexedIndirectCount - Draw parameters with indirect parameters, indexed vertices, and draw count

Description

cmdDrawIndexedIndirectCount behaves similarly to cmdDrawIndexedIndirect except that the draw count is read by the device from a buffer during execution. The command will read an unsigned 32-bit integer from countBuffer located at countBufferOffset and use this as the draw count.

Valid Usage

Valid Usage (Implicit)

  • buffer must be a valid Buffer handle

  • countBuffer must be a valid Buffer handle

  • commandBuffer must be in the recording state

  • The CommandPool that commandBuffer was allocated from must support QUEUE_GRAPHICS_BIT operations

  • This command must only be called inside of a render pass instance

  • This command must not be called between suspended render pass instances

  • This command must only be called outside of a video coding scope

  • Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to commandBuffer must be externally synchronized

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer Levels

Render Pass Scope

Video Coding Scope

Supported Queue Types

Command Type

Primary Secondary

Inside

Outside

VK_QUEUE_GRAPHICS_BIT

Action

Conditional Rendering

vkCmdDrawIndexedIndirectCount is affected by conditional rendering

See Also

VK_AMD_draw_indirect_count, VK_KHR_draw_indirect_count, VK_VERSION_1_2, Buffer, CommandBuffer, DeviceSize