mirror of
https://github.com/overte-org/overte.git
synced 2025-04-22 07:24:17 +02:00
first cut at scene stats
This commit is contained in:
parent
5edcfaa38b
commit
40f87817bf
4 changed files with 135 additions and 1 deletions
76
libraries/voxels/src/VoxelSceneStats.cpp
Normal file
76
libraries/voxels/src/VoxelSceneStats.cpp
Normal file
|
@ -0,0 +1,76 @@
|
|||
//
|
||||
// VoxelSceneStats.cpp
|
||||
// hifi
|
||||
//
|
||||
// Created by Brad Hefta-Gaub on 7/18/13.
|
||||
//
|
||||
//
|
||||
|
||||
#include "VoxelSceneStats.h"
|
||||
|
||||
VoxelSceneStats::VoxelSceneStats() :
|
||||
start(0),
|
||||
end(0),
|
||||
elapsed(0),
|
||||
total(0),
|
||||
traversed(0),
|
||||
internal(0),
|
||||
internalOutOfView(0),
|
||||
internalOccluded(0),
|
||||
internalDirty(0),
|
||||
leaves(0),
|
||||
leavesOutOfView(0),
|
||||
leavesOccluded(0),
|
||||
leavesDirty(0),
|
||||
packets(0),
|
||||
bytes(0),
|
||||
passes(0),
|
||||
elapsedUsecsToSend(0),
|
||||
wasFinished(false),
|
||||
wasMoving(false),
|
||||
hadDeltaView(false),
|
||||
hadOcclusionCulling(false)
|
||||
{
|
||||
}
|
||||
|
||||
VoxelSceneStats::~VoxelSceneStats() {
|
||||
}
|
||||
|
||||
void VoxelSceneStats::sceneStarted() {
|
||||
start = usecTimestampNow();
|
||||
}
|
||||
|
||||
void VoxelSceneStats::sceneCompleted() {
|
||||
end = usecTimestampNow();
|
||||
elapsed = end - start;
|
||||
}
|
||||
|
||||
void VoxelSceneStats::reset() {
|
||||
start = 0;
|
||||
end= 0;
|
||||
elapsed= 0;
|
||||
|
||||
|
||||
total = 0;
|
||||
traversed = 0;
|
||||
internal = 0;
|
||||
internalOutOfView = 0;
|
||||
internalOccluded = 0;
|
||||
internalDirty = 0;
|
||||
leaves = 0;
|
||||
leavesOutOfView = 0;
|
||||
leavesOccluded = 0;
|
||||
leavesDirty = 0;
|
||||
packets = 0;
|
||||
bytes = 0;
|
||||
passes = 0;
|
||||
wasFinished = false;
|
||||
wasMoving = false;
|
||||
hadDeltaView = false;
|
||||
hadOcclusionCulling = false;
|
||||
}
|
||||
|
||||
|
||||
void VoxelSceneStats::printDebugDetails() {
|
||||
qDebug("VoxelSceneStats: start: %llu, end: %llu, elapsed: %llu \n", start, end, elapsed);
|
||||
}
|
51
libraries/voxels/src/VoxelSceneStats.h
Normal file
51
libraries/voxels/src/VoxelSceneStats.h
Normal file
|
@ -0,0 +1,51 @@
|
|||
//
|
||||
// VoxelSceneStats.h
|
||||
// hifi
|
||||
//
|
||||
// Created by Brad Hefta-Gaub on 7/18/13.
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef __hifi__VoxelSceneStats__
|
||||
#define __hifi__VoxelSceneStats__
|
||||
|
||||
|
||||
class VoxelSceneStats {
|
||||
public:
|
||||
VoxelSceneStats();
|
||||
~VoxelSceneStats();
|
||||
void reset();
|
||||
void sceneStarted();
|
||||
void sceneCompleted();
|
||||
void printDebugDetails();
|
||||
|
||||
// scene timing data in usecs
|
||||
uint64_t start;
|
||||
uint64_t end;
|
||||
uint64_t elapsed;
|
||||
|
||||
// scene voxel related data
|
||||
unsigned long total;
|
||||
unsigned long traversed;
|
||||
unsigned long internal;
|
||||
unsigned long internalOutOfView;
|
||||
unsigned long internalOccluded;
|
||||
unsigned long internalDirty;
|
||||
unsigned long leaves;
|
||||
unsigned long leavesOutOfView;
|
||||
unsigned long leavesOccluded;
|
||||
unsigned long leavesDirty;
|
||||
|
||||
// scene network related data
|
||||
unsigned int packets;
|
||||
unsigned int bytes;
|
||||
unsigned int passes;
|
||||
|
||||
// features related items
|
||||
bool wasFinished;
|
||||
bool wasMoving;
|
||||
bool hadDeltaView;
|
||||
bool hadOcclusionCulling;
|
||||
};
|
||||
|
||||
#endif /* defined(__hifi__VoxelSceneStats__) */
|
|
@ -58,6 +58,9 @@ public:
|
|||
void setLastTimeBagEmpty(uint64_t lastTimeBagEmpty) { _lastTimeBagEmpty = lastTimeBagEmpty; };
|
||||
|
||||
bool getCurrentPacketIsColor() const { return _currentPacketIsColor; };
|
||||
|
||||
VoxelSceneStats stats;
|
||||
|
||||
private:
|
||||
VoxelNodeData(const VoxelNodeData &);
|
||||
VoxelNodeData& operator= (const VoxelNodeData&);
|
||||
|
|
|
@ -204,9 +204,13 @@ void deepestLevelVoxelDistributor(NodeList* nodeList,
|
|||
printf("ENTIRE SCENE SENT! nodeData->setLastTimeBagEmpty(now=[%lld])\n", now);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nodeData->stats.sceneCompleted();
|
||||
nodeData->stats.printDebugDetails();
|
||||
|
||||
// This is the start of "resending" the scene.
|
||||
nodeData->nodeBag.insert(serverTree.rootNode);
|
||||
nodeData->stats.sceneStarted();
|
||||
}
|
||||
|
||||
// If we have something in our nodeBag, then turn them into packets and send them out...
|
||||
|
|
Loading…
Reference in a new issue