first cut at scene stats

This commit is contained in:
ZappoMan 2013-07-18 11:03:46 -07:00
parent 5edcfaa38b
commit 40f87817bf
4 changed files with 135 additions and 1 deletions

View 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);
}

View 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__) */

View file

@ -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&);

View file

@ -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...