Commit a4337121 by Cody Northrop Committed by Commit Bot

Perf: Limit TracePerfTest to single compressed TRex

Update the TRex trace to: * Incorporate recent fixes for compressed textures * Incorporate support for compressing the trace * Simplify the tag on the trace (drop the end frame) Update TracePerfTest to: * Temporarily support only a single trace (TRex200). Test: angle_perftests --gtest_filter="*Trace*" Bug: angleproject:4484 Bug: angleproject:4488 Bug: angleproject:4496 Change-Id: Ice0c4ee9de3ad9ae4596305a93c51c6eac842123 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2112629 Commit-Queue: Cody Northrop <cnorthrop@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 62b72552
......@@ -778,6 +778,7 @@ void WriteCppReplayIndexFiles(bool compression,
header << "#include <cstdio>\n";
header << "#include <cstring>\n";
header << "#include <limits>\n";
header << "#include <vector>\n";
header << "#include <unordered_map>\n";
header << "\n";
......
......@@ -14,14 +14,7 @@
#include "tests/perf_tests/DrawCallPerfParams.h"
#include "util/egl_loader_autogen.h"
#include "restricted_traces/manhattan_10_20/manhattan_10_20_capture_context1.h"
#include "restricted_traces/manhattan_1100_1110/manhattan_1100_1110_capture_context1.h"
#include "restricted_traces/manhattan_1440_1450/manhattan_1440_1450_capture_context1.h"
#include "restricted_traces/manhattan_750_760/manhattan_750_760_capture_context1.h"
#include "restricted_traces/trex_1300_1310/trex_1300_1310_capture_context1.h"
#include "restricted_traces/trex_200_210/trex_200_210_capture_context1.h"
#include "restricted_traces/trex_800_810/trex_800_810_capture_context1.h"
#include "restricted_traces/trex_900_910/trex_900_910_capture_context1.h"
#include "restricted_traces/trex_200/trex_200_capture_context1.h"
#include <cassert>
#include <functional>
......@@ -57,16 +50,11 @@ ANGLE_MAYBE_UNUSED uint8_t *DecompressBinaryData(const std::vector<uint8_t> &com
return uncompressedData.release();
}
// TODO (anglebug.com/4496)
// Temporarily limit the tests to a single trace to get the bots going
enum class TracePerfTestID
{
Manhattan10,
Manhattan750,
Manhattan1100,
Manhattan1440,
TRex200,
TRex800,
TRex900,
TRex1300,
InvalidEnum,
};
......@@ -93,30 +81,9 @@ struct TracePerfParams final : public RenderTestParams
switch (testID)
{
case TracePerfTestID::Manhattan10:
strstr << "_manhattan_10";
break;
case TracePerfTestID::Manhattan750:
strstr << "_manhattan_750";
break;
case TracePerfTestID::Manhattan1100:
strstr << "_manhattan_1100";
break;
case TracePerfTestID::Manhattan1440:
strstr << "_manhattan_1440";
break;
case TracePerfTestID::TRex200:
strstr << "_trex_200";
break;
case TracePerfTestID::TRex800:
strstr << "_trex_800";
break;
case TracePerfTestID::TRex900:
strstr << "_trex_900";
break;
case TracePerfTestID::TRex1300:
strstr << "_trex_1300";
break;
default:
assert(0);
break;
......@@ -198,30 +165,9 @@ void TracePerfTest::initializeBenchmark()
switch (params.testID)
{
// For each case, bootstrap the trace
case TracePerfTestID::Manhattan10:
TRACE_TEST_CASE(manhattan_10_20);
break;
case TracePerfTestID::Manhattan750:
TRACE_TEST_CASE(manhattan_750_760);
break;
case TracePerfTestID::Manhattan1100:
TRACE_TEST_CASE(manhattan_1100_1110);
break;
case TracePerfTestID::Manhattan1440:
TRACE_TEST_CASE(manhattan_1440_1450);
break;
case TracePerfTestID::TRex200:
TRACE_TEST_CASE(trex_200_210);
break;
case TracePerfTestID::TRex800:
TRACE_TEST_CASE(trex_800_810);
break;
case TracePerfTestID::TRex900:
TRACE_TEST_CASE(trex_900_910);
break;
case TracePerfTestID::TRex1300:
TRACE_TEST_CASE(trex_1300_1310);
trex_200::SetBinaryDataDecompressCallback(DecompressBinaryData);
TRACE_TEST_CASE(trex_200);
break;
default:
assert(0);
......
......@@ -59,11 +59,11 @@ set ANGLE_DEFAULT_PLATFORM=vulkan
set START=200
set END=210
set LABEL=trex
mkdir ..\..\..\..\..\angle\src\tests\perf_tests\restricted_traces\%LABEL%_%START%_%END%
set ANGLE_CAPTURE_LABEL=%LABEL%_%START%_%END%
mkdir ..\..\..\..\..\angle\src\tests\perf_tests\restricted_traces\%LABEL%_%START%
set ANGLE_CAPTURE_LABEL=%LABEL%_%START%
set ANGLE_CAPTURE_FRAME_START=%START%
set ANGLE_CAPTURE_FRAME_END=%END%
set ANGLE_CAPTURE_OUT_DIR=..\..\..\..\..\angle\src\tests\perf_tests\restricted_traces\%LABEL%_%START%_%END%
set ANGLE_CAPTURE_OUT_DIR=..\..\..\..\..\angle\src\tests\perf_tests\restricted_traces\%LABEL%_%START%
..\bin\testfw_app.exe -b ../../../build/vs2017-x64/testfw/tfw-dev --gfx egl -w 1920 -h 1080 -t gl_trex --ei -frame_step_time=40
```
......@@ -81,37 +81,19 @@ export LD_LIBRARY_PATH=.
export START=200
export END=210
export LABEL=trex
mkdir -p ../../../../../angle/src/tests/perf_tests/restricted_traces/${LABEL}_${START}_${END}
export ANGLE_CAPTURE_LABEL=${LABEL}_${START}_${END}
mkdir -p ../../../../../angle/src/tests/perf_tests/restricted_traces/${LABEL}_${START}
export ANGLE_CAPTURE_LABEL=${LABEL}_${START}
export ANGLE_CAPTURE_FRAME_START=$START
export ANGLE_CAPTURE_FRAME_END=$END
export ANGLE_CAPTURE_OUT_DIR=../../../../../angle/src/tests/perf_tests/restricted_traces/${LABEL}_${START}_${END}
export ANGLE_CAPTURE_OUT_DIR=../../../../../angle/src/tests/perf_tests/restricted_traces/${LABEL}_${START}
../bin/testfw_app -b $TFW_PACKAGE_DIR --gfx egl -w 1920 -h 1080 -t gl_trex --ei -frame_step_time=40
# Manhattan
export START=10
export END=20
export LABEL=manhattan
mkdir -p ../../../../../angle/src/tests/perf_tests/restricted_traces/${LABEL}_${START}_${END}
export ANGLE_CAPTURE_LABEL=${LABEL}_${START}_${END}
export ANGLE_CAPTURE_FRAME_START=$START
export ANGLE_CAPTURE_FRAME_END=$END
export ANGLE_CAPTURE_OUT_DIR=../../../../../angle/src/tests/perf_tests/restricted_traces/${LABEL}_${START}_${END}
../bin/testfw_app -b $TFW_PACKAGE_DIR --gfx egl -w 1920 -h 1080 -t gl_manhattan --ei -frame_step_time=40
```
## Upload to the cloud
```
cd ~/chromium/src/third_party/angle/src/tests/perf_tests/restricted_traces
upload_to_google_storage.py --bucket chrome-angle-capture-binaries --archive trex_200_210
upload_to_google_storage.py --bucket chrome-angle-capture-binaries --archive trex_800_810
upload_to_google_storage.py --bucket chrome-angle-capture-binaries --archive trex_900_910
upload_to_google_storage.py --bucket chrome-angle-capture-binaries --archive trex_1300_1310
upload_to_google_storage.py --bucket chrome-angle-capture-binaries --archive manhattan_10_20
upload_to_google_storage.py --bucket chrome-angle-capture-binaries --archive manhattan_750_760
upload_to_google_storage.py --bucket chrome-angle-capture-binaries --archive manhattan_1100_1110
upload_to_google_storage.py --bucket chrome-angle-capture-binaries --archive manhattan_1440_1450
upload_to_google_storage.py --bucket chrome-angle-capture-binaries --archive trex_200
```
## Adding new tests
......
......@@ -7,21 +7,14 @@
import("../../../../gni/angle.gni")
_tests = [
"manhattan_10_20",
"manhattan_750_760",
"manhattan_1100_1110",
"manhattan_1440_1450",
"trex_200_210",
"trex_800_810",
"trex_900_910",
"trex_1300_1310",
]
# TODO: anglebug.com/4496
# Temporarily limit the data uploaded to a single trace to get the bots going
_tests = [ "trex_200" ]
angle_trace_perf_sources = [ "perf_tests/TracePerfTest.cpp" ]
angle_trace_perf_data =
[ "${angle_root}/src/tests/perf_tests/restricted_traces" ]
angle_trace_perf_defines = []
angle_trace_perf_data = []
foreach(_test, _tests) {
_test_dir = "${_test}"
......@@ -45,4 +38,6 @@ foreach(_test, _tests) {
angle_trace_perf_defines +=
[ "ANGLE_TRACE_DATA_DIR_${_test}=\"${_test_data_path}\"" ]
angle_trace_perf_data += [ "perf_tests/restricted_traces/${_test_dir}/${_test}_capture_context1.angledata.gz" ]
}
12433a3b2bd5361b01f3e6c61d944ab1e6eb71a7
\ No newline at end of file
c34356e81fa26b101d44a5fec8679128ec64a5d8
\ No newline at end of file
abfda52fd83ca39e458f592b8be68a40d4b999bb
\ No newline at end of file
691bacbb88b11092a806c898c82853f276b77f8d
\ No newline at end of file
d1da5e8274d5142293ae00057bb1066aa9061c6a
\ No newline at end of file
dbaacd69c219141a5395bef767655f03409089aa
\ No newline at end of file
e50d01919a132d01263c21197f4876a71d368b5f
\ No newline at end of file
a78534a5f6418039643a78e863fc03137bcfc77d
\ No newline at end of file
e3283fb8ea8075e6e7745167428f2867e2ddfb32
\ No newline at end of file
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