telemetry and timing updates
This commit is contained in:
@@ -57,6 +57,12 @@ struct FakeOutputMetrics
|
||||
bool actualBufferedFramesAvailable = false;
|
||||
uint64_t actualBufferedFrames = 0;
|
||||
double scheduleCallMilliseconds = 0.0;
|
||||
bool scheduleLeadAvailable = false;
|
||||
int64_t playbackStreamTime = 0;
|
||||
uint64_t playbackFrameIndex = 0;
|
||||
uint64_t nextScheduleFrameIndex = 0;
|
||||
int64_t scheduleLeadFrames = 0;
|
||||
uint64_t scheduleRealignmentCount = 0;
|
||||
};
|
||||
|
||||
struct FakeOutput
|
||||
@@ -109,6 +115,12 @@ void TestTelemetrySamplesCompletedPollMissesAndShaderCounts()
|
||||
FakeOutput output;
|
||||
output.metrics.actualBufferedFramesAvailable = true;
|
||||
output.metrics.actualBufferedFrames = 4;
|
||||
output.metrics.scheduleLeadAvailable = true;
|
||||
output.metrics.playbackStreamTime = 10010;
|
||||
output.metrics.playbackFrameIndex = 10;
|
||||
output.metrics.nextScheduleFrameIndex = 14;
|
||||
output.metrics.scheduleLeadFrames = 4;
|
||||
output.metrics.scheduleRealignmentCount = 1;
|
||||
|
||||
FakeOutputThread outputThread;
|
||||
outputThread.metrics.completedPollMisses = 12;
|
||||
@@ -163,6 +175,12 @@ void TestTelemetrySamplesCompletedPollMissesAndShaderCounts()
|
||||
Expect(snapshot.inputSignalPresent, "input signal present is sampled");
|
||||
Expect(snapshot.deckLinkBufferedAvailable, "buffer telemetry availability is sampled");
|
||||
Expect(snapshot.deckLinkBuffered == 4, "buffer depth is sampled");
|
||||
Expect(snapshot.deckLinkScheduleLeadAvailable, "schedule lead availability is sampled");
|
||||
Expect(snapshot.deckLinkPlaybackStreamTime == 10010, "playback stream time is sampled");
|
||||
Expect(snapshot.deckLinkPlaybackFrameIndex == 10, "playback frame index is sampled");
|
||||
Expect(snapshot.deckLinkNextScheduleFrameIndex == 14, "next schedule frame index is sampled");
|
||||
Expect(snapshot.deckLinkScheduleLeadFrames == 4, "schedule lead frames are sampled");
|
||||
Expect(snapshot.deckLinkScheduleRealignments == 1, "schedule realignment count is sampled");
|
||||
}
|
||||
|
||||
void TestTelemetryComputesRatesFromDeltas()
|
||||
@@ -234,6 +252,12 @@ void TestTelemetrySerializesToJson()
|
||||
snapshot.deckLinkBufferedAvailable = true;
|
||||
snapshot.deckLinkBuffered = 4;
|
||||
snapshot.deckLinkScheduleCallMilliseconds = 1.25;
|
||||
snapshot.deckLinkScheduleLeadAvailable = true;
|
||||
snapshot.deckLinkScheduleLeadFrames = 4;
|
||||
snapshot.deckLinkPlaybackFrameIndex = 10;
|
||||
snapshot.deckLinkNextScheduleFrameIndex = 14;
|
||||
snapshot.deckLinkPlaybackStreamTime = 10010;
|
||||
snapshot.deckLinkScheduleRealignments = 1;
|
||||
|
||||
const std::string json = RenderCadenceCompositor::CadenceTelemetryToJson(snapshot);
|
||||
const std::string expected =
|
||||
@@ -259,7 +283,13 @@ void TestTelemetrySerializesToJson()
|
||||
"\"inputUnsupportedFrames\":3,\"inputSubmitMisses\":4,"
|
||||
"\"inputCaptureFormat\":\"UYVY8\","
|
||||
"\"deckLinkBufferedAvailable\":true,\"deckLinkBuffered\":4,"
|
||||
"\"scheduleCallMs\":1.25}";
|
||||
"\"scheduleCallMs\":1.25,"
|
||||
"\"deckLinkScheduleLeadAvailable\":true,"
|
||||
"\"deckLinkScheduleLeadFrames\":4,"
|
||||
"\"deckLinkPlaybackFrameIndex\":10,"
|
||||
"\"deckLinkNextScheduleFrameIndex\":14,"
|
||||
"\"deckLinkPlaybackStreamTime\":10010,"
|
||||
"\"deckLinkScheduleRealignments\":1}";
|
||||
Expect(json == expected, "telemetry snapshot serializes to stable JSON");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user