Go to the documentation of this file.
33 #include <unordered_map>
55 class GraphicsContext;
111 Uint32 RTHeight) override final;
117 Uint32 RTHeight) override final;
189 PVoid& pMappedData) override final;
212 const
Box* pMapRegion,
298 const D3D12_BOX* pD3D12SrcBox,
346 void CommitViewports();
347 void CommitScissorRects(
GraphicsContext& GraphCtx,
bool ScissorEnable);
349 void CommitSubpassRenderTargets();
350 void Flush(
bool RequestNewCmdCtx,
351 Uint32 NumCommandLists = 0,
356 __forceinline
void TransitionOrVerifyBufferState(
CommandContext& CmdCtx,
360 const char* OperationName);
361 __forceinline
void TransitionOrVerifyTextureState(
CommandContext& CmdCtx,
365 const char* OperationName);
366 __forceinline
void TransitionOrVerifyBLASState(
CommandContext& CmdCtx,
370 const char* OperationName);
371 __forceinline
void TransitionOrVerifyTLASState(
CommandContext& CmdCtx,
375 const char* OperationName);
381 __forceinline
void PrepareForDispatchCompute(
ComputeContext& GraphCtx);
384 __forceinline
void PrepareIndirectAttribsBuffer(
CommandContext& CmdCtx,
387 ID3D12Resource*& pd3d12ArgsBuff,
388 Uint64& BuffDataStartByteOffset,
391 struct RootTableInfo : CommittedShaderResources
393 SRBMaskType DynamicBuffersMask = 0;
395 ID3D12RootSignature* pd3d12RootSig =
nullptr;
397 __forceinline
bool RequireUpdate(
bool DynamicBuffersIntact =
false)
const
399 return (StaleSRBMask & ActiveSRBMask) != 0 || ((DynamicBuffersMask & ActiveSRBMask) != 0 && !DynamicBuffersIntact);
402 void SetDynamicBufferBit(
Uint32 Index) { DynamicBuffersMask |=
static_cast<SRBMaskType
>(1u << Index); }
403 void ClearDynamicBufferBit(
Uint32 Index) { DynamicBuffersMask &=
static_cast<SRBMaskType
>(~(1u << Index)); }
405 __forceinline RootTableInfo& GetRootTableInfo(
PIPELINE_TYPE PipelineType);
407 template <
bool IsCompute>
408 __forceinline
void CommitRootTablesAndViews(RootTableInfo& RootInfo,
bool RootViewsIntact =
false);
410 #ifdef DILIGENT_DEVELOPMENT
411 void DvpValidateCommittedShaderResources(RootTableInfo& RootInfo);
414 struct TextureUploadSpace
416 D3D12DynamicAllocation Allocation;
424 TextureUploadSpace AllocateTextureUploadSpace(
TEXTURE_FORMAT TexFmt,
433 m_State.NumCommands = m_State.NumCommands != 0 ? m_State.NumCommands : 1;
434 return *m_CurrCmdCtx;
436 std::unique_ptr<CommandContext, STDDeleterRawMem<CommandContext>> m_CurrCmdCtx;
440 size_t NumCommands = 0;
442 CComPtr<ID3D12Resource> CommittedD3D12IndexBuffer;
444 Uint64 CommittedD3D12IndexDataStartOffset = 0;
447 bool bCommittedD3D12VBsUpToDate =
false;
450 bool bCommittedD3D12IBUpToDate =
false;
453 RootTableInfo m_GraphicsResources;
454 RootTableInfo m_ComputeResources;
456 CComPtr<ID3D12CommandSignature> m_pDrawIndirectSignature;
457 CComPtr<ID3D12CommandSignature> m_pDrawIndexedIndirectSignature;
458 CComPtr<ID3D12CommandSignature> m_pDispatchIndirectSignature;
459 CComPtr<ID3D12CommandSignature> m_pDrawMeshIndirectSignature;
460 CComPtr<ID3D12CommandSignature> m_pTraceRaysIndirectSignature;
462 D3D12DynamicHeap m_DynamicHeap;
467 DynamicSuballocationsManager m_DynamicGPUDescriptorAllocator[2];
469 FixedBlockMemoryAllocator m_CmdListAllocator;
471 std::vector<std::pair<Uint64, RefCntAutoPtr<IFence>>> m_PendingFences;
473 struct MappedTextureKey
475 TextureD3D12Impl*
const Texture;
476 UINT
const Subresource;
478 bool operator==(
const MappedTextureKey& rhs)
const
480 return Texture == rhs.Texture && Subresource == rhs.Subresource;
490 std::unordered_map<MappedTextureKey, TextureUploadSpace, MappedTextureKey::Hasher> m_MappedTextures;
492 Int32 m_ActiveQueriesCounter = 0;
494 std::vector<OptimizedClearValue> m_AttachmentClearValues;
496 std::vector<D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS> m_AttachmentResolveInfo;
MAP_FLAGS
Special map flags.
Definition: GraphicsTypes.h:227
virtual void DispatchComputeIndirect(const DispatchComputeIndirectAttribs &Attribs, IBuffer *pAttribsBuffer) override final
Implementation of IDeviceContext::DispatchComputeIndirect() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:758
virtual void UpdateSBT(IShaderBindingTable *pSBT, const UpdateIndirectRTBufferAttribs *pUpdateIndirectBufferAttribs) override final
Implementation of IDeviceContext::UpdateSBT() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2714
DeviceContextD3D12Impl(IReferenceCounters *pRefCounters, RenderDeviceD3D12Impl *pDevice, bool bIsDeferred, const EngineD3D12CreateInfo &EngineCI, Uint32 ContextId, Uint32 CommandQueueId)
Definition: DeviceContextD3D12Impl.cpp:63
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:44
const Uint32 m_ContextId
Definition: DeviceContextNextGenBase.hpp:110
void CopyTextureRegion(class TextureD3D12Impl *pSrcTexture, Uint32 SrcSubResIndex, const D3D12_BOX *pD3D12SrcBox, RESOURCE_STATE_TRANSITION_MODE SrcTextureTransitionMode, class TextureD3D12Impl *pDstTexture, Uint32 DstSubResIndex, Uint32 DstX, Uint32 DstY, Uint32 DstZ, RESOURCE_STATE_TRANSITION_MODE DstTextureTransitionMode)
Definition: DeviceContextD3D12Impl.cpp:1682
virtual void SetScissorRects(Uint32 NumRects, const Rect *pRects, Uint32 RTWidth, Uint32 RTHeight) override final
Implementation of IDeviceContext::SetScissorRects() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1077
void * PVoid
Definition: BasicTypes.h:56
virtual void ClearRenderTarget(ITextureView *pView, const float *RGBA, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode) override final
Implementation of IDeviceContext::ClearRenderTarget() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:799
size_t operator()(const MappedTextureKey &Key) const
Definition: DeviceContextD3D12Impl.hpp:484
This structure is used by IDeviceContext::UpdateSBT().
Definition: DeviceContext.h:1303
This structure is used by IDeviceContext::TraceRaysIndirect().
Definition: DeviceContext.h:1284
Shader resource binding interface.
Definition: ShaderResourceBinding.h:58
virtual void SignalFence(IFence *pFence, Uint64 Value) override final
Implementation of IDeviceContext::SignalFence() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2127
virtual void FinishCommandList(class ICommandList **ppCommandList) override final
Implementation of IDeviceContext::FinishCommandList() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2102
virtual void SetPipelineState(IPipelineState *pPipelineState) override final
Implementation of IDeviceContext::SetPipelineState() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:198
Definition: CommandContext.hpp:255
This structure is used by IDeviceContext::TraceRays().
Definition: DeviceContext.h:1267
virtual void DrawIndexed(const DrawIndexedAttribs &Attribs) override final
Implementation of IDeviceContext::DrawIndexed() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:609
virtual void UnmapTextureSubresource(ITexture *pTexture, Uint32 MipLevel, Uint32 ArraySlice) override final
Implementation of IDeviceContext::UnmapTextureSubresource() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2032
BeginRenderPass command attributes.
Definition: DeviceContext.h:731
virtual void NextSubpass() override final
Implementation of IDeviceContext::NextSubpass() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1404
Shader binding table interface.
Definition: ShaderBindingTable.h:93
virtual void ResolveTextureSubresource(ITexture *pSrcTexture, ITexture *pDstTexture, const ResolveTextureSubresourceAttribs &ResolveAttribs) override final
Implementation of IDeviceContext::ResolveTextureSubresource() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2308
Defines the mesh indirect draw count command attributes.
Definition: DeviceContext.h:440
Pipeline state interface.
Definition: PipelineState.h:505
virtual void SetIndexBuffer(IBuffer *pIndexBuffer, Uint32 ByteOffset, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode) override final
Implementation of IDeviceContext::SetIndexBuffer() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:987
RESOURCE_STATE_TRANSITION_MODE
Defines resource state transition mode performed by various commands.
Definition: DeviceContext.h:136
virtual void ExecuteCommandLists(Uint32 NumCommandLists, ICommandList *const *ppCommandLists) override final
Implementation of IDeviceContext::ExecuteCommandLists() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2113
Uint32 Flags
Definition: DXBCUtils.cpp:71
CLEAR_DEPTH_STENCIL_FLAGS
Defines which parts of the depth-stencil buffer to clear.
Definition: DeviceContext.h:483
virtual void TransitionShaderResources(IPipelineState *pPipelineState, IShaderResourceBinding *pShaderResourceBinding) override final
Implementation of IDeviceContext::TransitionShaderResources() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:362
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
virtual void CopyBuffer(IBuffer *pSrcBuffer, Uint32 SrcOffset, RESOURCE_STATE_TRANSITION_MODE SrcBufferTransitionMode, IBuffer *pDstBuffer, Uint32 DstOffset, Uint32 Size, RESOURCE_STATE_TRANSITION_MODE DstBufferTransitionMode) override final
Implementation of IDeviceContext::CopyBuffer() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1461
virtual void BeginRenderPass(const BeginRenderPassAttribs &Attribs) override final
Implementation of IDeviceContext::BeginRenderPass() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1392
PIPELINE_TYPE
Pipeline type.
Definition: PipelineState.h:295
virtual ID3D12GraphicsCommandList * GetD3D12CommandList() override final
Implementation of IDeviceContextD3D12::ID3D12GraphicsCommandList() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2301
This structure is used by IDeviceContext::WriteBLASCompactedSize().
Definition: DeviceContext.h:1217
virtual void WriteTLASCompactedSize(const WriteTLASCompactedSizeAttribs &Attribs) override final
Implementation of IDeviceContext::WriteTLASCompactedSize() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2656
virtual void CommitShaderResources(IShaderResourceBinding *pShaderResourceBinding, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode) override final
Implementation of IDeviceContext::CommitShaderResources() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:374
virtual void Draw(const DrawAttribs &Attribs) override final
Implementation of IDeviceContext::Draw() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:599
virtual void UpdateBuffer(IBuffer *pBuffer, Uint32 Offset, Uint32 Size, const void *pData, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode) override final
Implementation of IDeviceContext::UpdateBuffer() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1443
This structure is used by IDeviceContext::WriteTLASCompactedSize().
Definition: DeviceContext.h:1242
virtual void DrawMeshIndirectCount(const DrawMeshIndirectCountAttribs &Attribs, IBuffer *pAttribsBuffer, IBuffer *pCountBuffer) override final
Implementation of IDeviceContext::DrawMeshIndirectCount() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:700
D3D12DynamicAllocation AllocateDynamicSpace(size_t NumBytes, size_t Alignment)
Definition: DeviceContextD3D12Impl.cpp:1421
virtual void TraceRaysIndirect(const TraceRaysIndirectAttribs &Attribs, IBuffer *pAttribsBuffer) override final
Implementation of IDeviceContext::TraceRaysIndirect() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2699
bool operator==(const Plane3D &p1, const Plane3D &p2)
Definition: AdvancedMath.hpp:442
Texture view interface.
Definition: TextureView.h:202
void UpdateBufferRegion(class BufferD3D12Impl *pBuffD3D12, D3D12DynamicAllocation &Allocation, Uint64 DstOffset, Uint64 NumBytes, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode)
Definition: DeviceContextD3D12Impl.cpp:1426
virtual void TransitionTextureState(ITexture *pTexture, D3D12_RESOURCE_STATES State) override final
Implementation of IDeviceContext::TransitionTextureState() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2285
Defines the mesh draw command attributes.
Definition: DeviceContext.h:376
virtual void MapTextureSubresource(ITexture *pTexture, Uint32 MipLevel, Uint32 ArraySlice, MAP_TYPE MapType, MAP_FLAGS MapFlags, const Box *pMapRegion, MappedTextureSubresource &MappedData) override final
Implementation of IDeviceContext::MapTextureSubresource() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1941
@ VT_UNDEFINED
Undefined type.
Definition: GraphicsTypes.h:51
virtual void WriteBLASCompactedSize(const WriteBLASCompactedSizeAttribs &Attribs) override final
Implementation of IDeviceContext::WriteBLASCompactedSize() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2632
Box.
Definition: GraphicsTypes.h:2407
Definition: Texture.h:245
Definition: CommandContext.hpp:274
virtual void MapBuffer(IBuffer *pBuffer, MAP_TYPE MapType, MAP_FLAGS MapFlags, PVoid &pMappedData) override final
Implementation of IDeviceContext::MapBuffer() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1491
Swap chain implementation in Direct3D12 backend.
Definition: SwapChainD3D12Impl.hpp:41
virtual void WaitForFence(IFence *pFence, Uint64 Value, bool FlushContext) override final
Implementation of IDeviceContext::WaitForFence() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2133
virtual void EndQuery(IQuery *pQuery) override final
Implementation of IDeviceContext::EndQuery() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2167
Implementation of a texture object in Direct3D12 backend.
Definition: TextureD3D12Impl.hpp:42
Buffer interface.
Definition: Buffer.h:187
Definition: CommandContext.hpp:66
virtual void CopyBLAS(const CopyBLASAttribs &Attribs) override final
Implementation of IDeviceContext::CopyBLAS() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2585
Bottom-level acceleration structure object implementation in Direct3D12 backend.
Definition: BottomLevelASD3D12Impl.hpp:41
virtual void DrawMesh(const DrawMeshAttribs &Attribs) override final
Implementation of IDeviceContext::DrawMesh() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:673
virtual void UnmapBuffer(IBuffer *pBuffer, MAP_TYPE MapType) override final
Implementation of IDeviceContext::UnmapBuffer() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1566
int32_t Int32
32-bit signed integer
Definition: BasicTypes.h:46
Buffer object implementation in Direct3D12 backend.
Definition: BufferD3D12Impl.hpp:44
Resource state transition barrier description.
Definition: DeviceContext.h:1333
Render device implementation in Direct3D12 backend.
Definition: RenderDeviceD3D12Impl.hpp:70
Command list interface.
Definition: CommandList.h:48
virtual void BuildBLAS(const BuildBLASAttribs &Attribs) override final
Implementation of IDeviceContext::BuildBLAS() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2346
virtual void CopyTexture(const CopyTextureAttribs &CopyAttribs) override final
Implementation of IDeviceContext::CopyTexture() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1653
SET_VERTEX_BUFFERS_FLAGS
Defines allowed flags for IDeviceContext::SetVertexBuffers() function.
Definition: DeviceContext.h:578
~DeviceContextD3D12Impl()
Definition: DeviceContextD3D12Impl.cpp:149
Describes multi-sampled texture resolve command arguments.
Definition: DeviceContext.h:549
struct Box Box
Definition: GraphicsTypes.h:2440
Describes dispatch command arguments.
Definition: DeviceContext.h:523
virtual void FinishFrame() override final
Implementation of IDeviceContext::FinishFrame() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:900
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:49
Defines the indexed indirect draw command attributes.
Definition: DeviceContext.h:330
#define IMPLEMENT_QUERY_INTERFACE_IN_PLACE(InterfaceID, ParentClassName)
Definition: ObjectBase.hpp:59
virtual void TraceRays(const TraceRaysAttribs &Attribs) override final
Implementation of IDeviceContext::TraceRays() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2680
Attributes specific to D3D12 engine.
Definition: GraphicsTypes.h:2099
#define DILIGENT_CALL_TYPE
Definition: CommonDefinitions.h:45
This structure is used by IDeviceContext::BuildTLAS().
Definition: DeviceContext.h:1082
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
Defines the mesh indirect draw command attributes.
Definition: DeviceContext.h:402
std::size_t ComputeHash(const ArgsType &... Args)
Definition: HashUtils.hpp:57
Describes the viewport.
Definition: DeviceContext.h:593
Describes dispatch command arguments.
Definition: DeviceContext.h:500
Uint32 GetContextId() const
Definition: DeviceContextD3D12Impl.hpp:338
This structure is used by IDeviceContext::BuildBLAS().
Definition: DeviceContext.h:925
This structure is used by IDeviceContext::CopyBLAS().
Definition: DeviceContext.h:1159
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:328
virtual void DrawIndirect(const DrawIndirectAttribs &Attribs, IBuffer *pAttribsBuffer) override final
Implementation of IDeviceContext::DrawIndirect() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:641
Definition: DeviceContextD3D12Impl.hpp:482
virtual void ClearDepthStencil(ITextureView *pView, CLEAR_DEPTH_STENCIL_FLAGS ClearFlags, float fDepth, Uint8 Stencil, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode) override final
Implementation of IDeviceContext::ClearDepthStencil() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:774
Defines the indirect draw command attributes.
Definition: DeviceContext.h:291
virtual void TransitionBufferState(IBuffer *pBuffer, D3D12_RESOURCE_STATES State) override final
Implementation of IDeviceContext::TransitionBufferState() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2293
DRAW_FLAGS
Draw command flags.
Definition: DeviceContext.h:68
This structure is used by IDeviceContext::CopyTLAS().
Definition: DeviceContext.h:1188
Fence interface.
Definition: Fence.h:62
Defines the indexed draw command attributes.
Definition: DeviceContext.h:224
Device context implementation in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.hpp:59
Query interface.
Definition: Query.h:177
virtual void DrawIndexedIndirect(const DrawIndexedIndirectAttribs &Attribs, IBuffer *pAttribsBuffer) override final
Implementation of IDeviceContext::DrawIndexedIndirect() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:657
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:53
virtual void BeginQuery(IQuery *pQuery) override final
Implementation of IDeviceContext::BeginQuery() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2149
virtual void SetStencilRef(Uint32 StencilRef) override final
Implementation of IDeviceContext::SetStencilRef() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:433
Describes the rectangle.
Definition: DeviceContext.h:642
virtual void WaitForIdle() override final
Implementation of IDeviceContext::WaitForIdle() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2142
virtual void SetVertexBuffers(Uint32 StartSlot, Uint32 NumBuffersSet, IBuffer **ppBuffers, Uint32 *pOffsets, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode, SET_VERTEX_BUFFERS_FLAGS Flags) override final
Implementation of IDeviceContext::SetVertexBuffers() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:956
virtual void BuildTLAS(const BuildTLASAttribs &Attribs) override final
Implementation of IDeviceContext::BuildTLAS() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2497
virtual void EndRenderPass() override final
Implementation of IDeviceContext::EndRenderPass() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1413
Defines the draw command attributes.
Definition: DeviceContext.h:169
virtual void DispatchCompute(const DispatchComputeAttribs &Attribs) override final
Implementation of IDeviceContext::DispatchCompute() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:748
Definition: D3D12DynamicHeap.hpp:40
Base implementation of the device context for next-generation backends.
Definition: DeviceContextNextGenBase.hpp:44
RESOURCE_STATE
Resource usage state.
Definition: GraphicsTypes.h:2814
virtual void DrawMeshIndirect(const DrawMeshIndirectAttribs &Attribs, IBuffer *pAttribsBuffer) override final
Implementation of IDeviceContext::DrawMeshIndirect() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:684
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:206
Defines copy texture command attributes.
Definition: DeviceContext.h:672
virtual void GenerateMips(ITextureView *pTexView) override final
Definition: DeviceContextD3D12Impl.cpp:2091
Top-level acceleration structure object implementation in Direct3D12 backend.
Definition: TopLevelASD3D12Impl.hpp:43
virtual void SetBlendFactors(const float *pBlendFactors=nullptr) override final
Implementation of IDeviceContext::SetBlendFactors() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:441
virtual void TransitionResourceStates(Uint32 BarrierCount, StateTransitionDesc *pResourceBarriers) override final
Implementation of IDeviceContext::TransitionResourceStates() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2185
virtual void UpdateTexture(ITexture *pTexture, Uint32 MipLevel, Uint32 Slice, const Box &DstBox, const TextureSubResData &SubresData, RESOURCE_STATE_TRANSITION_MODE SrcBufferTransitionMode, RESOURCE_STATE_TRANSITION_MODE TextureTransitionMode) override final
Implementation of IDeviceContext::UpdateTexture() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1598
Texture inteface.
Definition: Texture.h:273
virtual void CopyTLAS(const CopyTLASAttribs &Attribs) override final
Implementation of IDeviceContext::CopyTLAS() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:2611
virtual void Flush() override final
Implementation of IDeviceContext::Flush() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:892
void UpdateTextureRegion(const void *pSrcData, Uint32 SrcStride, Uint32 SrcDepthStride, class TextureD3D12Impl &TextureD3D12, Uint32 DstSubResIndex, const Box &DstBox, RESOURCE_STATE_TRANSITION_MODE TextureTransitionMode)
Definition: DeviceContextD3D12Impl.cpp:1898
virtual void SetRenderTargets(Uint32 NumRenderTargets, ITextureView *ppRenderTargets[], ITextureView *pDepthStencil, RESOURCE_STATE_TRANSITION_MODE StateTransitionMode) override final
Implementation of IDeviceContext::SetRenderTargets() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1154
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37
Describes data for one subresource.
Definition: Texture.h:165
size_t GetNumCommandsInCtx() const
Definition: DeviceContextD3D12Impl.hpp:340
virtual void InvalidateState() override final
Implementation of IDeviceContext::InvalidateState() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:976
virtual void SetViewports(Uint32 NumViewports, const Viewport *pViewports, Uint32 RTWidth, Uint32 RTHeight) override final
Implementation of IDeviceContext::SetViewports() in Direct3D12 backend.
Definition: DeviceContextD3D12Impl.cpp:1017