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, ...@@ -778,6 +778,7 @@ void WriteCppReplayIndexFiles(bool compression,
header << "#include <cstdio>\n"; header << "#include <cstdio>\n";
header << "#include <cstring>\n"; header << "#include <cstring>\n";
header << "#include <limits>\n"; header << "#include <limits>\n";
header << "#include <vector>\n";
header << "#include <unordered_map>\n"; header << "#include <unordered_map>\n";
header << "\n"; header << "\n";
......
...@@ -14,14 +14,7 @@ ...@@ -14,14 +14,7 @@
#include "tests/perf_tests/DrawCallPerfParams.h" #include "tests/perf_tests/DrawCallPerfParams.h"
#include "util/egl_loader_autogen.h" #include "util/egl_loader_autogen.h"
#include "restricted_traces/manhattan_10_20/manhattan_10_20_capture_context1.h" #include "restricted_traces/trex_200/trex_200_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 <cassert> #include <cassert>
#include <functional> #include <functional>
...@@ -57,16 +50,11 @@ ANGLE_MAYBE_UNUSED uint8_t *DecompressBinaryData(const std::vector<uint8_t> &com ...@@ -57,16 +50,11 @@ ANGLE_MAYBE_UNUSED uint8_t *DecompressBinaryData(const std::vector<uint8_t> &com
return uncompressedData.release(); return uncompressedData.release();
} }
// TODO (anglebug.com/4496)
// Temporarily limit the tests to a single trace to get the bots going
enum class TracePerfTestID enum class TracePerfTestID
{ {
Manhattan10,
Manhattan750,
Manhattan1100,
Manhattan1440,
TRex200, TRex200,
TRex800,
TRex900,
TRex1300,
InvalidEnum, InvalidEnum,
}; };
...@@ -93,30 +81,9 @@ struct TracePerfParams final : public RenderTestParams ...@@ -93,30 +81,9 @@ struct TracePerfParams final : public RenderTestParams
switch (testID) 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: case TracePerfTestID::TRex200:
strstr << "_trex_200"; strstr << "_trex_200";
break; break;
case TracePerfTestID::TRex800:
strstr << "_trex_800";
break;
case TracePerfTestID::TRex900:
strstr << "_trex_900";
break;
case TracePerfTestID::TRex1300:
strstr << "_trex_1300";
break;
default: default:
assert(0); assert(0);
break; break;
...@@ -198,30 +165,9 @@ void TracePerfTest::initializeBenchmark() ...@@ -198,30 +165,9 @@ void TracePerfTest::initializeBenchmark()
switch (params.testID) 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: case TracePerfTestID::TRex200:
TRACE_TEST_CASE(trex_200_210); trex_200::SetBinaryDataDecompressCallback(DecompressBinaryData);
break; TRACE_TEST_CASE(trex_200);
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);
break; break;
default: default:
assert(0); assert(0);
......
...@@ -59,11 +59,11 @@ set ANGLE_DEFAULT_PLATFORM=vulkan ...@@ -59,11 +59,11 @@ set ANGLE_DEFAULT_PLATFORM=vulkan
set START=200 set START=200
set END=210 set END=210
set LABEL=trex set LABEL=trex
mkdir ..\..\..\..\..\angle\src\tests\perf_tests\restricted_traces\%LABEL%_%START%_%END% mkdir ..\..\..\..\..\angle\src\tests\perf_tests\restricted_traces\%LABEL%_%START%
set ANGLE_CAPTURE_LABEL=%LABEL%_%START%_%END% set ANGLE_CAPTURE_LABEL=%LABEL%_%START%
set ANGLE_CAPTURE_FRAME_START=%START% set ANGLE_CAPTURE_FRAME_START=%START%
set ANGLE_CAPTURE_FRAME_END=%END% 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 ..\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=. ...@@ -81,37 +81,19 @@ export LD_LIBRARY_PATH=.
export START=200 export START=200
export END=210 export END=210
export LABEL=trex export LABEL=trex
mkdir -p ../../../../../angle/src/tests/perf_tests/restricted_traces/${LABEL}_${START}_${END} mkdir -p ../../../../../angle/src/tests/perf_tests/restricted_traces/${LABEL}_${START}
export ANGLE_CAPTURE_LABEL=${LABEL}_${START}_${END} export ANGLE_CAPTURE_LABEL=${LABEL}_${START}
export ANGLE_CAPTURE_FRAME_START=$START export ANGLE_CAPTURE_FRAME_START=$START
export ANGLE_CAPTURE_FRAME_END=$END 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 ../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 ## Upload to the cloud
``` ```
cd ~/chromium/src/third_party/angle/src/tests/perf_tests/restricted_traces 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_200
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
``` ```
## Adding new tests ## Adding new tests
......
...@@ -7,21 +7,14 @@ ...@@ -7,21 +7,14 @@
import("../../../../gni/angle.gni") import("../../../../gni/angle.gni")
_tests = [ # TODO: anglebug.com/4496
"manhattan_10_20", # Temporarily limit the data uploaded to a single trace to get the bots going
"manhattan_750_760", _tests = [ "trex_200" ]
"manhattan_1100_1110",
"manhattan_1440_1450",
"trex_200_210",
"trex_800_810",
"trex_900_910",
"trex_1300_1310",
]
angle_trace_perf_sources = [ "perf_tests/TracePerfTest.cpp" ] 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_defines = []
angle_trace_perf_data = []
foreach(_test, _tests) { foreach(_test, _tests) {
_test_dir = "${_test}" _test_dir = "${_test}"
...@@ -45,4 +38,6 @@ foreach(_test, _tests) { ...@@ -45,4 +38,6 @@ foreach(_test, _tests) {
angle_trace_perf_defines += angle_trace_perf_defines +=
[ "ANGLE_TRACE_DATA_DIR_${_test}=\"${_test_data_path}\"" ] [ "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