Tests: Add Saint Seiya Awakening: Knights of the Zodiac trace

Test: angle_perftests --gtest_filter=TracePerfTest.Run/*saint_seiya_awakening*
Bug: angleproject:4048
Change-Id: Idf187b9c9298d184f1e0dd13f8a9aa0de7c2beb8
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2612523
Commit-Queue: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/scripts/code_generation_hashes/restricted_traces.json b/scripts/code_generation_hashes/restricted_traces.json
index 0b76464..f614a1a 100644
--- a/scripts/code_generation_hashes/restricted_traces.json
+++ b/scripts/code_generation_hashes/restricted_traces.json
@@ -1,6 +1,6 @@
 {
   "src/tests/restricted_traces/.gitignore":
-    "86197b3c5733bea4b743355cf7117fe2",
+    "9563bf9ee34d4668ff5eab13626d151b",
   "src/tests/restricted_traces/angry_birds_2_1500.tar.gz.sha1":
     "2b5d6505d6a8b6f3bbfbad2c8405a89d",
   "src/tests/restricted_traces/arena_of_valor.tar.gz.sha1":
@@ -44,13 +44,15 @@
   "src/tests/restricted_traces/real_commando_secret_mission.tar.gz.sha1":
     "4b484dd9c53a79100ec13b6f1c86040d",
   "src/tests/restricted_traces/restricted_traces.json":
-    "391c48a5701b9c3eb3e2636bc86b8f90",
+    "8fcaedb1a53858bc4ba8f323fbd3f757",
   "src/tests/restricted_traces/restricted_traces_autogen.cpp":
-    "c7ada0bd77b7549648770d51c1df982e",
+    "8403cd3e7d45726750ecbb6f48268337",
   "src/tests/restricted_traces/restricted_traces_autogen.gni":
-    "66b05e66d00988139e269fe2c0257480",
+    "64f04587e3b4c68d40187e0e0ec577fb",
   "src/tests/restricted_traces/restricted_traces_autogen.h":
-    "1dee486589dfc619165c21d2d70073d3",
+    "b948f29413ec2fdee7bd9a9241b36ad1",
+  "src/tests/restricted_traces/saint_seiya_awakening.tar.gz.sha1":
+    "c9cde6bdfd9096a44d5f03d905a45a4f",
   "src/tests/restricted_traces/temple_run_300.tar.gz.sha1":
     "0a08ce3df88cb358ccac3ac63ba04955",
   "src/tests/restricted_traces/trex_200.tar.gz.sha1":
diff --git a/src/tests/perf_tests/TracePerfTest.cpp b/src/tests/perf_tests/TracePerfTest.cpp
index ca8354d..62eec47 100644
--- a/src/tests/perf_tests/TracePerfTest.cpp
+++ b/src/tests/perf_tests/TracePerfTest.cpp
@@ -290,6 +290,17 @@
         addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
     }
 
+    if (param.testID == RestrictedTraceID::saint_seiya_awakening)
+    {
+        addExtensionPrerequisite("GL_EXT_shadow_samplers");
+
+        // TODO(https://anglebug.com/5517) Linux+Intel generates "Framebuffer is incomplete" errors.
+        if (IsLinux() && IsIntel() && param.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+        {
+            mSkipTest = true;
+        }
+    }
+
     // We already swap in TracePerfTest::drawBenchmark, no need to swap again in the harness.
     disableTestHarnessSwap();
 
diff --git a/src/tests/restricted_traces/.gitignore b/src/tests/restricted_traces/.gitignore
index 7374fa8..f845bb0 100644
--- a/src/tests/restricted_traces/.gitignore
+++ b/src/tests/restricted_traces/.gitignore
@@ -38,6 +38,8 @@
 pubg_mobile_lite/
 real_commando_secret_mission.tar.gz
 real_commando_secret_mission/
+saint_seiya_awakening.tar.gz
+saint_seiya_awakening/
 temple_run_300.tar.gz
 temple_run_300/
 trex_200.tar.gz
diff --git a/src/tests/restricted_traces/restricted_traces.json b/src/tests/restricted_traces/restricted_traces.json
index 1433373..1f82d13 100644
--- a/src/tests/restricted_traces/restricted_traces.json
+++ b/src/tests/restricted_traces/restricted_traces.json
@@ -27,6 +27,7 @@
     "nba2k20_800",
     "pubg_mobile_lite",
     "real_commando_secret_mission",
+    "saint_seiya_awakening",
     "temple_run_300",
     "trex_200",
     "whatsapp",
diff --git a/src/tests/restricted_traces/restricted_traces_autogen.cpp b/src/tests/restricted_traces/restricted_traces_autogen.cpp
index 88f9666..5fcf608 100644
--- a/src/tests/restricted_traces/restricted_traces_autogen.cpp
+++ b/src/tests/restricted_traces/restricted_traces_autogen.cpp
@@ -31,6 +31,7 @@
 #include "nba2k20_800/nba2k20_800_capture_context1.h"
 #include "pubg_mobile_lite/pubg_mobile_lite_capture_context1.h"
 #include "real_commando_secret_mission/real_commando_secret_mission_capture_context1.h"
+#include "saint_seiya_awakening/saint_seiya_awakening_capture_context2.h"
 #include "temple_run_300/temple_run_300_capture_context1.h"
 #include "trex_200/trex_200_capture_context1.h"
 #include "whatsapp/whatsapp_capture_context1.h"
@@ -115,6 +116,10 @@
       real_commando_secret_mission::kReplayFrameEnd,
       real_commando_secret_mission::kReplayDrawSurfaceWidth,
       real_commando_secret_mission::kReplayDrawSurfaceHeight, "real_commando_secret_mission"}},
+    {RestrictedTraceID::saint_seiya_awakening,
+     {saint_seiya_awakening::kReplayFrameStart, saint_seiya_awakening::kReplayFrameEnd,
+      saint_seiya_awakening::kReplayDrawSurfaceWidth,
+      saint_seiya_awakening::kReplayDrawSurfaceHeight, "saint_seiya_awakening"}},
     {RestrictedTraceID::temple_run_300,
      {temple_run_300::kReplayFrameStart, temple_run_300::kReplayFrameEnd,
       temple_run_300::kReplayDrawSurfaceWidth, temple_run_300::kReplayDrawSurfaceHeight,
@@ -204,6 +209,9 @@
         case RestrictedTraceID::real_commando_secret_mission:
             real_commando_secret_mission::ReplayContext1Frame(frameIndex);
             break;
+        case RestrictedTraceID::saint_seiya_awakening:
+            saint_seiya_awakening::ReplayContext2Frame(frameIndex);
+            break;
         case RestrictedTraceID::temple_run_300:
             temple_run_300::ReplayContext1Frame(frameIndex);
             break;
@@ -290,6 +298,9 @@
         case RestrictedTraceID::real_commando_secret_mission:
             real_commando_secret_mission::ResetContext1Replay();
             break;
+        case RestrictedTraceID::saint_seiya_awakening:
+            saint_seiya_awakening::ResetContext2Replay();
+            break;
         case RestrictedTraceID::temple_run_300:
             temple_run_300::ResetContext1Replay();
             break;
@@ -376,6 +387,9 @@
         case RestrictedTraceID::real_commando_secret_mission:
             real_commando_secret_mission::SetupContext1Replay();
             break;
+        case RestrictedTraceID::saint_seiya_awakening:
+            saint_seiya_awakening::SetupContext2Replay();
+            break;
         case RestrictedTraceID::temple_run_300:
             temple_run_300::SetupContext1Replay();
             break;
@@ -462,6 +476,9 @@
         case RestrictedTraceID::real_commando_secret_mission:
             real_commando_secret_mission::SetBinaryDataDir(dataDir);
             break;
+        case RestrictedTraceID::saint_seiya_awakening:
+            saint_seiya_awakening::SetBinaryDataDir(dataDir);
+            break;
         case RestrictedTraceID::temple_run_300:
             temple_run_300::SetBinaryDataDir(dataDir);
             break;
@@ -548,6 +565,9 @@
         case RestrictedTraceID::real_commando_secret_mission:
             real_commando_secret_mission::SetBinaryDataDecompressCallback(callback);
             break;
+        case RestrictedTraceID::saint_seiya_awakening:
+            saint_seiya_awakening::SetBinaryDataDecompressCallback(callback);
+            break;
         case RestrictedTraceID::temple_run_300:
             temple_run_300::SetBinaryDataDecompressCallback(callback);
             break;
diff --git a/src/tests/restricted_traces/restricted_traces_autogen.gni b/src/tests/restricted_traces/restricted_traces_autogen.gni
index 414aa9b..9a80a37 100644
--- a/src/tests/restricted_traces/restricted_traces_autogen.gni
+++ b/src/tests/restricted_traces/restricted_traces_autogen.gni
@@ -29,6 +29,7 @@
   "nba2k20_800 1",
   "pubg_mobile_lite 1",
   "real_commando_secret_mission 1",
+  "saint_seiya_awakening 2",
   "temple_run_300 1",
   "trex_200 1",
   "whatsapp 1",
diff --git a/src/tests/restricted_traces/restricted_traces_autogen.h b/src/tests/restricted_traces/restricted_traces_autogen.h
index 5681ee2..9d0b26c 100644
--- a/src/tests/restricted_traces/restricted_traces_autogen.h
+++ b/src/tests/restricted_traces/restricted_traces_autogen.h
@@ -74,6 +74,7 @@
     nba2k20_800,
     pubg_mobile_lite,
     real_commando_secret_mission,
+    saint_seiya_awakening,
     temple_run_300,
     trex_200,
     whatsapp,
diff --git a/src/tests/restricted_traces/saint_seiya_awakening.tar.gz.sha1 b/src/tests/restricted_traces/saint_seiya_awakening.tar.gz.sha1
new file mode 100644
index 0000000..837513b
--- /dev/null
+++ b/src/tests/restricted_traces/saint_seiya_awakening.tar.gz.sha1
@@ -0,0 +1 @@
+dbca9d334690dd372a7ea2c5a330ed4bfdfda8f4
\ No newline at end of file