32 Q_PROPERTY(
float frameTime READ frameTime NOTIFY frameTimeChanged)
33 Q_PROPERTY(
float renderTime READ renderTime NOTIFY renderTimeChanged)
34 Q_PROPERTY(
float renderPrepareTime READ renderPrepareTime NOTIFY renderTimeChanged)
35 Q_PROPERTY(
float syncTime READ syncTime NOTIFY syncTimeChanged)
36 Q_PROPERTY(
float maxFrameTime READ maxFrameTime NOTIFY maxFrameTimeChanged)
38 Q_PROPERTY(
bool extendedDataCollectionEnabled READ extendedDataCollectionEnabled WRITE setExtendedDataCollectionEnabled NOTIFY extendedDataCollectionEnabledChanged)
43 Q_PROPERTY(
int renderPassCount READ renderPassCount NOTIFY renderPassCountChanged)
44 Q_PROPERTY(
QString renderPassDetails READ renderPassDetails NOTIFY renderPassDetailsChanged)
47 Q_PROPERTY(
int pipelineCount READ pipelineCount NOTIFY pipelineCountChanged)
48 Q_PROPERTY(
qint64 materialGenerationTime READ materialGenerationTime NOTIFY materialGenerationTimeChanged)
49 Q_PROPERTY(
qint64 effectGenerationTime READ effectGenerationTime NOTIFY effectGenerationTimeChanged)
50 Q_PROPERTY(
qint64 pipelineCreationTime READ pipelineCreationTime NOTIFY pipelineCreationTimeChanged)
54 Q_PROPERTY(
float lastCompletedGpuTime READ lastCompletedGpuTime NOTIFY lastCompletedGpuTimeChanged)
60 float frameTime() const;
61 float renderTime() const;
62 float renderPrepareTime() const;
63 float syncTime() const;
64 float maxFrameTime() const;
70 void startRenderPrepare();
71 void endRenderPrepare();
76 bool extendedDataCollectionEnabled() const;
77 void setExtendedDataCollectionEnabled(
bool enable);
80 quint64 drawVertexCount() const;
83 int renderPassCount() const;
84 QString renderPassDetails() const;
87 int pipelineCount() const;
88 qint64 materialGenerationTime() const;
89 qint64 effectGenerationTime() const;
90 qint64 pipelineCreationTime() const;
93 QString graphicsApiName() const;
94 float lastCompletedGpuTime() const;
102 void frameTimeChanged();
103 void renderTimeChanged();
104 void syncTimeChanged();
105 void maxFrameTimeChanged();
106 void extendedDataCollectionEnabledChanged();
107 void drawCallCountChanged();
108 void drawVertexCountChanged();
109 void imageDataSizeChanged();
110 void meshDataSizeChanged();
111 void renderPassCountChanged();
112 void renderPassDetailsChanged();
113 void textureDetailsChanged();
114 void meshDetailsChanged();
115 void pipelineCountChanged();
116 void materialGenerationTimeChanged();
117 void effectGenerationTimeChanged();
118 void pipelineCreationTimeChanged();
119 void vmemAllocCountChanged();
120 void vmemUsedBytesChanged();
121 void graphicsApiNameChanged();
122 void lastCompletedGpuTimeChanged();
125 void onFrameSwapped();
128 float timestamp() const;
129 void processRhiContextStats();
130 void notifyRhiContextStats();
133 int m_frameCount = 0;
134 float m_secTimer = 0;
135 float m_notifyTimer = 0;
136 float m_renderStartTime = 0;
137 float m_renderPrepareStartTime = 0;
138 float m_syncStartTime = 0;
140 float m_internalMaxFrameTime = 0;
141 float m_maxFrameTime = 0;
147 float renderTime = 0;
148 float renderPrepareTime = 0;
150 float lastCompletedGpuTime = 0;
155 int renderPassCount = 0;
159 QSet<QRhiTexture *> activeTextures;
160 QSet<QSSGRenderMesh *> activeMeshes;
161 int pipelineCount = 0;
162 qint64 materialGenerationTime = 0;
163 qint64 effectGenerationTime = 0;
168 Results m_notifiedResults;
170 bool m_extendedDataCollectionEnabled =
false;
174 bool m_renderingThisFrame =
false;