29#if CAN_TOGGLE_COMMAND_LIST_BYPASS
77 CmdPtr = CmdList.
Root;
115 : RHICmdList(RHICmdList)
116 ,
Previous(RHICmdList.PersistentState.CurrentFenceScope)
133 : RHICmdList(RHICmdList)
151 : RHICmdList(RHICmdList)
166#if WITH_RHI_BREADCRUMBS
168 namespace UE::RHI::Breadcrumbs::Private
177 return Node ? Node->GetFullPath() :
TEXT(
"NoBreadcrumb");
184 TDesc const* Desc = std::get<0>(Args);
190 return std::apply([&](
auto&&... Values)
193 }, std::get<1>(Args));
202 : RHICmdList(RHICmdList)
208 RHICmdList.BeginBreadcrumbCPU(Node,
true);
212 RHICmdList.BeginBreadcrumbGPU(Node,
Pipeline);
217 inline FRHIBreadcrumbScope::~FRHIBreadcrumbScope()
223 RHICmdList.EndBreadcrumbGPU(Node,
Pipeline);
226 RHICmdList.EndBreadcrumbCPU(Node,
true);
234 ,
Pipeline(RHICmdList.GetPipeline())
243 RHICmdList.BeginBreadcrumbCPU(Node.Get(),
true);
244 RHICmdList.BeginBreadcrumbGPU(Node.Get(), RHICmdList.
GetPipeline());
249 checkf(Node,
TEXT(
"Manual breadcrumb was already ended."));
259 RHICmdList.EndBreadcrumbGPU(Node.Get(), RHICmdList.
GetPipeline());
260 RHICmdList.EndBreadcrumbCPU(Node.Get(),
true);
264 inline FRHIBreadcrumbEventManual::~FRHIBreadcrumbEventManual()
266 checkf(!Node,
TEXT(
"Manual breadcrumb was destructed before it was ended."));
271template <
typename RHICmdListType,
typename LAMBDA>
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ InPlace
Definition CoreMiscDefines.h:162
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define TRACE_CPUPROFILER_EVENT_SCOPE_TEXT_ON_CHANNEL(Name, Channel)
Definition CpuProfilerTrace.h:534
UE::EnumFlags::Private::TRange< EnumType > MakeFlagsRange(EnumType Flags)
Definition EnumRange.h:285
RHI_API FRHICommandListExecutor GRHICommandList
Definition RHICommandList.cpp:119
bool IsRunningRHIInSeparateThread()
Definition RHICommandList.h:159
ERHIPipeline
Definition RHIPipeline.h:13
FString GetRHIPipelineName(ERHIPipeline Pipeline)
Definition RHIStrings.cpp:512
CORE_API bool IsInRenderingThread()
Definition ThreadingBase.cpp:273
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
if(Failed) console_printf("Failed.\n")
Definition RHICommandList.h:455
bool SetAllowExtraTransitions(bool NewState)
Definition RHICommandList.h:1229
struct FRHICommandListBase::FPersistentState PersistentState
ERHIPipeline GetPipeline() const
Definition RHICommandList.h:675
uint32 NumCommands
Definition RHICommandList.h:1353
RHI_API FGraphEventRef RHIThreadFence(bool bSetLockFence=false)
Definition RHICommandList.cpp:1610
FRHICommandListImmediate & GetAsImmediate()
Definition RHICommandList.inl:21
FRHIContextArray Contexts
Definition RHICommandList.h:1351
bool Bypass() const
Definition RHICommandList.inl:27
FRHICommandBase * Root
Definition RHICommandList.h:1337
void ReplaceResources(TArray< FRHIResourceReplaceInfo > &&ReplaceInfos)
Definition RHICommandList.h:1165
bool IsImmediate() const
Definition RHICommandList.inl:16
RHI_API ERHIPipeline SwitchPipeline(ERHIPipeline Pipeline)
Definition RHICommandList.cpp:510
Definition RHICommandList.h:5284
bool Bypass() const
Definition RHICommandList.h:5309
Definition RHICommandList.inl:73
FRHICommandListIterator(FRHICommandListBase &CmdList)
Definition RHICommandList.inl:75
~FRHICommandListIterator()
Definition RHICommandList.inl:83
FRHICommandBase * NextCommand()
Definition RHICommandList.inl:95
bool HasCommandsLeft() const
Definition RHICommandList.inl:90
FRHICommandListScopedAllowExtraTransitions(FRHICommandListBase &RHICmdList, bool bAllowExtraTransitions)
Definition RHICommandList.inl:150
~FRHICommandListScopedAllowExtraTransitions()
Definition RHICommandList.inl:156
FRHICommandListScopedFence(FRHICommandListBase &RHICmdList)
Definition RHICommandList.inl:114
~FRHICommandListScopedFence()
Definition RHICommandList.inl:121
~FRHICommandListScopedPipelineGuard()
Definition RHICommandList.inl:142
FRHICommandListScopedPipelineGuard(FRHICommandListBase &RHICmdList)
Definition RHICommandList.inl:132
Definition RHICommandList.h:2735
void SubmitCommandsHint()
Definition RHICommandList.inl:63
Definition RHIResources.h:5541
~FRHIResourceReplaceBatcher()
Definition RHICommandList.inl:161
Definition RHIResources.h:54
Definition RHICommandList.h:4582
FScopedRHIThreadStaller()=delete
~FScopedRHIThreadStaller()
Definition RHICommandList.inl:49
Definition RHIContext.h:257
Definition PipelineStateCache.cpp:26
RHI_API void FlushResources()
Definition PipelineStateCache.cpp:3534
MINIMAL_WINDOWS_API DWORD WINAPI GetCurrentThreadId()
Definition AndroidPlatformTLS.h:16
static uint32 GetCurrentThreadId(void)
Definition AndroidPlatformTLS.h:20
Definition RHICommandList.h:349
FRHICommandBase * Next
Definition RHICommandList.h:350
FRHICommandListScopedFence * CurrentFenceScope
Definition RHICommandList.h:1481
uint8 bImmediate
Definition RHICommandList.h:1472
void ExecuteAndDestruct(FRHICommandListBase &CmdList) override final
Definition RHICommandList.inl:272