MCPcopy Create free account
hub / github.com/GameTechDev/PresentMon / Process

Method Process

IntelPresentMon/Core/source/pmon/RawFrameDataWriter.cpp:524–553  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

522 }
523
524 void RawFrameDataWriter::Process()
525 {
526 // continue consuming frames until none are left pending
527 do {
528 pQueryElementContainer->Consume(procTracker, blobs);
529 // loop over populated blobs
530 for (auto pBlob : blobs) {
531 if (pStatsTracker) {
532 // tracking trace duration
533 if (startTime < 0.) {
534 startTime = pQueryElementContainer->ExtractTotalTimeFromBlob(pBlob);
535 endTime = startTime;
536 }
537 else {
538 endTime = pQueryElementContainer->ExtractTotalTimeFromBlob(pBlob);
539 }
540 // tracking frame times
541 pStatsTracker->Push(pQueryElementContainer->ExtractFrameTimeFromBlob(pBlob));
542 }
543 if (pAnimationErrorTracker) {
544 auto animationError = (pQueryElementContainer->ExtractAnimationErrorFromBlob(pBlob));
545 if (std::isnan(animationError) == false) {
546 pAnimationErrorTracker->Push(std::abs(animationError));
547 }
548 }
549 pQueryElementContainer->WriteFrame(file, pBlob);
550 }
551 } while (blobs.AllBlobsPopulated()); // if container filled, means more might be left
552 file << std::flush;
553 }
554
555 double RawFrameDataWriter::GetDuration_() const
556 {

Callers

nothing calls this directly

Calls 7

WriteFrameMethod · 0.80
AllBlobsPopulatedMethod · 0.80
ConsumeMethod · 0.45
PushMethod · 0.45

Tested by

no test coverage detected