14 #include <vlutil/vlPerformanceStats.h>
20 #include <unordered_map>
35 class DtDynamicLibrary;
39 class DtOsgStatsHandler;
50 ProfilerOverlayStates_OFF = 0,
51 ProfilerOverlayStates_FPS = 1,
52 ProfilerOverlayStates_FULL = 2
55 const int NUM_PAGING_ENTRIES = 4;
64 , clocksThrottleReasons(0)
132 static const int GRAPH_ENTRIES = 180;
150 virtual void updateStats(
DtDe& de, osg::Camera* camera, osg::FrameStamp* frameStamp, osgDB::DatabasePager* databasePager,
int mipthreads);
153 virtual void createUI(osg::RenderInfo& renderInfo,
DtDe& de,
unsigned int state);
156 virtual int getNumberOf60HtzFrames();
159 virtual float getGoodFrameDuration();
162 virtual int getNumberOfBlownFrames();
165 virtual float getBlownFrameDuration();
168 virtual int getNumberOfVeryBlownFrames();
171 virtual float getVeryBlownFrameDuration();
174 virtual void reset();
180 virtual void updateGpuStats(
DtDe& de);
184 virtual void addIntStat(
const std::string& name,
int value);
188 virtual void addFloatStat(
const std::string& name,
float value);
192 virtual void addIntStat(
const std::string& subsystem,
const std::string& name,
int value);
196 virtual void addFloatStat(
const std::string& subsystem,
const std::string& name,
float value);
199 float getLastCullTime();
202 float getLastUpdateTime();
205 float getLastDrawTime();
208 float getLastGpuTime();
215 virtual void printOsgTextures(
void);
218 void printOsgEarthGLMemory(
void);
221 virtual void printVrvTextures(
void);
224 virtual void printVrvBuffers(
void);
227 virtual void printTextureBreaksup(
const std::unordered_map<unsigned int, int>& textures);
230 virtual void updateVrvGpuArenaStats(
DtDe& de);
233 virtual void createVrvGpuArenaStats();
240 PagingTime() : myPagingTime(0.0f), myPagingFrameCount(0) { ; }
241 PagingTime(
float pagingTime,
int count) : myPagingTime(pagingTime), myPagingFrameCount(count) { ; }
257 float myHistogramData[25];
258 float myBlownHistogramData[5];
261 float myFrameTimeArray[GRAPH_ENTRIES];
262 float myCullTimeArray[GRAPH_ENTRIES];
263 float myUpdateTimeArray[GRAPH_ENTRIES];
264 float myDrawTimeArray[GRAPH_ENTRIES];
265 float myGpuTimeArray[GRAPH_ENTRIES];
266 float my8ms[GRAPH_ENTRIES];
267 float my16ms[GRAPH_ENTRIES];
268 float my33ms[GRAPH_ENTRIES];
Profile node class stores timing data for a profiled section.
Definition: DtProfileNode.h:22
int myStateGraphCount
Definition: DtImGuiLoaderStatsData.h:113
int myCurrentIndex
Definition: DtImGuiLoaderStatsData.h:259
DtDynamicLibrary * myGpuPlugin
Definition: DtImGuiLoaderStatsData.h:288
std::map< std::string, float > floatStats
Definition: DtImGuiLoaderStatsData.h:282
int myLineCount
Definition: DtImGuiLoaderStatsData.h:121
Definition: DtImGuiLoaderStatsData.h:57
bool myEnableOsgCameraStats
Definition: DtImGuiLoaderStatsData.h:249
Structure for holding the stats from the osg camera rendering stats.
Definition: DtImGuiLoaderStatsData.h:108
GPUData myGpuState
Definition: DtImGuiLoaderStatsData.h:286
float myPagingTime
Definition: DtImGuiLoaderStatsData.h:242
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
float myFrameRunningAverage
Definition: DtImGuiLoaderStatsData.h:255
float myTimeSpentUnresponsive
Definition: DtImGuiLoaderStatsData.h:237
std::map< std::string, std::string > myNvidiaSmiLog
Definition: DtImGuiLoaderStatsData.h:287
unsigned int slowdownTemp
Definition: DtImGuiLoaderStatsData.h:72
std::map< std::string, std::vector< OsgObjectData > > myObjectInfoPrevious
Definition: DtImGuiLoaderStatsData.h:275
DatabasePagerData myLastDatabasePagerData
Definition: DtImGuiLoaderStatsData.h:247
std::map< std::string, int > intStats
Definition: DtImGuiLoaderStatsData.h:281
OsgSceneGraphCameraStats myLastOsgCameraStats
Definition: DtImGuiLoaderStatsData.h:248
DtTimedSection myTimedSection
Definition: DtImGuiLoaderStatsData.h:236
std::map< std::string, std::vector< OsgObjectData > > myObjectInfo
Definition: DtImGuiLoaderStatsData.h:274
unsigned int shutdownTemp
Definition: DtImGuiLoaderStatsData.h:71
int myLightCount
Definition: DtImGuiLoaderStatsData.h:110
unsigned long long clocksThrottleReasons
Definition: DtImGuiLoaderStatsData.h:74
std::map< std::string, std::vector< OsgObjectData > > myObjectsInBoth
Definition: DtImGuiLoaderStatsData.h:276
unsigned int maxTemp
Definition: DtImGuiLoaderStatsData.h:73
int myQuadStripCount
Definition: DtImGuiLoaderStatsData.h:128
int myTriangleCount
Definition: DtImGuiLoaderStatsData.h:124
int myPolygonCount
Definition: DtImGuiLoaderStatsData.h:129
osg::Object * myObject
Definition: DtImGuiLoaderStatsData.h:83
int myVertexCount
Definition: DtImGuiLoaderStatsData.h:118
DtOsgStatsHandler * myStats
Definition: DtImGuiLoaderStatsData.h:270
class that gathers per frame stats and puts up UI
Definition: DtImGuiLoaderStatsData.h:44
int mySamples
Definition: DtImGuiLoaderStatsData.h:250
int myLineStripCount
Definition: DtImGuiLoaderStatsData.h:122
int myQuadCount
Definition: DtImGuiLoaderStatsData.h:127
int myTriFanCount
Definition: DtImGuiLoaderStatsData.h:126
float myMaxFrameTime
Definition: DtImGuiLoaderStatsData.h:254
int myDDSThreads
Definition: DtImGuiLoaderStatsData.h:269
DtDe & myDe
Definition: DtImGuiLoaderStatsData.h:292
float myMaxYAxis
Definition: DtImGuiLoaderStatsData.h:253
int myDepthCount
Definition: DtImGuiLoaderStatsData.h:112
int dllAvailable
Definition: DtImGuiLoaderStatsData.h:76
float myPhase
Definition: DtImGuiLoaderStatsData.h:260
int myPrimitiveSetCount
Definition: DtImGuiLoaderStatsData.h:119
bool myOnlyShowDifferentCounts
Definition: DtImGuiLoaderStatsData.h:277
int myBinCount
Definition: DtImGuiLoaderStatsData.h:111
bool myEnableObjectProfiling
Definition: DtImGuiLoaderStatsData.h:273
unsigned int temp
Definition: DtImGuiLoaderStatsData.h:70
int myTriStripCount
Definition: DtImGuiLoaderStatsData.h:125
float myFrameDuration
Definition: DtImGuiLoaderStatsData.h:252
bool myAutoResetEnabled
Definition: DtImGuiLoaderStatsData.h:279
int myIndirectGpuOneTimeOpsRemaining
Definition: DtImGuiLoaderStatsData.h:293
float myFrameRunningAverageMax
Definition: DtImGuiLoaderStatsData.h:256
GPUData()
Definition: DtImGuiLoaderStatsData.h:59
std::map< std::string, intStats > myIntStats
Definition: DtImGuiLoaderStatsData.h:283
PPP: 10/2021:
Definition: DtOsgStatsHandler.h:51
int myFastDrawableCount
Definition: DtImGuiLoaderStatsData.h:117
float myRefreshTime
Definition: DtImGuiLoaderStatsData.h:251
int myRefCount
Definition: DtImGuiLoaderStatsData.h:86
Definition: DtImGuiLoaderStatsData.h:238
Contains DLL export macros.
std::deque< PagingTime > myPagingTimeArray
Definition: DtImGuiLoaderStatsData.h:245
Definition: DtImGuiLoaderStatsData.h:79
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
PagingTime(float pagingTime, int count)
Definition: DtImGuiLoaderStatsData.h:241
PagingTime()
Definition: DtImGuiLoaderStatsData.h:240
int myDrawableCount
Definition: DtImGuiLoaderStatsData.h:115
int myPointCount
Definition: DtImGuiLoaderStatsData.h:120
std::string myClassName
Definition: DtImGuiLoaderStatsData.h:84
int myImposterCount
Definition: DtImGuiLoaderStatsData.h:114
int myPagingFrameCount
Definition: DtImGuiLoaderStatsData.h:243
virtual void setStatsHandler(DtOsgStatsHandler *stats)
gui handler
Definition: DtImGuiLoaderStatsData.h:177
int pState
Definition: DtImGuiLoaderStatsData.h:75
ProfilerOverlayStates
Definition: DtImGuiLoaderStatsData.h:48
int myLineLoopCount
Definition: DtImGuiLoaderStatsData.h:123
std::map< std::string, floatStats > myFloatStats
Definition: DtImGuiLoaderStatsData.h:284
int mySortedDrawableCount
Definition: DtImGuiLoaderStatsData.h:116
int myIndirectGpuBufferUpdatesRemaining
Definition: DtImGuiLoaderStatsData.h:294
std::string myName
Definition: DtImGuiLoaderStatsData.h:85
addProc myAddGpuImguiUI
Definition: DtImGuiLoaderStatsData.h:290