9#include "Containers/Queue.h"
17#if (RHI_NEW_GPU_PROFILER == 0)
29 , bEndTimestampIssued(
false)
66 check(bEndTimestampIssued);
79 void DiscardOldestQuery();
84 static void PlatformStaticInitialize(
void* UserData);
91 bool bEndTimestampIssued;
101 const uint32 MaxPendingQueries = 4;
102 uint32 NumPendingQueries = 0;
104 FPendingQuery* ActiveQuery =
nullptr;
112 FGPUProfilerEventNode(InName,
InParent),
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition VulkanCommandBuffer.h:43
Definition VulkanContext.h:55
Definition VulkanDevice.h:279
Definition VulkanGPUProfiler.h:146
~FVulkanEventNodeFrame()
Definition VulkanGPUProfiler.h:155
virtual float GetRootTimingResults() override final
Definition VulkanUtil.cpp:270
FVulkanEventNodeFrame(FVulkanContextCommon *InContext, FVulkanDevice *InDevice)
Definition VulkanGPUProfiler.h:149
virtual void StartFrame() override final
Definition VulkanUtil.cpp:258
virtual bool PlatformDisablesVSync() const
Definition VulkanGPUProfiler.h:169
virtual void EndFrame() override final
Definition VulkanUtil.cpp:265
FVulkanGPUTiming RootEventTiming
Definition VulkanGPUProfiler.h:172
Definition VulkanGPUProfiler.h:109
FVulkanGPUTiming Timing
Definition VulkanGPUProfiler.h:141
virtual void StartTiming() override final
Definition VulkanGPUProfiler.h:131
virtual void StopTiming() override final
Definition VulkanGPUProfiler.h:136
virtual float GetTiming() override final
Definition VulkanUtil.cpp:284
virtual ~FVulkanEventNode()
Definition VulkanGPUProfiler.h:119
FVulkanEventNode(const TCHAR *InName, FGPUProfilerEventNode *InParent, FVulkanContextCommon *InContext, FVulkanDevice *InDevice)
Definition VulkanGPUProfiler.h:111
Definition VulkanGPUProfiler.h:23
void Release()
Definition VulkanUtil.cpp:114
void StartTiming(FVulkanContextCommon *InContext=nullptr)
Definition VulkanUtil.cpp:121
FVulkanGPUTiming(FVulkanContextCommon *InContext, FVulkanDevice *InDevice)
Definition VulkanGPUProfiler.h:25
uint64 GetTiming(bool bGetCurrentResultsAndBlock=false)
Definition VulkanUtil.cpp:208
static void CalibrateTimers(FVulkanDevice &Device)
Definition VulkanUtil.cpp:88
~FVulkanGPUTiming()
Definition VulkanUtil.cpp:97
bool IsTiming() const
Definition VulkanGPUProfiler.h:70
void EndTiming(FVulkanContextCommon *InContext=nullptr)
Definition VulkanUtil.cpp:157
bool IsComplete() const
Definition VulkanGPUProfiler.h:64
void Initialize(uint32 PoolSize=8)
Definition VulkanUtil.cpp:104
Definition VulkanSubmission.h:54
Definition IndirectArray.h:20
@ false
Definition radaudio_common.h:23
Definition VulkanGPUProfiler.h:180
TIndirectArray< FVulkanEventNodeFrame > GPUHitchEventNodeFrames
Definition VulkanGPUProfiler.h:182
FVulkanDevice * Device
Definition VulkanGPUProfiler.h:200
virtual FGPUProfilerEventNode * CreateEventNode(const TCHAR *InName, FGPUProfilerEventNode *InParent) override final
Definition VulkanGPUProfiler.h:188
void EndFrameBeforeSubmit()
Definition VulkanUtil.cpp:359
FVulkanContextCommon * CmdContext
Definition VulkanGPUProfiler.h:201
void BeginFrame()
Definition VulkanUtil.cpp:311
bool bBeginFrame
Definition VulkanGPUProfiler.h:203
bool bCommandlistSubmitted
Definition VulkanGPUProfiler.h:199
void EndFrame()
Definition VulkanUtil.cpp:381
virtual ~FVulkanGPUProfiler()
Definition VulkanUtil.cpp:307