History

track encode stats

SamGondelman committed 9 years ago

Commit bf1065b1 parent a0f95ca1 file · +7 −0Browse files

Showing the changes to assignment-client/src/entities/EntityTreeSendThread.cpp (1 of 1 file). Show all

Unified · Split

assignment-client/src/entities/EntityTreeSendThread.cpp+7−0
@@ -414,8 +414,10 @@ bool EntityTreeSendThread::traverseTreeAndBuildNextPacketPayload(EncodeBitstream · 413 unmodified lines
414#ifdef SEND_SORTED_ENTITIES414#ifdef SEND_SORTED_ENTITIES
415 //auto entityTree = std::static_pointer_cast<EntityTree>(_myServer->getOctree());415 //auto entityTree = std::static_pointer_cast<EntityTree>(_myServer->getOctree());
416 if (_sendQueue.empty()) {416 if (_sendQueue.empty()) {
417 OctreeServer::trackEncodeTime(OctreeServer::SKIP_TIME);
417 return false;418 return false;
418 }419 }
420 quint64 encodeStart = usecTimestampNow();
419 if (!_packetData.hasContent()) {421 if (!_packetData.hasContent()) {
420 // This is the beginning of a new packet.422 // This is the beginning of a new packet.
421 // We pack minimal data for this to be accepted as an OctreeElement payload for the root element.423 // We pack minimal data for this to be accepted as an OctreeElement payload for the root element.
@@ -450,6 +452,8 @@ bool EntityTreeSendThread::traverseTreeAndBuildNextPacketPayload(EncodeBitstream · 28 unmodified lines
450 452
451 LevelDetails entitiesLevel = _packetData.startLevel();453 LevelDetails entitiesLevel = _packetData.startLevel();
452 uint64_t sendTime = usecTimestampNow();454 uint64_t sendTime = usecTimestampNow();
455 auto nodeData = static_cast<OctreeQueryNode*>(params.nodeData);
456 nodeData->stats.encodeStarted();
453 while(!_sendQueue.empty()) {457 while(!_sendQueue.empty()) {
454 PrioritizedEntity queuedItem = _sendQueue.top();458 PrioritizedEntity queuedItem = _sendQueue.top();
455 EntityItemPointer entity = queuedItem.getEntity();459 EntityItemPointer entity = queuedItem.getEntity();
@@ -476,6 +480,7 @@ bool EntityTreeSendThread::traverseTreeAndBuildNextPacketPayload(EncodeBitstream · 20 unmodified lines
476 _sendQueue.pop();480 _sendQueue.pop();
477 _entitiesInQueue.erase(entity.get());481 _entitiesInQueue.erase(entity.get());
478 }482 }
483 nodeData->stats.encodeStopped();
479 if (_sendQueue.empty()) {484 if (_sendQueue.empty()) {
480 assert(_entitiesInQueue.empty());485 assert(_entitiesInQueue.empty());
481 params.stopReason = EncodeBitstreamParams::FINISHED;486 params.stopReason = EncodeBitstreamParams::FINISHED;
@@ -484,10 +489,12 @@ bool EntityTreeSendThread::traverseTreeAndBuildNextPacketPayload(EncodeBitstream · 2 unmodified lines
484 489
485 if (_numEntities == 0) {490 if (_numEntities == 0) {
486 _packetData.discardLevel(entitiesLevel);491 _packetData.discardLevel(entitiesLevel);
492 OctreeServer::trackEncodeTime((float)(usecTimestampNow() - encodeStart));
487 return false;493 return false;
488 }494 }
489 _packetData.endLevel(entitiesLevel);495 _packetData.endLevel(entitiesLevel);
490 _packetData.updatePriorBytes(_numEntitiesOffset, (const unsigned char*)&_numEntities, sizeof(_numEntities));496 _packetData.updatePriorBytes(_numEntitiesOffset, (const unsigned char*)&_numEntities, sizeof(_numEntities));
497 OctreeServer::trackEncodeTime((float)(usecTimestampNow() - encodeStart));
491 return true;498 return true;
492 499
493#else // SEND_SORTED_ENTITIES500#else // SEND_SORTED_ENTITIES