Add README.md for the Dawn perf test harness

Bug: dawn:208
Change-Id: Ic9b4c83ab3c27851d149adb5986f3a5556d0548a
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/11283
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
This commit is contained in:
Austin Eng 2019-09-17 21:02:38 +00:00 committed by Commit Bot service account
parent 7f3f331ce6
commit 519b16c4b0
2 changed files with 24 additions and 13 deletions

View File

@ -41,19 +41,6 @@ class DawnPerfTestEnvironment : public DawnTestEnvironment {
unsigned int mOverrideStepsToRun = 0; unsigned int mOverrideStepsToRun = 0;
}; };
// Dawn Perf Tests calls Step() of a derived class to measure its execution
// time. First, a calibration step is run which determines the number of times
// to call Step() to last approximately |kCalibrationRunTimeSeconds|. Then,
// Step() is called for the computed number of times, or until
// |kMaximumRunTimeSeconds| is exceeded. |kNumTrials| are performed and the
// results and averages per iteration** are printed.
//
// The results are printed according to the format specified at
// [chromium]//build/scripts/slave/performance_log_processor.py
//
// ** The number of iterations a test performs should be passed to the
// constructor of DawnPerfTestBase. The reported times are the total time
// divided by (numSteps * iterationsPerStep).
class DawnPerfTestBase { class DawnPerfTestBase {
static constexpr double kCalibrationRunTimeSeconds = 1.0; static constexpr double kCalibrationRunTimeSeconds = 1.0;
static constexpr double kMaximumRunTimeSeconds = 10.0; static constexpr double kMaximumRunTimeSeconds = 10.0;

View File

@ -0,0 +1,24 @@
# Dawn Perf Tests
## Tests
**BufferUploadPerf**
Tests repetitively uploading data to the GPU using either `SetSubData` or `CreateBufferMapped`.
## Test Harness
The test harness provides a `DawnPerfTestBase` which Derived tests should inherit from.
The harness calls `Step()` of a Derived class to measure its execution
time. First, a calibration step is run which determines the number of times
to call `Step()` to last approximately `kCalibrationRunTimeSeconds`. Then,
`Step()` is called for the computed number of times, or until
`kMaximumRunTimeSeconds` is exceeded. `kNumTrials` are performed and the
results and averages per iteration\* are printed.
(See `DawnPerfTest.h` for the values of the constants).
The results are printed according to the format specified at
[[chromium]//build/scripts/slave/performance_log_processor.py](https://cs.chromium.org/chromium/build/scripts/slave/performance_log_processor.py)
\*The number of iterations a test performs should be passed to the
constructor of `DawnPerfTestBase`. The reported times are the total time
divided by `numSteps * iterationsPerStep`.