Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QD3D11CommandBuffer Struct Reference

#include <qrhid3d11_p.h>

Inheritance diagram for QD3D11CommandBuffer:
Collaboration diagram for QD3D11CommandBuffer:

Classes

struct  Command

Public Types

enum  PassType { NoPass , RenderPass , ComputePass }
Public Types inherited from QRhiCommandBuffer
enum  IndexFormat { IndexUInt16 , IndexUInt32 }
 Specifies the index data type. More...
enum  BeginPassFlag { ExternalContent = 0x01 , DoNotTrackResourcesForCompute = 0x02 }
 Flag values for QRhi::beginPass() More...
using DynamicOffset = std::pair<int, quint32>
 Synonym for std::pair<int, quint32>.
using VertexInput = std::pair<QRhiBuffer *, quint32>
 Synonym for std::pair<QRhiBuffer *, quint32>.
Public Types inherited from QRhiResource
enum  Type {
  Buffer , Texture , Sampler , RenderBuffer ,
  RenderPassDescriptor , SwapChainRenderTarget , TextureRenderTarget , ShaderResourceBindings ,
  GraphicsPipeline , SwapChain , ComputePipeline , CommandBuffer ,
  ShadingRateMap
}
 Specifies type of the resource. More...

Public Member Functions

 QD3D11CommandBuffer (QRhiImplementation *rhi)
 ~QD3D11CommandBuffer ()
void destroy () override
 Releases (or requests deferred releasing of) the underlying native graphics resources.
const ucharretainData (const QByteArray &data)
const ucharretainBufferData (const QRhiBufferData &data)
const ucharretainImage (const QImage &image)
int retainResourceBatches (const QD3D11ShaderResourceBindings::ResourceBatches &resourceBatches)
void resetCommands ()
void resetState ()
void resetCachedState ()
Public Member Functions inherited from QRhiCommandBuffer
QRhiResource::Type resourceType () const override
void resourceUpdate (QRhiResourceUpdateBatch *resourceUpdates)
 Sometimes committing resource updates is necessary or just more convenient without starting a render pass.
void beginPass (QRhiRenderTarget *rt, const QColor &colorClearValue, const QRhiDepthStencilClearValue &depthStencilClearValue, QRhiResourceUpdateBatch *resourceUpdates=nullptr, BeginPassFlags flags={})
 Records starting a new render pass targeting the render target rt.
void endPass (QRhiResourceUpdateBatch *resourceUpdates=nullptr)
 Records ending the current render pass.
void setGraphicsPipeline (QRhiGraphicsPipeline *ps)
 Records setting a new graphics pipeline ps.
void setShaderResources (QRhiShaderResourceBindings *srb=nullptr, int dynamicOffsetCount=0, const DynamicOffset *dynamicOffsets=nullptr)
 Records binding a set of shader resources, such as, uniform buffers or textures, that are made visible to one or more shader stages.
void setVertexInput (int startBinding, int bindingCount, const VertexInput *bindings, QRhiBuffer *indexBuf=nullptr, quint32 indexOffset=0, IndexFormat indexFormat=IndexUInt16)
 Records vertex input bindings.
void setViewport (const QRhiViewport &viewport)
 Records setting the active viewport rectangle specified in viewport.
void setScissor (const QRhiScissor &scissor)
 Records setting the active scissor rectangle specified in scissor.
void setBlendConstants (const QColor &c)
 Records setting the active blend constants to c.
void setStencilRef (quint32 refValue)
 Records setting the active stencil reference value to refValue.
void setShadingRate (const QSize &coarsePixelSize)
 Sets the shading rate for the following draw calls to coarsePixelSize.
void draw (quint32 vertexCount, quint32 instanceCount=1, quint32 firstVertex=0, quint32 firstInstance=0)
 Records a non-indexed draw.
void drawIndexed (quint32 indexCount, quint32 instanceCount=1, quint32 firstIndex=0, qint32 vertexOffset=0, quint32 firstInstance=0)
 Records an indexed draw.
void debugMarkBegin (const QByteArray &name)
 Records a named debug group on the command buffer with the specified name.
void debugMarkEnd ()
 Records the end of a debug group.
void debugMarkMsg (const QByteArray &msg)
 Inserts a debug message msg into the command stream.
void beginComputePass (QRhiResourceUpdateBatch *resourceUpdates=nullptr, BeginPassFlags flags={})
 Records starting a new compute pass.
void endComputePass (QRhiResourceUpdateBatch *resourceUpdates=nullptr)
 Records ending the current compute pass.
void setComputePipeline (QRhiComputePipeline *ps)
 Records setting a new compute pipeline ps.
void dispatch (int x, int y, int z)
 Records dispatching compute work items, with x, y, and z specifying the number of local workgroups in the corresponding dimension.
