Commit 968bb06d by Cody Northrop Committed by Commit Bot

Capture/Replay: Update traces to include Reset

Now that our traces can reset state back to how it started with MEC: * Update the code generation to include that call. * Update existing traces to include that call. * Add a capture of Temple Run. Test: angle_perftests.exe --gtest_filter="Trace*" Bug: b/152512564 Bug: angleproject:3662 Bug: angleproject:4599 Change-Id: I4062271b75b5c6fc9122b301d1af443d79770edc Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2182911Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCourtney Goeltzenleuchter <courtneygo@google.com> Commit-Queue: Courtney Goeltzenleuchter <courtneygo@google.com>
parent 1ab55d96
{ {
"src/tests/perf_tests/restricted_traces/gen_restricted_traces.py": "src/tests/perf_tests/restricted_traces/gen_restricted_traces.py":
"9cd5b4fa06f8d53fc7ae5ce3059efeaa", "fc94f7c9564851007a2cc948ec294763",
"src/tests/perf_tests/restricted_traces/restricted_traces.json": "src/tests/perf_tests/restricted_traces/restricted_traces.json":
"b73081e6815268e7712599d83f4bfb7c", "2ec0b24146fae188133760e75ed3c2a7",
"src/tests/perf_tests/restricted_traces/restricted_traces_autogen.gni": "src/tests/perf_tests/restricted_traces/restricted_traces_autogen.gni":
"00afbfd7987ff25af045af104477a680", "03132a8daefaad262bb235e3752cea32",
"src/tests/perf_tests/restricted_traces/restricted_traces_autogen.h": "src/tests/perf_tests/restricted_traces/restricted_traces_autogen.h":
"d0b8cfda99009a6e042989ffa0ea3608" "bd774aa39eccb200671a7ee7a95151a5"
} }
\ No newline at end of file
...@@ -188,6 +188,8 @@ void TracePerfTest::drawBenchmark() ...@@ -188,6 +188,8 @@ void TracePerfTest::drawBenchmark()
endInternalTraceEvent(frameName); endInternalTraceEvent(frameName);
} }
ResetReplay(GetParam().testID);
// Process any running queries once per iteration. // Process any running queries once per iteration.
for (size_t queryIndex = 0; queryIndex < mRunningQueries.size();) for (size_t queryIndex = 0; queryIndex < mRunningQueries.size();)
{ {
......
...@@ -46,6 +46,7 @@ enum class RestrictedTraceID ...@@ -46,6 +46,7 @@ enum class RestrictedTraceID
}}; }};
using ReplayFunc = void (*)(uint32_t); using ReplayFunc = void (*)(uint32_t);
using ResetFunc = void (*)();
using SetupFunc = void (*)(); using SetupFunc = void (*)();
using DecompressFunc = uint8_t *(*)(const std::vector<uint8_t> &); using DecompressFunc = uint8_t *(*)(const std::vector<uint8_t> &);
using SetBinaryDataDirFunc = void (*)(const char *); using SetBinaryDataDirFunc = void (*)(const char *);
...@@ -78,6 +79,18 @@ inline void ReplayFrame(RestrictedTraceID traceID, uint32_t frameIndex) ...@@ -78,6 +79,18 @@ inline void ReplayFrame(RestrictedTraceID traceID, uint32_t frameIndex)
}} }}
}} }}
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) inline void SetupReplay(RestrictedTraceID traceID)
{{ {{
switch (traceID) switch (traceID)
...@@ -173,6 +186,7 @@ def gen_header(traces, header_file, format_args): ...@@ -173,6 +186,7 @@ def gen_header(traces, header_file, format_args):
format_args["trace_ids"] = ",\n".join(traces) format_args["trace_ids"] = ",\n".join(traces)
format_args["trace_infos"] = ",\n".join(trace_infos) format_args["trace_infos"] = ",\n".join(trace_infos)
format_args["replay_func_cases"] = get_cases(traces, "ReplayContext1Frame", "frameIndex") format_args["replay_func_cases"] = get_cases(traces, "ReplayContext1Frame", "frameIndex")
format_args["reset_func_cases"] = get_cases(traces, "ResetContext1Replay", "")
format_args["setup_func_cases"] = get_cases(traces, "SetupContext1Replay", "") format_args["setup_func_cases"] = get_cases(traces, "SetupContext1Replay", "")
format_args["set_binary_data_dir_cases"] = get_cases(traces, "SetBinaryDataDir", "dataDir") format_args["set_binary_data_dir_cases"] = get_cases(traces, "SetBinaryDataDir", "dataDir")
format_args["decompress_callback_cases"] = get_cases(traces, "SetBinaryDataDecompressCallback", format_args["decompress_callback_cases"] = get_cases(traces, "SetBinaryDataDecompressCallback",
......
f801199c7958b20531cbd02289daa5127090d3a5 018ddfe594c3d710f47865e6d72c9dee1f7a0b24
\ No newline at end of file \ No newline at end of file
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
], ],
"traces": [ "traces": [
"manhattan_10", "manhattan_10",
"temple_run_300",
"trex_200" "trex_200"
] ]
} }
\ No newline at end of file
...@@ -9,5 +9,6 @@ ...@@ -9,5 +9,6 @@
angle_restricted_traces = [ angle_restricted_traces = [
"manhattan_10", "manhattan_10",
"temple_run_300",
"trex_200", "trex_200",
] ]
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#define ANGLE_RESTRICTED_TRACES_H_ #define ANGLE_RESTRICTED_TRACES_H_
#include "manhattan_10/manhattan_10_capture_context1.h" #include "manhattan_10/manhattan_10_capture_context1.h"
#include "temple_run_300/temple_run_300_capture_context1.h"
#include "trex_200/trex_200_capture_context1.h" #include "trex_200/trex_200_capture_context1.h"
namespace angle namespace angle
...@@ -18,12 +19,14 @@ namespace angle ...@@ -18,12 +19,14 @@ namespace angle
enum class RestrictedTraceID enum class RestrictedTraceID
{ {
manhattan_10, manhattan_10,
temple_run_300,
trex_200, trex_200,
InvalidEnum, InvalidEnum,
EnumCount = InvalidEnum EnumCount = InvalidEnum
}; };
using ReplayFunc = void (*)(uint32_t); using ReplayFunc = void (*)(uint32_t);
using ResetFunc = void (*)();
using SetupFunc = void (*)(); using SetupFunc = void (*)();
using DecompressFunc = uint8_t *(*)(const std::vector<uint8_t> &); using DecompressFunc = uint8_t *(*)(const std::vector<uint8_t> &);
using SetBinaryDataDirFunc = void (*)(const char *); using SetBinaryDataDirFunc = void (*)(const char *);
...@@ -40,6 +43,8 @@ struct TraceInfo ...@@ -40,6 +43,8 @@ struct TraceInfo
constexpr angle::PackedEnumMap<RestrictedTraceID, TraceInfo> kTraceInfos = { constexpr angle::PackedEnumMap<RestrictedTraceID, TraceInfo> kTraceInfos = {
{RestrictedTraceID::manhattan_10, {RestrictedTraceID::manhattan_10,
{manhattan_10::kReplayFrameStart, manhattan_10::kReplayFrameEnd, "manhattan_10"}}, {manhattan_10::kReplayFrameStart, manhattan_10::kReplayFrameEnd, "manhattan_10"}},
{RestrictedTraceID::temple_run_300,
{temple_run_300::kReplayFrameStart, temple_run_300::kReplayFrameEnd, "temple_run_300"}},
{RestrictedTraceID::trex_200, {RestrictedTraceID::trex_200,
{trex_200::kReplayFrameStart, trex_200::kReplayFrameEnd, "trex_200"}}}; {trex_200::kReplayFrameStart, trex_200::kReplayFrameEnd, "trex_200"}}};
...@@ -53,6 +58,9 @@ inline void ReplayFrame(RestrictedTraceID traceID, uint32_t frameIndex) ...@@ -53,6 +58,9 @@ inline void ReplayFrame(RestrictedTraceID traceID, uint32_t frameIndex)
case RestrictedTraceID::manhattan_10: case RestrictedTraceID::manhattan_10:
manhattan_10::ReplayContext1Frame(frameIndex); manhattan_10::ReplayContext1Frame(frameIndex);
break; break;
case RestrictedTraceID::temple_run_300:
temple_run_300::ReplayContext1Frame(frameIndex);
break;
case RestrictedTraceID::trex_200: case RestrictedTraceID::trex_200:
trex_200::ReplayContext1Frame(frameIndex); trex_200::ReplayContext1Frame(frameIndex);
break; break;
...@@ -63,6 +71,26 @@ inline void ReplayFrame(RestrictedTraceID traceID, uint32_t frameIndex) ...@@ -63,6 +71,26 @@ inline void ReplayFrame(RestrictedTraceID traceID, uint32_t frameIndex)
} }
} }
inline void ResetReplay(RestrictedTraceID traceID)
{
switch (traceID)
{
case RestrictedTraceID::manhattan_10:
manhattan_10::ResetContext1Replay();
break;
case RestrictedTraceID::temple_run_300:
temple_run_300::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) inline void SetupReplay(RestrictedTraceID traceID)
{ {
switch (traceID) switch (traceID)
...@@ -70,6 +98,9 @@ inline void SetupReplay(RestrictedTraceID traceID) ...@@ -70,6 +98,9 @@ inline void SetupReplay(RestrictedTraceID traceID)
case RestrictedTraceID::manhattan_10: case RestrictedTraceID::manhattan_10:
manhattan_10::SetupContext1Replay(); manhattan_10::SetupContext1Replay();
break; break;
case RestrictedTraceID::temple_run_300:
temple_run_300::SetupContext1Replay();
break;
case RestrictedTraceID::trex_200: case RestrictedTraceID::trex_200:
trex_200::SetupContext1Replay(); trex_200::SetupContext1Replay();
break; break;
...@@ -87,6 +118,9 @@ inline void SetBinaryDataDir(RestrictedTraceID traceID, const char *dataDir) ...@@ -87,6 +118,9 @@ inline void SetBinaryDataDir(RestrictedTraceID traceID, const char *dataDir)
case RestrictedTraceID::manhattan_10: case RestrictedTraceID::manhattan_10:
manhattan_10::SetBinaryDataDir(dataDir); manhattan_10::SetBinaryDataDir(dataDir);
break; break;
case RestrictedTraceID::temple_run_300:
temple_run_300::SetBinaryDataDir(dataDir);
break;
case RestrictedTraceID::trex_200: case RestrictedTraceID::trex_200:
trex_200::SetBinaryDataDir(dataDir); trex_200::SetBinaryDataDir(dataDir);
break; break;
...@@ -104,6 +138,9 @@ inline void SetBinaryDataDecompressCallback(RestrictedTraceID traceID, Decompres ...@@ -104,6 +138,9 @@ inline void SetBinaryDataDecompressCallback(RestrictedTraceID traceID, Decompres
case RestrictedTraceID::manhattan_10: case RestrictedTraceID::manhattan_10:
manhattan_10::SetBinaryDataDecompressCallback(callback); manhattan_10::SetBinaryDataDecompressCallback(callback);
break; break;
case RestrictedTraceID::temple_run_300:
temple_run_300::SetBinaryDataDecompressCallback(callback);
break;
case RestrictedTraceID::trex_200: case RestrictedTraceID::trex_200:
trex_200::SetBinaryDataDecompressCallback(callback); trex_200::SetBinaryDataDecompressCallback(callback);
break; break;
...@@ -123,6 +160,9 @@ inline void SetFramebufferChangeCallback(RestrictedTraceID traceID, ...@@ -123,6 +160,9 @@ inline void SetFramebufferChangeCallback(RestrictedTraceID traceID,
case RestrictedTraceID::manhattan_10: case RestrictedTraceID::manhattan_10:
manhattan_10::SetFramebufferChangeCallback(userData, callback); manhattan_10::SetFramebufferChangeCallback(userData, callback);
break; break;
case RestrictedTraceID::temple_run_300:
temple_run_300::SetFramebufferChangeCallback(userData, callback);
break;
case RestrictedTraceID::trex_200: case RestrictedTraceID::trex_200:
trex_200::SetFramebufferChangeCallback(userData, callback); trex_200::SetFramebufferChangeCallback(userData, callback);
break; break;
......
ba65757605d9fc7b1610119d61973ed60fd9f806
\ No newline at end of file
dbaacd69c219141a5395bef767655f03409089aa 63cb77e53b902e167e346e36affedf9996b84cab
\ No newline at end of file \ 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