Class D3D12GraphicsCommandListState

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class D3D12GraphicsCommandListState : public gpa::d3d12_state_tracker::ObjectState<ID3D12Object>

Public Types

using ScissorRects = std::vector<D3D12_RECT>
using Viewports = std::vector<D3D12_VIEWPORT>
using DescriptorHeaps = std::vector<ID3D12DescriptorHeap*>
using RenderTargets = std::vector<D3D12_CPU_DESCRIPTOR_HANDLE>
using IndexBuffer = std::vector<D3D12_INDEX_BUFFER_VIEW>
using VertexBuffers = std::map<UINT, D3D12_VERTEX_BUFFER_VIEW>
using DepthStencil = D3D12_CPU_DESCRIPTOR_HANDLE
using Topology = D3D12_PRIMITIVE_TOPOLOGY
using StreamOutTargets = std::map<UINT, D3D12_STREAM_OUTPUT_BUFFER_VIEW>

Public Functions

D3D12GraphicsCommandListState(ID3D12GraphicsCommandList *pList, UINT nodeMask, D3D12_COMMAND_LIST_TYPE type, ID3D12CommandAllocator *pCommandAllocator, ID3D12PipelineState *pInitialState)
D3D12GraphicsCommandListState(D3D12GraphicsCommandListState const&) = delete
D3D12GraphicsCommandListState &operator=(D3D12GraphicsCommandListState const&) = delete
~D3D12GraphicsCommandListState() override
virtual GUID GetGUID() override
D3D12GraphicsCommandListExtendedState *GetExtendedState()
void InitializeExtendedState()
void OnResourceBarrier(UINT NumBarriers, const D3D12_RESOURCE_BARRIER *pBarriers)
void OnReset(ID3D12CommandAllocator *allocator, ID3D12PipelineState *pipelineState)
void OnClose()
void OnSetPipelineState(ID3D12PipelineState *pipelineState)
void OnSetPipelineState1(ID3D12StateObject *stateObject)
void OnClearState(ID3D12PipelineState *stateObject)
void OnSetComputeRootSignature(ID3D12RootSignature *rootSignature)
void OnSetGraphicsRootSignature(ID3D12RootSignature *rootSignature)
void OnSetComputeRootDescriptorTable(UINT RootParameterIndex, D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor)
void OnSetGraphicsRootDescriptorTable(UINT RootParameterIndex, D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor)
void OnSetComputeRoot32BitConstant(UINT RootParameterIndex, UINT SrcData, UINT DestOffsetIn32BitValues)
void OnSetGraphicsRoot32BitConstant(UINT RootParameterIndex, UINT SrcData, UINT DestOffsetIn32BitValues)
void OnSetComputeRoot32BitConstants(UINT RootParameterIndex, UINT Num32BitValuesToSet, const void *pSrcData, UINT DestOffsetIn32BitValues)
void OnSetGraphicsRoot32BitConstants(UINT RootParameterIndex, UINT Num32BitValuesToSet, const void *pSrcData, UINT DestOffsetIn32BitValues)
void OnSetComputeRootConstantBufferView(UINT RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation)
void OnSetGraphicsRootConstantBufferView(UINT RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation)
void OnSetComputeRootShaderResourceView(UINT RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation)
void OnSetGraphicsRootShaderResourceView(UINT RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation)
void OnSetComputeRootUnorderedAccessView(UINT RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation)
void OnSetGraphicsRootUnorderedAccessView(UINT RootParameterIndex, D3D12_GPU_VIRTUAL_ADDRESS BufferLocation)
void OnIASetIndexBuffer(const D3D12_INDEX_BUFFER_VIEW *pView)
void OnIASetPrimitiveTopology(D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology)
void OnIASetVertexBuffers(UINT StartSlot, UINT NumViews, const D3D12_VERTEX_BUFFER_VIEW *pViews)
void OnOMSetBlendFactor(const FLOAT BlendFactor[4])
void OnOMSetRenderTargets(UINT NumRenderTargetDescriptors, const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, BOOL RTsSingleHandleToDescriptorRange, const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor, bool runtimeCPUDescriptorHandles)
void OnOMSetStencilRef(UINT StencilRef)
void OnOMSetDepthBounds(FLOAT Min, FLOAT Max)
void OnSOSetTargets(UINT StartSlot, UINT NumViews, const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews)
void OnRSSetScissorRects(UINT NumRects, const D3D12_RECT *pRects)
void OnRSSetViewports(UINT NumViewports, const D3D12_VIEWPORT *pViewports)
void OnSetDescriptorHeaps(UINT NumDescriptorHeaps, ID3D12DescriptorHeap *const *ppDescriptorHeaps)
void OnAllocatorReset(ID3D12CommandAllocator *allocator)
void OnExecute(ID3D12CommandQueue *queue)
void OnExecuteBundle(ID3D12GraphicsCommandList *pCommandList)
void OnResourceUpdate(ID3D12Resource *resource)
void OnCopyBufferRegion(ID3D12Resource *pDstBuffer, UINT64 DstOffset, ID3D12Resource *pSrcBuffer, UINT64 SrcOffset, UINT64 NumBytes)
void OnCopyResource(ID3D12Resource *pDstResource, ID3D12Resource *pSrcResource)
void OnCopyRaytracingAccelerationStructure(D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode)
void OnBuildRaytracingAccelerationStructure(const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC &desc)
void OnDispatchRays(const D3D12_DISPATCH_RAYS_DESC &desc)
void OnBeginQuery(ID3D12QueryHeap *pQueryHeap, D3D12_QUERY_TYPE Type, UINT Index)
void OnEndQuery(ID3D12QueryHeap *pQueryHeap, D3D12_QUERY_TYPE Type, UINT Index)
void OnSetPredication(ID3D12Resource *pBuffer, UINT64 AlignedBufferOffset, D3D12_PREDICATION_OP Operation)
void OnSetSamplePositions(UINT NumSamplesPerPixel, UINT NumPixels, D3D12_SAMPLE_POSITION *pSamplePositions)
void OnSetViewInstanceMask(UINT Mask)
void OnSetProtectedResourceSession(ID3D12ProtectedResourceSession *pProtectedResourceSession)
void OnBeginRenderPass(UINT NumRenderTargets, const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, D3D12_RENDER_PASS_FLAGS Flags)
void OnEndRenderPass()
void OnRSSetShadingRate(D3D12_SHADING_RATE baseShadingRate, const D3D12_SHADING_RATE_COMBINER *combiners)
void OnRSSetShadingRateImage(ID3D12Resource *shadingRateImage)
bool IsRecording() const
uint32_t GetNodeMask() const
ID3D12PipelineState *GetPipelineState() const
ID3D12StateObject *GetRaytracingState() const
ID3D12CommandAllocator *GetCommandAllocator() const
ID3D12RootSignature *GetCurrentRootSignature(PipelineType const pipelineType) const
ID3D12StateObject *GetStateObjectAtCommand(uint32_t commandIndex) const
std::vector<BuildASCommand> GetRaytracingASDescs() const
std::vector<DispatchRaysCommand> const &GetDispatchRaysDescs() const
CopyBufferCommands const &GetCopyBufferCommands() const
std::vector<CopyASCommand> const &GetCopyAccelerationStructures() const
std::vector<D3D12_RESOURCE_STATES> const *GetPendingResourceState(ID3D12Resource *resource) const
std::vector<EnhancedBarrier> const *GetPendingEnhancedState(ID3D12Resource *resource) const
std::vector<ID3D12DescriptorHeap*> GetDescriptorHeaps() const
VertexBuffers const &GetVertexBuffers() const
IndexBuffer const &GetIndexBuffer() const
Viewports const &GetViewports() const
ScissorRects const &GetScissorRects() const
StreamOutTargets const &GetStreamOutTargets() const
uint32_t GetStencilRef() const
std::vector<float> GetDepthBounds() const
Topology GetTopology() const
std::unordered_map<uint32_t, RootParamRecord> const &GetRootSignatureRecord(PipelineType pipelineType) const
RenderTargets const &GetRenderTargets(bool requestUntranslatedHandle) const
DepthStencil const &GetDepthStencil(bool requestUntranslatedHandle) const
ReferencedDescriptorHeaptoDescriptorMap const &GetReferencedRenderTargetDescriptors() const
void EnumerateCurrentBindings(PipelineType pipelineType, std::function<bool(uint32_t shaderRegister, uint32_t registerSpace, ResourceBindingInfo resourceBindingInfo, D3D12_SHADER_VISIBILITY visibility, bool belongsToUnboundedRange)> callback)

Enumarated through currently bound resources.

The callback parameter belongsToUnboundedRange tells the client that currently iterated range of descriptors has unbounded size. In such case even whole descriptor heap can be iterated through. The client can stop iteration through a range with unbounded size by returning false. In all other cases the callback return value is ignored.

void RestoreState(ID3D12GraphicsCommandList *cmdList, bool useUntranslated = false)
void RestoreComputeBindings(ID3D12GraphicsCommandList *cmdList)
void RestoreComputeState(ID3D12GraphicsCommandList *cmdList)
void RestoreGraphicsState(ID3D12GraphicsCommandList *cmdList, bool restoreCommon = true, bool useUntranslated = false)
uint32_t NextCommandIndex()
uint32_t CurrentCommandIndex()

Public Static Attributes

static constexpr GUID sGUID = {0xe2d63967, 0xb577, 0x4054, {0xa8, 0x1d, 0xb6, 0x5e, 0xad, 0xfe, 0x87, 0x78}}