VR-Forces 4.8 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) 2020 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 
19 namespace osg
20 {
21  class RenderInfo;
22  class Camera;
23  class FrameStamp;
24  class Object;
25 }
26 
27 class DtDynamicLibrary;
28 
29 namespace makVrv
30 {
31  class DtStatsHandler;
32  class DtProfileNode;
33 
37  {
38  public:
39 
40  struct GPUData
41  {
43  : temp(0)
44  , shutdownTemp(0)
45  , slowdownTemp(0)
46  , maxTemp(0)
47  , clocksThrottleReasons(0)
48  , dllAvailable(-1)
49  , pState(0)
50  {
51  ;
52  }
53  unsigned int temp;
54  unsigned int shutdownTemp;
55  unsigned int slowdownTemp;
56  unsigned int maxTemp;
57  unsigned long long clocksThrottleReasons;
58  int pState;
60  };
61 
63  {
64  OsgObjectData(osg::Object* object);
65 
66  osg::Object* myObject;
67  std::string myClassName;
68  std::string myName;
70 
71  };
72 
73  static const int GRAPH_ENTRIES = 180;
74 
76  virtual ~DtImGuiLoaderStatsData();
77 
79  virtual void updateStats(DtDe& de, osg::Camera* camera, osg::FrameStamp *frameStamp, int pagingThreads, int mipthreads);
81  virtual void createUI( osg::RenderInfo& renderInfo, DtDe& de);
82 
84  virtual int getNumberOf60HtzFrames();
86  virtual float getGoodFrameDuration();
87 
89  virtual int getNumberOfBlownFrames();
91  virtual float getBlownFrameDuration();
92 
94  virtual int getNumberOfVeryBlownFrames();
96  virtual float getVeryBlownFrameDuration();
97 
99  virtual void reset();
100 
102  virtual void setStatsHandler(DtStatsHandler* stats) { myStats = stats; }
103 
105  virtual void updateGpuStats(DtDe& de);
106 
109  virtual void addIntStat(const std::string& name, int value);
112  virtual void addFloatStat(const std::string& name, float value);
113 
116  virtual void addIntStat(const std::string& subsystem, const std::string& name, int value);
119  virtual void addFloatStat(const std::string& subsystem, const std::string& name, float value);
120 
122  float getLastCullTime();
124  float getLastUpdateTime();
126  float getLastDrawTime();
128  float getLastGpuTime();
129 
130  protected:
131  // adds child nodes to tree
132  int treeTraverse(DtProfileNode* node, int depth);
133 
134  protected:
135  DtTimedSection myTimedSection;
141 
146  float myMaxYAxis;
150  float myHistogramData[25];
151  float myBlownHistogramData[5];
153  float myPhase;
154  float myFrameTimeArray[GRAPH_ENTRIES];
155  float myCullTimeArray[GRAPH_ENTRIES];
156  float myUpdateTimeArray[GRAPH_ENTRIES];
157  float myDrawTimeArray[GRAPH_ENTRIES];
158  float myGpuTimeArray[GRAPH_ENTRIES];
159  float my8ms[GRAPH_ENTRIES];
160  float my16ms[GRAPH_ENTRIES];
161  float my33ms[GRAPH_ENTRIES];
165 
166 
168  std::map<std::string, std::vector<OsgObjectData> > myObjectInfo;
169  std::map<std::string, std::vector<OsgObjectData> > myObjectInfoPrevious;
170  std::map<std::string, std::vector<OsgObjectData> > myObjectsInBoth;
172 
174 
175  typedef std::map<std::string, int> intStats;
176  typedef std::map<std::string, float> floatStats;
177  std::map<std::string, intStats> myIntStats;
178  std::map<std::string, floatStats> myFloatStats;
179 
181  std::map<std::string, std::string> myNvidiaSmiLog;
182  DtDynamicLibrary* myGpuPlugin;
183  typedef void(*addProc)(makVrv::DtImGuiLoaderStatsData::GPUData* gpu);
185  };
186 }
Profile node class stores timing data for a profiled section.
Definition: DtProfileNode.h:22
int myCurrentIndex
Definition: DtImGuiLoaderStatsData.h:152
DtDynamicLibrary * myGpuPlugin
Definition: DtImGuiLoaderStatsData.h:182
std::map< std::string, float > floatStats
Definition: DtImGuiLoaderStatsData.h:176
int myLastNumPagers
Definition: DtImGuiLoaderStatsData.h:142
Definition: DtImGuiLoaderStatsData.h:40
GPUData myGpuState
Definition: DtImGuiLoaderStatsData.h:180
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
float myFrameRunningAverage
Definition: DtImGuiLoaderStatsData.h:148
float myTimeSpentUnresponsive
Definition: DtImGuiLoaderStatsData.h:136
std::map< std::string, std::string > myNvidiaSmiLog
Definition: DtImGuiLoaderStatsData.h:181
unsigned int slowdownTemp
Definition: DtImGuiLoaderStatsData.h:55
int myPagingFrameCount
Definition: DtImGuiLoaderStatsData.h:139
std::map< std::string, std::vector< OsgObjectData > > myObjectInfoPrevious
Definition: DtImGuiLoaderStatsData.h:169
std::map< std::string, int > intStats
Definition: DtImGuiLoaderStatsData.h:175
DtTimedSection myTimedSection
Definition: DtImGuiLoaderStatsData.h:135
std::map< std::string, std::vector< OsgObjectData > > myObjectInfo
Definition: DtImGuiLoaderStatsData.h:168
int myPreviousPagingFrameCount
Definition: DtImGuiLoaderStatsData.h:140
unsigned int shutdownTemp
Definition: DtImGuiLoaderStatsData.h:54
unsigned long long clocksThrottleReasons
Definition: DtImGuiLoaderStatsData.h:57
float myPagingThreads
Definition: DtImGuiLoaderStatsData.h:162
std::map< std::string, std::vector< OsgObjectData > > myObjectsInBoth
Definition: DtImGuiLoaderStatsData.h:170
unsigned int maxTemp
Definition: DtImGuiLoaderStatsData.h:56
osg::Object * myObject
Definition: DtImGuiLoaderStatsData.h:66
DtStatsHandler * myStats
Definition: DtImGuiLoaderStatsData.h:164
class that gathers per frame stats and puts up UI
Definition: DtImGuiLoaderStatsData.h:36
int mySamples
Definition: DtImGuiLoaderStatsData.h:143
float myMaxFrameTime
Definition: DtImGuiLoaderStatsData.h:147
float myMaxYAxis
Definition: DtImGuiLoaderStatsData.h:146
float myPreviousPagingTime
Definition: DtImGuiLoaderStatsData.h:138
int dllAvailable
Definition: DtImGuiLoaderStatsData.h:59
float myPhase
Definition: DtImGuiLoaderStatsData.h:153
bool myOnlyShowDifferentCounts
Definition: DtImGuiLoaderStatsData.h:171
virtual void setStatsHandler(DtStatsHandler *stats)
gui handler
Definition: DtImGuiLoaderStatsData.h:102
bool myEnableObjectProfiling
Definition: DtImGuiLoaderStatsData.h:167
float myPagingTime
Definition: DtImGuiLoaderStatsData.h:137
unsigned int temp
Definition: DtImGuiLoaderStatsData.h:53
float myFrameDuration
Definition: DtImGuiLoaderStatsData.h:145
bool myAutoResetEnabled
Definition: DtImGuiLoaderStatsData.h:173
float myFrameRunningAverageMax
Definition: DtImGuiLoaderStatsData.h:149
GPUData()
Definition: DtImGuiLoaderStatsData.h:42
std::map< std::string, intStats > myIntStats
Definition: DtImGuiLoaderStatsData.h:177
float myRefreshTime
Definition: DtImGuiLoaderStatsData.h:144
float myDDSThreads
Definition: DtImGuiLoaderStatsData.h:163
int myRefCount
Definition: DtImGuiLoaderStatsData.h:69
Contains DLL export macros.
Definition: DtImGuiLoaderStatsData.h:62
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
osgViewer::StatsHandler derived class used to fix a few problems that class has in VR-Vantage More sp...
Definition: DtStatsHandlerManager.h:53
std::string myClassName
Definition: DtImGuiLoaderStatsData.h:67
int pState
Definition: DtImGuiLoaderStatsData.h:58
std::map< std::string, floatStats > myFloatStats
Definition: DtImGuiLoaderStatsData.h:178
std::string myName
Definition: DtImGuiLoaderStatsData.h:68
addProc myAddGpuImguiUI
Definition: DtImGuiLoaderStatsData.h:184

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)