Render timing
This commit is contained in:
@@ -26,6 +26,8 @@ struct FakeExchangeMetrics
|
||||
std::size_t scheduledCount = 0;
|
||||
uint64_t completedFrames = 0;
|
||||
uint64_t scheduledFrames = 0;
|
||||
uint64_t completedDrops = 0;
|
||||
uint64_t acquireMisses = 0;
|
||||
};
|
||||
|
||||
struct FakeExchange
|
||||
@@ -69,6 +71,11 @@ struct FakeRenderThreadMetrics
|
||||
uint64_t skippedFrames = 0;
|
||||
uint64_t shaderBuildsCommitted = 0;
|
||||
uint64_t shaderBuildFailures = 0;
|
||||
double renderFrameMilliseconds = 0.0;
|
||||
double renderFrameBudgetUsedPercent = 0.0;
|
||||
double renderFrameMaxMilliseconds = 0.0;
|
||||
double readbackQueueMilliseconds = 0.0;
|
||||
double completedReadbackCopyMilliseconds = 0.0;
|
||||
uint64_t inputFramesReceived = 0;
|
||||
uint64_t inputFramesDropped = 0;
|
||||
uint64_t inputConsumeMisses = 0;
|
||||
@@ -96,6 +103,8 @@ void TestTelemetrySamplesCompletedPollMissesAndShaderCounts()
|
||||
exchange.metrics.scheduledCount = 4;
|
||||
exchange.metrics.completedFrames = 100;
|
||||
exchange.metrics.scheduledFrames = 96;
|
||||
exchange.metrics.completedDrops = 2;
|
||||
exchange.metrics.acquireMisses = 3;
|
||||
|
||||
FakeOutput output;
|
||||
output.metrics.actualBufferedFramesAvailable = true;
|
||||
@@ -110,6 +119,11 @@ void TestTelemetrySamplesCompletedPollMissesAndShaderCounts()
|
||||
renderThread.metrics.skippedFrames = 8;
|
||||
renderThread.metrics.shaderBuildsCommitted = 1;
|
||||
renderThread.metrics.shaderBuildFailures = 0;
|
||||
renderThread.metrics.renderFrameMilliseconds = 2.5;
|
||||
renderThread.metrics.renderFrameBudgetUsedPercent = 15.0;
|
||||
renderThread.metrics.renderFrameMaxMilliseconds = 4.0;
|
||||
renderThread.metrics.readbackQueueMilliseconds = 0.6;
|
||||
renderThread.metrics.completedReadbackCopyMilliseconds = 1.2;
|
||||
renderThread.metrics.inputFramesReceived = 9;
|
||||
renderThread.metrics.inputFramesDropped = 2;
|
||||
renderThread.metrics.inputConsumeMisses = 3;
|
||||
@@ -126,10 +140,17 @@ void TestTelemetrySamplesCompletedPollMissesAndShaderCounts()
|
||||
Expect(snapshot.completedFrames == 1, "completed frame count is sampled");
|
||||
Expect(snapshot.scheduledFrames == 4, "scheduled frame count is sampled");
|
||||
Expect(snapshot.completedPollMisses == 12, "completed poll misses are sampled");
|
||||
Expect(snapshot.completedDrops == 2, "completed drops are sampled");
|
||||
Expect(snapshot.acquireMisses == 3, "acquire misses are sampled");
|
||||
Expect(snapshot.clockOverruns == 5, "clock overrun count is sampled");
|
||||
Expect(snapshot.clockSkippedFrames == 8, "clock skipped frame count is sampled");
|
||||
Expect(snapshot.shaderBuildsCommitted == 1, "shader committed count is sampled");
|
||||
Expect(snapshot.shaderBuildFailures == 0, "shader failure count is sampled");
|
||||
Expect(snapshot.renderFrameMilliseconds == 2.5, "render frame timing is sampled");
|
||||
Expect(snapshot.renderFrameBudgetUsedPercent == 15.0, "render budget percentage is sampled");
|
||||
Expect(snapshot.renderFrameMaxMilliseconds == 4.0, "render frame max timing is sampled");
|
||||
Expect(snapshot.readbackQueueMilliseconds == 0.6, "readback queue timing is sampled");
|
||||
Expect(snapshot.completedReadbackCopyMilliseconds == 1.2, "completed readback copy timing is sampled");
|
||||
Expect(snapshot.inputFramesReceived == 9, "input received count is sampled");
|
||||
Expect(snapshot.inputFramesDropped == 2, "input dropped count is sampled");
|
||||
Expect(snapshot.inputConsumeMisses == 3, "input consume miss count is sampled");
|
||||
@@ -179,6 +200,8 @@ void TestTelemetrySerializesToJson()
|
||||
snapshot.scheduledTotal = 118;
|
||||
snapshot.completedPollMisses = 3;
|
||||
snapshot.scheduleFailures = 0;
|
||||
snapshot.completedDrops = 4;
|
||||
snapshot.acquireMisses = 5;
|
||||
snapshot.completions = 117;
|
||||
snapshot.displayedLate = 1;
|
||||
snapshot.dropped = 2;
|
||||
@@ -186,6 +209,11 @@ void TestTelemetrySerializesToJson()
|
||||
snapshot.clockSkippedFrames = 5;
|
||||
snapshot.shaderBuildsCommitted = 1;
|
||||
snapshot.shaderBuildFailures = 0;
|
||||
snapshot.renderFrameMilliseconds = 2.5;
|
||||
snapshot.renderFrameBudgetUsedPercent = 15.0;
|
||||
snapshot.renderFrameMaxMilliseconds = 4.0;
|
||||
snapshot.readbackQueueMilliseconds = 0.6;
|
||||
snapshot.completedReadbackCopyMilliseconds = 1.2;
|
||||
snapshot.inputFramesReceived = 10;
|
||||
snapshot.inputFramesDropped = 1;
|
||||
snapshot.inputConsumeMisses = 2;
|
||||
@@ -213,10 +241,14 @@ void TestTelemetrySerializesToJson()
|
||||
"\"free\":7,\"completed\":1,\"scheduled\":4,"
|
||||
"\"renderedTotal\":120,\"scheduledTotal\":118,"
|
||||
"\"completedPollMisses\":3,\"scheduleFailures\":0,"
|
||||
"\"completedDrops\":4,\"acquireMisses\":5,"
|
||||
"\"completions\":117,\"late\":1,\"dropped\":2,"
|
||||
"\"clockOverruns\":3,\"clockSkippedFrames\":5,"
|
||||
"\"clockOveruns\":3,\"clockSkipped\":5,"
|
||||
"\"shaderCommitted\":1,\"shaderFailures\":0,"
|
||||
"\"renderFrameMs\":2.5,\"renderFrameBudgetUsedPercent\":15,"
|
||||
"\"renderFrameMaxMs\":4,\"readbackQueueMs\":0.6,"
|
||||
"\"completedReadbackCopyMs\":1.2,"
|
||||
"\"inputFramesReceived\":10,\"inputFramesDropped\":1,"
|
||||
"\"inputConsumeMisses\":2,\"inputUploadMisses\":3,"
|
||||
"\"inputReadyFrames\":1,\"inputReadingFrames\":0,"
|
||||
|
||||
Reference in New Issue
Block a user