const QRhiNativeHandlesnativeHandles ()
void beginExternal ()
 To be called when the application before the application is about to enqueue commands to the current pass' command buffer by calling graphics API functions directly.
void endExternal ()
 To be called once the externally added commands are recorded to the command buffer or context.
double lastCompletedGpuTime ()
Public Member Functions inherited from QRhiResource
virtual ~QRhiResource ()
 Destructor.
void deleteLater ()
 When called without a frame being recorded, this function is equivalent to deleting the object.
QByteArray name () const
void setName (const QByteArray &name)
 Sets a name for the object.
quint64 globalResourceId () const
QRhirhi () const

Public Attributes

QRhiBackendCommandList< Commandcommands
PassType recordingPass
double lastGpuTime = 0
QRhiRenderTargetcurrentTarget
QRhiGraphicsPipelinecurrentGraphicsPipeline
QRhiComputePipelinecurrentComputePipeline
uint currentPipelineGeneration
QRhiShaderResourceBindingscurrentGraphicsSrb
QRhiShaderResourceBindingscurrentComputeSrb
uint currentSrbGeneration
ID3D11Buffer * currentIndexBuffer
quint32 currentIndexOffset
DXGI_FORMAT currentIndexFormat
ID3D11Buffer * currentVertexBuffers [D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT]
quint32 currentVertexOffsets [D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT]
QD3D11RenderTargetDataprevRtD
QVarLengthArray< QByteArray, 4 > dataRetainPool
QVarLengthArray< QRhiBufferData, 4 > bufferDataRetainPool
QVarLengthArray< QImage, 4 > imageRetainPool
QVarLengthArray< QD3D11ShaderResourceBindings::ResourceBatches, 4 > resourceBatchRetainPool

Static Public Attributes

static const int MAX_DYNAMIC_OFFSET_COUNT = 8
static const int MAX_VERTEX_BUFFER_BINDING_COUNT = 8

Additional Inherited Members

Protected Member Functions inherited from QRhiCommandBuffer
 QRhiCommandBuffer (QRhiImplementation *rhi)
Protected Member Functions inherited from QRhiResource
 QRhiResource (QRhiImplementation *rhi)
Protected Attributes inherited from QRhiResource
QRhiImplementationm_rhi = nullptr
quint64 m_id
QByteArray m_objectName

Detailed Description

Definition at line 382 of file qrhid3d11_p.h.

Member Enumeration Documentation

◆ PassType

Enumerator
NoPass 
RenderPass 
ComputePass 

Definition at line 538 of file qrhid3d11_p.h.

Constructor & Destructor Documentation

◆ QD3D11CommandBuffer()

QD3D11CommandBuffer::QD3D11CommandBuffer ( QRhiImplementation * rhi)

Definition at line 4980 of file qrhid3d11.cpp.

References QD3D11CommandBuffer(), and resetState().

Referenced by QD3D11CommandBuffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~QD3D11CommandBuffer()

QD3D11CommandBuffer::~QD3D11CommandBuffer ( )

Definition at line 4986 of file qrhid3d11.cpp.

References destroy().

Here is the call graph for this function:

Member Function Documentation

◆ destroy()

void QD3D11CommandBuffer::destroy ( )
overridevirtual

Releases (or requests deferred releasing of) the underlying native graphics resources.

Safe to call multiple times, subsequent invocations will be a no-op then.

Once destroy() is called, the QRhiResource instance can be reused, by calling create() again. That will then result in creating new native graphics resources underneath.

Note
Resources referenced by commands for the current frame should not be released until the frame is submitted by QRhi::endFrame().

The QRhiResource destructor also performs the same task, so calling this function is not necessary before deleting a QRhiResource.

See also
deleteLater()

Implements QRhiResource.

Definition at line 4991 of file qrhid3d11.cpp.

Referenced by ~QD3D11CommandBuffer().

Here is the caller graph for this function:

◆ resetCachedState()

void QD3D11CommandBuffer::resetCachedState ( )
inline

Definition at line 599 of file qrhid3d11_p.h.

Referenced by QRhiD3D11::beginComputePass(), QRhiD3D11::beginPass(), QRhiD3D11::endExternal(), and resetState().

Here is the caller graph for this function:

◆ resetCommands()

void QD3D11CommandBuffer::resetCommands ( )
inline

Definition at line 584 of file qrhid3d11_p.h.

Referenced by QRhiD3D11::beginExternal(), and resetState().

Here is the caller graph for this function:

◆ resetState()

void QD3D11CommandBuffer::resetState ( )
inline

Definition at line 591 of file qrhid3d11_p.h.

References NoPass, prevRtD, recordingPass, resetCachedState(), and resetCommands().

Referenced by QD3D11CommandBuffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ retainBufferData()

const uchar * QD3D11CommandBuffer::retainBufferData ( const QRhiBufferData & data)
inline

Definition at line 571 of file qrhid3d11_p.h.

◆ retainData()

