On this page

QRhiIndirectCommandBufferBuildInfo Struct

Describes how to build an indirect command buffer from a QRhiBuffer. More...

Header: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS GuiPrivate)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
Since: Qt 6.13

Public Variables

quint32 commandCount
QRhiBuffer *countBuffer
quint32 countBufferOffset
QRhiBuffer *indexBuffer
quint32 indexBufferOffset
QRhiCommandBuffer::IndexFormat indexFormat
QRhiBuffer *sourceBuffer
quint32 sourceBufferOffset
quint32 stride
QRhiGraphicsPipeline::Topology topology

Detailed Description

Note: This is a RHI API with limited compatibility guarantees, see QRhi for details.

See also QRhiCommandBuffer::buildIndirect().

Member Variable Documentation

quint32 QRhiIndirectCommandBufferBuildInfo::commandCount

The number of commands to take from sourceBuffer. This is what QRhiIndirectCommandBuffer::commandCount() reports afterwards, and so how many draws QRhiCommandBuffer::executeIndirect() issues by default.

0 means QRhiIndirectCommandBuffer::maxCommandCount(). It does not mean "as many as fit in sourceBuffer": a buffer written by the GPU can be larger than the number of commands in it, so no count is ever derived from its size. A value above QRhiIndirectCommandBuffer::maxCommandCount() is clamped to it, with a warning.

Note: Specifying countBuffer changes what this value means: it stops being the number of commands and becomes the maximum number of commands, with the device-side count in countBuffer deciding the actual number. Without a countBuffer, exactly this many commands are executed.

QRhiBuffer *QRhiIndirectCommandBufferBuildInfo::countBuffer

An optional buffer whose first quint32 holds the number of commands to execute. Requires QRhi::DrawIndirectCount.

Note: Setting this turns commandCount into an upper bound. The device-side value is clamped to it, so a count buffer can only ever reduce the number of draws, never raise it.

quint32 QRhiIndirectCommandBufferBuildInfo::countBufferOffset

QRhiBuffer *QRhiIndirectCommandBufferBuildInfo::indexBuffer

The index buffer the commands index into. Required for IndexedDraws.

quint32 QRhiIndirectCommandBufferBuildInfo::indexBufferOffset

QRhiCommandBuffer::IndexFormat QRhiIndirectCommandBufferBuildInfo::indexFormat

QRhiBuffer *QRhiIndirectCommandBufferBuildInfo::sourceBuffer

The buffer holding the QRhiIndirectDrawCommand or QRhiIndexedIndirectDrawCommand entries. Must have IndirectBuffer usage.

Its size is not used to work out how many commands there are, see commandCount.

quint32 QRhiIndirectCommandBufferBuildInfo::sourceBufferOffset

quint32 QRhiIndirectCommandBufferBuildInfo::stride

The byte distance between two commands in sourceBuffer. 0 means the size of the corresponding command struct.

QRhiGraphicsPipeline::Topology QRhiIndirectCommandBufferBuildInfo::topology

The topology the commands will be drawn with. Must match the topology of the graphics pipeline that is set when QRhiCommandBuffer::executeIndirect() is called. Some backends need it in order to build their native indirect command buffer, and it is not available to them outside of a render pass.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.