Split direct v210 read and copy timing
This commit is contained in:
@@ -47,6 +47,8 @@ struct PerfStats
|
||||
uint64_t feedReadTicks = 0;
|
||||
uint64_t uploadDecodeTicks = 0;
|
||||
uint64_t stageCopyTicks = 0;
|
||||
uint64_t directV210SourceReadNs = 0;
|
||||
uint64_t directV210PayloadCopyNs = 0;
|
||||
uint64_t uploadRecordTicks = 0;
|
||||
uint64_t submitPresentTicks = 0;
|
||||
uint64_t idleDelayTicks = 0;
|
||||
@@ -65,6 +67,8 @@ struct FramePerfStats
|
||||
uint64_t fenceWaitTicks = 0;
|
||||
uint64_t feedReadTicks = 0;
|
||||
uint64_t stageCopyTicks = 0;
|
||||
uint64_t directV210SourceReadNs = 0;
|
||||
uint64_t directV210PayloadCopyNs = 0;
|
||||
uint64_t maxStageCopyTicks = 0;
|
||||
uint64_t maxStageCopyBytes = 0;
|
||||
uint32_t maxStageCopyFeed = 0;
|
||||
@@ -1610,6 +1614,7 @@ int main(int argc, char* argv[])
|
||||
|
||||
if (directV210Read)
|
||||
{
|
||||
V210ReadTiming directReadTiming{};
|
||||
const size_t v210Bytes =
|
||||
static_cast<size_t>(
|
||||
feeds[i]->v210Stride()
|
||||
@@ -1622,7 +1627,8 @@ int main(int argc, char* argv[])
|
||||
feeds[i]->readV210FrameInto(
|
||||
frameCounter,
|
||||
v210Feeds[i].v210MappedData,
|
||||
v210Bytes
|
||||
v210Bytes,
|
||||
&directReadTiming
|
||||
);
|
||||
const uint64_t version =
|
||||
feeds[i]->frameVersion();
|
||||
@@ -1632,6 +1638,18 @@ int main(int argc, char* argv[])
|
||||
|
||||
recordFeedVersionStats(i, uploadNeeded);
|
||||
|
||||
if (config.logPerf)
|
||||
{
|
||||
perfStats.directV210SourceReadNs +=
|
||||
directReadTiming.sourceReadNs;
|
||||
perfStats.directV210PayloadCopyNs +=
|
||||
directReadTiming.payloadCopyNs;
|
||||
framePerf.directV210SourceReadNs +=
|
||||
directReadTiming.sourceReadNs;
|
||||
framePerf.directV210PayloadCopyNs +=
|
||||
directReadTiming.payloadCopyNs;
|
||||
}
|
||||
|
||||
if (!uploadNeeded)
|
||||
{
|
||||
continue;
|
||||
@@ -2117,6 +2135,14 @@ int main(int argc, char* argv[])
|
||||
<< (framePerf.feedReadTicks * invMs)
|
||||
<< "ms stageCopy="
|
||||
<< (framePerf.stageCopyTicks * invMs)
|
||||
<< "ms v210Read="
|
||||
<< (static_cast<double>(
|
||||
framePerf.directV210SourceReadNs) /
|
||||
1000000.0)
|
||||
<< "ms v210Copy="
|
||||
<< (static_cast<double>(
|
||||
framePerf.directV210PayloadCopyNs) /
|
||||
1000000.0)
|
||||
<< "ms stageCopies="
|
||||
<< framePerf.stageCopies
|
||||
<< " v210Copies="
|
||||
@@ -2168,6 +2194,14 @@ int main(int argc, char* argv[])
|
||||
<< (perfStats.uploadDecodeTicks * invMs / frames)
|
||||
<< "ms stageCopy="
|
||||
<< (perfStats.stageCopyTicks * invMs / frames)
|
||||
<< "ms v210Read="
|
||||
<< (static_cast<double>(
|
||||
perfStats.directV210SourceReadNs) /
|
||||
1000000.0 / frames)
|
||||
<< "ms v210Copy="
|
||||
<< (static_cast<double>(
|
||||
perfStats.directV210PayloadCopyNs) /
|
||||
1000000.0 / frames)
|
||||
<< "ms uploadRecord="
|
||||
<< (perfStats.uploadRecordTicks * invMs / frames)
|
||||
<< "ms submitPresent="
|
||||
|
||||
Reference in New Issue
Block a user