VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtImGuiLoaderStatsData.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
14 #include <vlutil/vlPerformanceStats.h>
15 
16 #include <map>
17 #include <string>
18 #include <deque>
19 
20 namespace osg
21 {
22  class RenderInfo;
23  class Camera;
24  class FrameStamp;
25  class Object;
26 }
27 
28 namespace osgDB
29 {
30  class DatabasePager;
31 }
32 
33 class DtDynamicLibrary;
34 
35 namespace makVrv
36 {
37  class DtStatsHandler;
38  class DtProfileNode;
39 
43  {
44  public:
45 
47  {
48  ProfilerOverlayStates_OFF = 0,
49  ProfilerOverlayStates_FPS = 1,
50  ProfilerOverlayStates_FULL = 2
51  };
52 
53  const int NUM_PAGING_ENTRIES = 4;
54 
55  struct GPUData
56  {
58  : temp(0)
59  , shutdownTemp(0)
60  , slowdownTemp(0)
61  , maxTemp(0)
62  , clocksThrottleReasons(0)
63  , dllAvailable(-1)
64  , pState(0)
65  {
66  ;
67  }
68  unsigned int temp;
69  unsigned int shutdownTemp;
70  unsigned int slowdownTemp;
71  unsigned int maxTemp;
72  unsigned long long clocksThrottleReasons;
73  int pState;
75  };
76 
78  {
79  OsgObjectData(osg::Object* object);
80 
81  osg::Object* myObject;
82  std::string myClassName;
83  std::string myName;
85 
86  };
87 
90  {
97  };
98 
101  {
122  };
123 
124  static const int GRAPH_ENTRIES = 180;
125 
127  virtual ~DtImGuiLoaderStatsData();
128 
130  virtual void updateStats(DtDe& de, osg::Camera* camera, osg::FrameStamp *frameStamp, osgDB::DatabasePager* databasePager, int mipthreads);
132  virtual void createUI( osg::RenderInfo& renderInfo, DtDe& de, unsigned int state);
133 
135  virtual int getNumberOf60HtzFrames();
137  virtual float getGoodFrameDuration();
138 
140  virtual int getNumberOfBlownFrames();
142  virtual float getBlownFrameDuration();
143 
145  virtual int getNumberOfVeryBlownFrames();
147  virtual float getVeryBlownFrameDuration();
148 
150  virtual void reset();
151 
153  virtual void setStatsHandler(DtStatsHandler* stats) { myStats = stats; }
154 
156  virtual void updateGpuStats(DtDe& de);
157 
160  virtual void addIntStat(const std::string& name, int value);
163  virtual void addFloatStat(const std::string& name, float value);
164 
167  virtual void addIntStat(const std::string& subsystem, const std::string& name, int value);
170  virtual void addFloatStat(const std::string& subsystem, const std::string& name, float value);
171 
173  float getLastCullTime();
175  float getLastUpdateTime();
177  float getLastDrawTime();
179  float getLastGpuTime();
180 
181  protected:
182  // adds child nodes to tree
183  int treeTraverse(DtProfileNode* node, int depth);
184 
185  protected:
186  DtTimedSection myTimedSection;
188  struct PagingTime
189  {
190  PagingTime() : myPagingTime(0.0f), myPagingFrameCount(0) { ; }
191  PagingTime(float pagingTime, int count) : myPagingTime(pagingTime), myPagingFrameCount(count) { ; }
194  };
195  std::deque<PagingTime> myPagingTimeArray;
196 
203  float myMaxYAxis;
207  float myHistogramData[25];
208  float myBlownHistogramData[5];
210  float myPhase;
211  float myFrameTimeArray[GRAPH_ENTRIES];
212  float myCullTimeArray[GRAPH_ENTRIES];
213  float myUpdateTimeArray[GRAPH_ENTRIES];
214  float myDrawTimeArray[GRAPH_ENTRIES];
215  float myGpuTimeArray[GRAPH_ENTRIES];
216  float my8ms[GRAPH_ENTRIES];
217  float my16ms[GRAPH_ENTRIES];
218  float my33ms[GRAPH_ENTRIES];
221 
222 
224  std::map<std::string, std::vector<OsgObjectData> > myObjectInfo;
225  std::map<std::string, std::vector<OsgObjectData> > myObjectInfoPrevious;
226  std::map<std::string, std::vector<OsgObjectData> > myObjectsInBoth;
228 
230 
231  typedef std::map<std::string, int> intStats;
232  typedef std::map<std::string, float> floatStats;
233  std::map<std::string, intStats> myIntStats;
234  std::map<std::string, floatStats> myFloatStats;
235 
237  std::map<std::string, std::string> myNvidiaSmiLog;
238  DtDynamicLibrary* myGpuPlugin;
239  typedef void(*addProc)(makVrv::DtImGuiLoaderStatsData::GPUData* gpu);
241  };
242 }
Profile node class stores timing data for a profiled section.
Definition: DtProfileNode.h:22
int myStateGraphCount
Definition: DtImGuiLoaderStatsData.h:105
int myCurrentIndex
Definition: DtImGuiLoaderStatsData.h:209
DtDynamicLibrary * myGpuPlugin
Definition: DtImGuiLoaderStatsData.h:238
int myRequestCount
Definition: DtImGuiLoaderStatsData.h:96
std::map< std::string, float > floatStats
Definition: DtImGuiLoaderStatsData.h:232
int myLineCount
Definition: DtImGuiLoaderStatsData.h:113
Definition: DtImGuiLoaderStatsData.h:55
bool myEnableOsgCameraStats
Definition: DtImGuiLoaderStatsData.h:199
Structure for holding the stats from the osg camera rendering stats.
Definition: DtImGuiLoaderStatsData.h:100
GPUData myGpuState
Definition: DtImGuiLoaderStatsData.h:236
float myPagingTime
Definition: DtImGuiLoaderStatsData.h:192
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
float myFrameRunningAverage
Definition: DtImGuiLoaderStatsData.h:205
float myTimeSpentUnresponsive
Definition: DtImGuiLoaderStatsData.h:187
std::map< std::string, std::string > myNvidiaSmiLog
Definition: DtImGuiLoaderStatsData.h:237
unsigned int slowdownTemp
Definition: DtImGuiLoaderStatsData.h:70
std::map< std::string, std::vector< OsgObjectData > > myObjectInfoPrevious
Definition: DtImGuiLoaderStatsData.h:225
DatabasePagerData myLastDatabasePagerData
Definition: DtImGuiLoaderStatsData.h:197
std::map< std::string, int > intStats
Definition: DtImGuiLoaderStatsData.h:231
OsgSceneGraphCameraStats myLastOsgCameraStats
Definition: DtImGuiLoaderStatsData.h:198
DtTimedSection myTimedSection
Definition: DtImGuiLoaderStatsData.h:186
std::map< std::string, std::vector< OsgObjectData > > myObjectInfo
Definition: DtImGuiLoaderStatsData.h:224
unsigned int shutdownTemp
Definition: DtImGuiLoaderStatsData.h:69
int myLightCount
Definition: DtImGuiLoaderStatsData.h:102
unsigned long long clocksThrottleReasons
Definition: DtImGuiLoaderStatsData.h:72
std::map< std::string, std::vector< OsgObjectData > > myObjectsInBoth
Definition: DtImGuiLoaderStatsData.h:226
unsigned int maxTemp
Definition: DtImGuiLoaderStatsData.h:71
int myQuadStripCount
Definition: DtImGuiLoaderStatsData.h:120
int myTriangleCount
Definition: DtImGuiLoaderStatsData.h:116
int myPolygonCount
Definition: DtImGuiLoaderStatsData.h:121
int myMaxPagedLods
Definition: DtImGuiLoaderStatsData.h:92
osg::Object * myObject
Definition: DtImGuiLoaderStatsData.h:81
int myVertexCount
Definition: DtImGuiLoaderStatsData.h:110
DtStatsHandler * myStats
Definition: DtImGuiLoaderStatsData.h:220
class that gathers per frame stats and puts up UI
Definition: DtImGuiLoaderStatsData.h:42
int mySamples
Definition: DtImGuiLoaderStatsData.h:200
int myLineStripCount
Definition: DtImGuiLoaderStatsData.h:114
int myQuadCount
Definition: DtImGuiLoaderStatsData.h:119
int myTriFanCount
Definition: DtImGuiLoaderStatsData.h:118
float myMaxFrameTime
Definition: DtImGuiLoaderStatsData.h:204
float myMaxYAxis
Definition: DtImGuiLoaderStatsData.h:203
int myDepthCount
Definition: DtImGuiLoaderStatsData.h:104
int dllAvailable
Definition: DtImGuiLoaderStatsData.h:74
float myPhase
Definition: DtImGuiLoaderStatsData.h:210
int myPrimitiveSetCount
Definition: DtImGuiLoaderStatsData.h:111
bool myOnlyShowDifferentCounts
Definition: DtImGuiLoaderStatsData.h:227
int myBinCount
Definition: DtImGuiLoaderStatsData.h:103
virtual void setStatsHandler(DtStatsHandler *stats)
gui handler
Definition: DtImGuiLoaderStatsData.h:153
bool myEnableObjectProfiling
Definition: DtImGuiLoaderStatsData.h:223
unsigned int temp
Definition: DtImGuiLoaderStatsData.h:68
int myTriStripCount
Definition: DtImGuiLoaderStatsData.h:117
int myActivePagedLods
Definition: DtImGuiLoaderStatsData.h:93
float myFrameDuration
Definition: DtImGuiLoaderStatsData.h:202
bool myAutoResetEnabled
Definition: DtImGuiLoaderStatsData.h:229
float myFrameRunningAverageMax
Definition: DtImGuiLoaderStatsData.h:206
int myToMergeCount
Definition: DtImGuiLoaderStatsData.h:94
GPUData()
Definition: DtImGuiLoaderStatsData.h:57
std::map< std::string, intStats > myIntStats
Definition: DtImGuiLoaderStatsData.h:233
int myFastDrawableCount
Definition: DtImGuiLoaderStatsData.h:109
int myToCompileCount
Definition: DtImGuiLoaderStatsData.h:95
float myRefreshTime
Definition: DtImGuiLoaderStatsData.h:201
float myDDSThreads
Definition: DtImGuiLoaderStatsData.h:219
int myRefCount
Definition: DtImGuiLoaderStatsData.h:84
Definition: DtImGuiLoaderStatsData.h:188
Contains DLL export macros.
std::deque< PagingTime > myPagingTimeArray
Definition: DtImGuiLoaderStatsData.h:195
Structure for holding the stats from the osg database pager.
Definition: DtImGuiLoaderStatsData.h:89
Definition: DtImGuiLoaderStatsData.h:77
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
PagingTime(float pagingTime, int count)
Definition: DtImGuiLoaderStatsData.h:191
PagingTime()
Definition: DtImGuiLoaderStatsData.h:190
osgViewer::StatsHandler derived class used to fix a few problems that class has in VR-Vantage More sp...
Definition: DtStatsHandlerManager.h:53
int myDrawableCount
Definition: DtImGuiLoaderStatsData.h:107
int myPointCount
Definition: DtImGuiLoaderStatsData.h:112
std::string myClassName
Definition: DtImGuiLoaderStatsData.h:82
int myImposterCount
Definition: DtImGuiLoaderStatsData.h:106
int myPagingFrameCount
Definition: DtImGuiLoaderStatsData.h:193
int pState
Definition: DtImGuiLoaderStatsData.h:73
ProfilerOverlayStates
Definition: DtImGuiLoaderStatsData.h:46
int myLineLoopCount
Definition: DtImGuiLoaderStatsData.h:115
std::map< std::string, floatStats > myFloatStats
Definition: DtImGuiLoaderStatsData.h:234
int mySortedDrawableCount
Definition: DtImGuiLoaderStatsData.h:108
std::string myName
Definition: DtImGuiLoaderStatsData.h:83
int myPagingThreads
Definition: DtImGuiLoaderStatsData.h:91
addProc myAddGpuImguiUI
Definition: DtImGuiLoaderStatsData.h:240

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)