// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "D3D12RHICommon.h" #include "RHIResources.h" #include "D3D12PipelineState.h" class FD3D12Device; class FWorkGraphPipelineStateInitializer; struct FD3D12WorkGraphPipelineState : public FRHIWorkGraphPipelineState { public: UE_NONCOPYABLE(FD3D12WorkGraphPipelineState) FD3D12WorkGraphPipelineState(FD3D12Device* Device, const FWorkGraphPipelineStateInitializer& Initializer); FD3D12Device* Device; #if D3D12_RHI_WORKGRAPHS TRefCountPtr RootSignature; TRefCountPtr StateObject; D3D12_PROGRAM_IDENTIFIER ProgramIdentifier = {}; D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemoryAddressRange = {}; uint32 RootArgStrideInBytes = 0; uint32 MaxRootArgOffset = 0; TArray RootArgOffsets; TMap NodeCountPerName; bool bInitialized = false; D3D12ResourceFrameCounter FrameCounter; #if NV_AFTERMATH TArray> Shaders; #endif // NV_AFTERMATH #endif };