const uchar * QD3D11CommandBuffer::retainData ( const QByteArray & data)
inline

Definition at line 567 of file qrhid3d11_p.h.

◆ retainImage()

const uchar * QD3D11CommandBuffer::retainImage ( const QImage & image)
inline

Definition at line 575 of file qrhid3d11_p.h.

◆ retainResourceBatches()

int QD3D11CommandBuffer::retainResourceBatches ( const QD3D11ShaderResourceBindings::ResourceBatches & resourceBatches)
inline

Definition at line 580 of file qrhid3d11_p.h.

Referenced by QRhiD3D11::setShaderResources().

Here is the caller graph for this function:

Member Data Documentation

◆ bufferDataRetainPool

QVarLengthArray<QRhiBufferData, 4> QD3D11CommandBuffer::bufferDataRetainPool

Definition at line 562 of file qrhid3d11_p.h.

◆ commands

QRhiBackendCommandList<Command> QD3D11CommandBuffer::commands

Definition at line 544 of file qrhid3d11_p.h.

◆ currentComputePipeline

QRhiComputePipeline* QD3D11CommandBuffer::currentComputePipeline

Definition at line 549 of file qrhid3d11_p.h.

◆ currentComputeSrb

QRhiShaderResourceBindings* QD3D11CommandBuffer::currentComputeSrb

Definition at line 552 of file qrhid3d11_p.h.

◆ currentGraphicsPipeline

QRhiGraphicsPipeline* QD3D11CommandBuffer::currentGraphicsPipeline

Definition at line 548 of file qrhid3d11_p.h.

◆ currentGraphicsSrb

QRhiShaderResourceBindings* QD3D11CommandBuffer::currentGraphicsSrb

Definition at line 551 of file qrhid3d11_p.h.

◆ currentIndexBuffer

ID3D11Buffer* QD3D11CommandBuffer::currentIndexBuffer

Definition at line 554 of file qrhid3d11_p.h.

◆ currentIndexFormat

DXGI_FORMAT QD3D11CommandBuffer::currentIndexFormat

Definition at line 556 of file qrhid3d11_p.h.

◆ currentIndexOffset

quint32 QD3D11CommandBuffer::currentIndexOffset

Definition at line 555 of file qrhid3d11_p.h.

◆ currentPipelineGeneration

uint QD3D11CommandBuffer::currentPipelineGeneration

Definition at line 550 of file qrhid3d11_p.h.

◆ currentSrbGeneration

uint QD3D11CommandBuffer::currentSrbGeneration

Definition at line 553 of file qrhid3d11_p.h.

◆ currentTarget

QRhiRenderTarget* QD3D11CommandBuffer::currentTarget

Definition at line 547 of file qrhid3d11_p.h.

◆ currentVertexBuffers

ID3D11Buffer* QD3D11CommandBuffer::currentVertexBuffers[D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT]

Definition at line 557 of file qrhid3d11_p.h.

◆ currentVertexOffsets

quint32 QD3D11CommandBuffer::currentVertexOffsets[D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT]

Definition at line 558 of file qrhid3d11_p.h.

◆ dataRetainPool

QVarLengthArray<QByteArray, 4> QD3D11CommandBuffer::dataRetainPool

Definition at line 561 of file qrhid3d11_p.h.

◆ imageRetainPool

QVarLengthArray<QImage, 4> QD3D11CommandBuffer::imageRetainPool

Definition at line 563 of file qrhid3d11_p.h.

◆ lastGpuTime

double QD3D11CommandBuffer::lastGpuTime = 0

Definition at line 546 of file qrhid3d11_p.h.

Referenced by QRhiD3D11::lastCompletedGpuTime().

◆ MAX_DYNAMIC_OFFSET_COUNT

const int QD3D11CommandBuffer::MAX_DYNAMIC_OFFSET_COUNT = 8
static

Definition at line 389 of file qrhid3d11_p.h.

Referenced by QRhiD3D11::bindShaderResources(), and QRhiD3D11::setShaderResources().

◆ MAX_VERTEX_BUFFER_BINDING_COUNT

const int QD3D11CommandBuffer::MAX_VERTEX_BUFFER_BINDING_COUNT = 8
static

Definition at line 390 of file qrhid3d11_p.h.

Referenced by QRhiD3D11::setVertexInput().

◆ prevRtD

QD3D11RenderTargetData* QD3D11CommandBuffer::prevRtD

Definition at line 559 of file qrhid3d11_p.h.

Referenced by QRhiD3D11::executeCommandBuffer(), and resetState().

◆ recordingPass

◆ resourceBatchRetainPool

QVarLengthArray<QD3D11ShaderResourceBindings::ResourceBatches, 4> QD3D11CommandBuffer::resourceBatchRetainPool

Definition at line 564 of file qrhid3d11_p.h.


The documentation for this struct was generated from the following files: