Commit 2d0265fa by Jamie Madill Committed by Commit Bot

Trace Tests: Scale results based on frames in capture.

This now reports averaged time per frame instead of per "step". Scores in general will be divided by 11. Results still reported in nanoseconds. Bug: angleproject:4920 Change-Id: I6f9dca75885cce358c3c7d1e871441969d8aa3d3 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2334095Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarCody Northrop <cnorthrop@google.com> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 89ade79a
...@@ -190,6 +190,7 @@ ANGLEPerfTest::ANGLEPerfTest(const std::string &name, ...@@ -190,6 +190,7 @@ ANGLEPerfTest::ANGLEPerfTest(const std::string &name,
mSkipTest(false), mSkipTest(false),
mStepsToRun(gStepsToRunOverride), mStepsToRun(gStepsToRunOverride),
mNumStepsPerformed(0), mNumStepsPerformed(0),
mStepsPerRunLoopStep(1),
mIterationsPerStep(iterationsPerStep), mIterationsPerStep(iterationsPerStep),
mRunning(true) mRunning(true)
{ {
...@@ -242,6 +243,12 @@ void ANGLEPerfTest::run() ...@@ -242,6 +243,12 @@ void ANGLEPerfTest::run()
} }
} }
void ANGLEPerfTest::setStepsPerRunLoopStep(int stepsPerRunLoop)
{
ASSERT(stepsPerRunLoop >= 1);
mStepsPerRunLoopStep = stepsPerRunLoop;
}
void ANGLEPerfTest::doRunLoop(double maxRunTime) void ANGLEPerfTest::doRunLoop(double maxRunTime)
{ {
mNumStepsPerformed = 0; mNumStepsPerformed = 0;
...@@ -255,7 +262,7 @@ void ANGLEPerfTest::doRunLoop(double maxRunTime) ...@@ -255,7 +262,7 @@ void ANGLEPerfTest::doRunLoop(double maxRunTime)
step(); step();
if (mRunning) if (mRunning)
{ {
++mNumStepsPerformed; mNumStepsPerformed += mStepsPerRunLoopStep;
if (mTimer.getElapsedTime() > maxRunTime) if (mTimer.getElapsedTime() > maxRunTime)
{ {
mRunning = false; mRunning = false;
......
...@@ -82,7 +82,10 @@ class ANGLEPerfTest : public testing::Test, angle::NonCopyable ...@@ -82,7 +82,10 @@ class ANGLEPerfTest : public testing::Test, angle::NonCopyable
// Call if the test step was aborted and the test should stop running. // Call if the test step was aborted and the test should stop running.
void abortTest() { mRunning = false; } void abortTest() { mRunning = false; }
unsigned int getNumStepsPerformed() const { return mNumStepsPerformed; } int getNumStepsPerformed() const { return mNumStepsPerformed; }
// Defaults to one step per run loop. Can be changed in any test.
void setStepsPerRunLoopStep(int stepsPerRunLoop);
void doRunLoop(double maxRunTime); void doRunLoop(double maxRunTime);
// Overriden in trace perf tests. // Overriden in trace perf tests.
...@@ -101,6 +104,7 @@ class ANGLEPerfTest : public testing::Test, angle::NonCopyable ...@@ -101,6 +104,7 @@ class ANGLEPerfTest : public testing::Test, angle::NonCopyable
std::unique_ptr<perf_test::PerfResultReporter> mReporter; std::unique_ptr<perf_test::PerfResultReporter> mReporter;
int mStepsToRun; int mStepsToRun;
int mNumStepsPerformed; int mNumStepsPerformed;
int mStepsPerRunLoopStep;
int mIterationsPerStep; int mIterationsPerStep;
bool mRunning; bool mRunning;
}; };
...@@ -156,7 +160,6 @@ class ANGLERenderTest : public ANGLEPerfTest ...@@ -156,7 +160,6 @@ class ANGLERenderTest : public ANGLEPerfTest
void startGpuTimer(); void startGpuTimer();
void stopGpuTimer(); void stopGpuTimer();
void getGpuTimers();
void beginInternalTraceEvent(const char *name); void beginInternalTraceEvent(const char *name);
void endInternalTraceEvent(const char *name); void endInternalTraceEvent(const char *name);
......
...@@ -163,6 +163,8 @@ void TracePerfTest::initializeBenchmark() ...@@ -163,6 +163,8 @@ void TracePerfTest::initializeBenchmark()
mEndFrame = traceInfo.endFrame; mEndFrame = traceInfo.endFrame;
SetBinaryDataDecompressCallback(params.testID, DecompressBinaryData); SetBinaryDataDecompressCallback(params.testID, DecompressBinaryData);
setStepsPerRunLoopStep(mEndFrame - mStartFrame + 1);
std::stringstream testDataDirStr; std::stringstream testDataDirStr;
testDataDirStr << ANGLE_TRACE_DATA_DIR << "/" << traceInfo.name; testDataDirStr << ANGLE_TRACE_DATA_DIR << "/" << traceInfo.name;
std::string testDataDir = testDataDirStr.str(); std::string testDataDir = testDataDirStr.str();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment