Perf: Add Reset call to trace tests
The traces are already updated to contain the Reset calls, now
actually call them from TracePerfTests.
Test: angle_perftests --gtest_filter="*Trace*"
Bug: b/152512564
Bug: angleproject:4599
Change-Id: I18b6726bc98b96f132c3245c51420cbfed1b84d8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2197284
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Courtney Goeltzenleuchter <courtneygo@google.com>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
diff --git a/scripts/code_generation_hashes/restricted_traces.json b/scripts/code_generation_hashes/restricted_traces.json
index c4ccf02..04d01c7 100644
--- a/scripts/code_generation_hashes/restricted_traces.json
+++ b/scripts/code_generation_hashes/restricted_traces.json
@@ -1,6 +1,6 @@
{
"src/tests/perf_tests/restricted_traces/gen_restricted_traces.py":
- "ff51ca78ed52c33ddfcc4a7e795f217c",
+ "f61ccd2c8ce98674527909d567083963",
"src/tests/perf_tests/restricted_traces/manhattan_10.tar.gz.sha1":
"b4d333cd5cf3977c339350be0a819928",
"src/tests/perf_tests/restricted_traces/restricted_traces.json":
@@ -8,7 +8,7 @@
"src/tests/perf_tests/restricted_traces/restricted_traces_autogen.gni":
"54343c0c0a3a15f076516ad26f2ada5a",
"src/tests/perf_tests/restricted_traces/restricted_traces_autogen.h":
- "d0b8cfda99009a6e042989ffa0ea3608",
+ "e08aec5cfa97c2239e3cccc6afccb1b0",
"src/tests/perf_tests/restricted_traces/trex_200.tar.gz.sha1":
"605cf71846da2309a002baa78abf28e1"
}
\ No newline at end of file
diff --git a/src/tests/perf_tests/TracePerfTest.cpp b/src/tests/perf_tests/TracePerfTest.cpp
index 5f22d18..55b883b 100644
--- a/src/tests/perf_tests/TracePerfTest.cpp
+++ b/src/tests/perf_tests/TracePerfTest.cpp
@@ -190,6 +190,8 @@
endInternalTraceEvent(frameName);
}
+ ResetReplay(GetParam().testID);
+
// Process any running queries once per iteration.
for (size_t queryIndex = 0; queryIndex < mRunningQueries.size();)
{
diff --git a/src/tests/perf_tests/restricted_traces/gen_restricted_traces.py b/src/tests/perf_tests/restricted_traces/gen_restricted_traces.py
index bae12f1..5354aed 100644
--- a/src/tests/perf_tests/restricted_traces/gen_restricted_traces.py
+++ b/src/tests/perf_tests/restricted_traces/gen_restricted_traces.py
@@ -49,6 +49,7 @@
}};
using ReplayFunc = void (*)(uint32_t);
+using ResetFunc = void (*)();
using SetupFunc = void (*)();
using DecompressFunc = uint8_t *(*)(const std::vector<uint8_t> &);
using SetBinaryDataDirFunc = void (*)(const char *);
@@ -81,6 +82,18 @@
}}
}}
+inline void ResetReplay(RestrictedTraceID traceID)
+{{
+ switch (traceID)
+ {{
+{reset_func_cases}
+ default:
+ fprintf(stderr, "Error in switch.\\n");
+ assert(0);
+ break;
+ }}
+}}
+
inline void SetupReplay(RestrictedTraceID traceID)
{{
switch (traceID)
@@ -206,6 +219,7 @@
format_args["trace_infos"] = ",\n".join(trace_infos)
format_args["replay_func_cases"] = get_cases_with_context(traces, "ReplayContext", "Frame",
"frameIndex")
+ format_args["reset_func_cases"] = get_cases_with_context(traces, "ResetContext", "Replay", "")
format_args["setup_func_cases"] = get_cases_with_context(traces, "SetupContext", "Replay", "")
format_args["set_binary_data_dir_cases"] = get_cases(traces, "SetBinaryDataDir", "dataDir")
format_args["decompress_callback_cases"] = get_cases(traces, "SetBinaryDataDecompressCallback",
diff --git a/src/tests/perf_tests/restricted_traces/restricted_traces_autogen.h b/src/tests/perf_tests/restricted_traces/restricted_traces_autogen.h
index 189874c..97a1532 100644
--- a/src/tests/perf_tests/restricted_traces/restricted_traces_autogen.h
+++ b/src/tests/perf_tests/restricted_traces/restricted_traces_autogen.h
@@ -24,6 +24,7 @@
};
using ReplayFunc = void (*)(uint32_t);
+using ResetFunc = void (*)();
using SetupFunc = void (*)();
using DecompressFunc = uint8_t *(*)(const std::vector<uint8_t> &);
using SetBinaryDataDirFunc = void (*)(const char *);
@@ -63,6 +64,23 @@
}
}
+inline void ResetReplay(RestrictedTraceID traceID)
+{
+ switch (traceID)
+ {
+ case RestrictedTraceID::manhattan_10:
+ manhattan_10::ResetContext1Replay();
+ break;
+ case RestrictedTraceID::trex_200:
+ trex_200::ResetContext1Replay();
+ break;
+ default:
+ fprintf(stderr, "Error in switch.\n");
+ assert(0);
+ break;
+ }
+}
+
inline void SetupReplay(RestrictedTraceID traceID)
{
switch (traceID)