Trace Tests: Load trace list from JSON file.
Instead of using the auto-generated enum for the trace list, load
directly from restricted_traces.json. This will lead to more CLs
that entirely remove the auto-generated code from the trace tests.
Bug: angleproject:5133
Change-Id: I6515624a2145319d097b43085741cf9c48f1792e
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140217
Reviewed-by: Tim Van Patten <timvp@google.com>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/scripts/code_generation_hashes/restricted_traces.json b/scripts/code_generation_hashes/restricted_traces.json
index d077cb7..65e5823 100644
--- a/scripts/code_generation_hashes/restricted_traces.json
+++ b/scripts/code_generation_hashes/restricted_traces.json
@@ -2,13 +2,13 @@
"src/tests/restricted_traces/.gitignore":
"111524060c1eb48a1969a91f8ae13e59",
"src/tests/restricted_traces/gen_restricted_traces.py":
- "f59f4c6c0891917ae0db0b95b3d67a52",
+ "7af1825f7a46ece5f93947c2b16a7839",
"src/tests/restricted_traces/restricted_traces.json":
"b7d9e3fe8e34d206a147d6be3a60a688",
"src/tests/restricted_traces/restricted_traces_autogen.cpp":
- "756ac60386e3ce26bb15f71ffec4a954",
+ "8d6a8004aaf1aa00cb8b525940dd6f7d",
"src/tests/restricted_traces/restricted_traces_autogen.gni":
"3016d2852c61cbb5dbf876b787cabe10",
"src/tests/restricted_traces/restricted_traces_autogen.h":
- "c6e084559bb22c362e307dba25264a4c"
+ "4da2eb50842afbb7c1023b395f4bfb8e"
}
\ No newline at end of file
diff --git a/src/tests/perf_tests/TracePerfTest.cpp b/src/tests/perf_tests/TracePerfTest.cpp
index 23f29f8..734bbcc 100644
--- a/src/tests/perf_tests/TracePerfTest.cpp
+++ b/src/tests/perf_tests/TracePerfTest.cpp
@@ -9,6 +9,7 @@
#include <gtest/gtest.h>
#include "common/PackedEnums.h"
+#include "common/string_utils.h"
#include "common/system_utils.h"
#include "tests/perf_tests/ANGLEPerfTest.h"
#include "tests/perf_tests/ANGLEPerfTestArgs.h"
@@ -20,7 +21,11 @@
#include "restricted_traces/restricted_traces_autogen.h"
+#include <rapidjson/document.h>
+#include <rapidjson/istreamwrapper.h>
+
#include <cassert>
+#include <fstream>
#include <functional>
#include <sstream>
@@ -42,6 +47,8 @@
namespace
{
+constexpr size_t kMaxPath = 1024;
+
struct TracePerfParams final : public RenderTestParams
{
// Common default options
@@ -54,11 +61,11 @@
std::string story() const override
{
std::stringstream strstr;
- strstr << RenderTestParams::story() << "_" << GetTraceInfo(testID).name;
+ strstr << RenderTestParams::story() << "_" << traceInfo.name;
return strstr.str();
}
- RestrictedTraceID testID;
+ TraceInfo traceInfo;
};
std::ostream &operator<<(std::ostream &os, const TracePerfParams ¶ms)
@@ -108,15 +115,25 @@
double getHostTimeFromGLTime(GLint64 glTime);
+ uint32_t frameCount() const
+ {
+ const TraceInfo &traceInfo = mParams.traceInfo;
+ return traceInfo.endFrame - traceInfo.startFrame + 1;
+ }
+
int getStepAlignment() const override
{
// Align step counts to the number of frames in a trace.
- const TraceInfo &traceInfo = GetTraceInfo(mParams.testID);
- return static_cast<int>(traceInfo.endFrame - traceInfo.startFrame + 1);
+ return static_cast<int>(frameCount());
}
void TestBody() override { run(); }
+ bool traceNameIs(const char *name) const
+ {
+ return strncmp(name, mParams.traceInfo.name, kTraceInfoMaxNameLen) == 0;
+ }
+
private:
struct QueryInfo
{
@@ -631,37 +648,36 @@
gCurrentTracePerfTest->validateSerializedState(serializedState, fileName, line);
}
+constexpr char kTraceTestFolder[] = "src/tests/restricted_traces";
+
+bool FindTraceTestDataPath(const char *traceName, char *testDataDirOut, size_t maxDataDirLen)
+{
+ char relativeTestDataDir[kMaxPath] = {};
+ snprintf(relativeTestDataDir, kMaxPath, "%s%s", kTraceTestFolder, traceName);
+ return angle::FindTestDataPath(relativeTestDataDir, testDataDirOut, maxDataDirLen);
+}
+
+bool FindRootTraceTestDataPath(char *testDataDirOut, size_t maxDataDirLen)
+{
+ return angle::FindTestDataPath(kTraceTestFolder, testDataDirOut, maxDataDirLen);
+}
+
TracePerfTest::TracePerfTest(const TracePerfParams ¶ms)
: ANGLERenderTest("TracePerf", params, "ms"), mParams(params), mStartFrame(0), mEndFrame(0)
{
// TODO: http://anglebug.com/4533 This fails after the upgrade to the 26.20.100.7870 driver.
- if (IsWindows() && IsIntel() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE &&
- mParams.testID == RestrictedTraceID::manhattan_10)
+ if (IsWindows() && IsIntel() && mParams.isVulkan() && traceNameIs("manhattan_10"))
{
mSkipTest = true;
}
// TODO: http://anglebug.com/4731 Fails on older Intel drivers. Passes in newer.
- if (IsWindows() && IsIntel() && mParams.driver != GLESDriverType::AngleEGL &&
- mParams.testID == RestrictedTraceID::angry_birds_2_1500)
+ if (IsWindows() && IsIntel() && !mParams.isANGLE() && traceNameIs("angry_birds_2_1500"))
{
mSkipTest = true;
}
- if (mParams.surfaceType != SurfaceType::Window && !gEnableAllTraceTests)
- {
- printf("Test skipped. Use --enable-all-trace-tests to run.\n");
- mSkipTest = true;
- }
-
- if (mParams.eglParameters.deviceType != EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE &&
- !gEnableAllTraceTests)
- {
- printf("Test skipped. Use --enable-all-trace-tests to run.\n");
- mSkipTest = true;
- }
-
- if (mParams.testID == RestrictedTraceID::cod_mobile)
+ if (traceNameIs("cod_mobile"))
{
// TODO: http://anglebug.com/4967 Vulkan: GL_EXT_color_buffer_float not supported on Pixel 2
// The COD:Mobile trace uses a framebuffer attachment with:
@@ -675,62 +691,62 @@
addExtensionPrerequisite("GL_OES_EGL_image_external");
}
- if (mParams.testID == RestrictedTraceID::brawl_stars)
+ if (traceNameIs("brawl_stars"))
{
addExtensionPrerequisite("GL_EXT_shadow_samplers");
}
- if (mParams.testID == RestrictedTraceID::free_fire)
+ if (traceNameIs("free_fire"))
{
addExtensionPrerequisite("GL_OES_EGL_image_external");
}
- if (mParams.testID == RestrictedTraceID::marvel_contest_of_champions)
+ if (traceNameIs("marvel_contest_of_champions"))
{
addExtensionPrerequisite("GL_EXT_color_buffer_half_float");
}
- if (mParams.testID == RestrictedTraceID::world_of_tanks_blitz)
+ if (traceNameIs("world_of_tanks_blitz"))
{
addExtensionPrerequisite("GL_EXT_disjoint_timer_query");
}
- if (mParams.testID == RestrictedTraceID::dragon_ball_legends)
+ if (traceNameIs("dragon_ball_legends"))
{
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
- if (mParams.testID == RestrictedTraceID::lego_legacy)
+ if (traceNameIs("lego_legacy"))
{
addExtensionPrerequisite("GL_EXT_shadow_samplers");
}
- if (mParams.testID == RestrictedTraceID::world_war_doh)
+ if (traceNameIs("world_war_doh"))
{
- // Linux+Nvidia doesn't support GL_KHR_texture_compression_astc_ldr (possibly others also)
+ // Linux+NVIDIA doesn't support GL_KHR_texture_compression_astc_ldr (possibly others also)
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
- if (mParams.testID == RestrictedTraceID::saint_seiya_awakening)
+ if (traceNameIs("saint_seiya_awakening"))
{
addExtensionPrerequisite("GL_EXT_shadow_samplers");
// TODO(https://anglebug.com/5517) Linux+Intel generates "Framebuffer is incomplete" errors.
- if (IsLinux() && IsIntel() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsLinux() && IsIntel() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::magic_tiles_3)
+ if (traceNameIs("magic_tiles_3"))
{
- // Linux+Nvidia doesn't support GL_KHR_texture_compression_astc_ldr (possibly others also)
+ // Linux+NVIDIA doesn't support GL_KHR_texture_compression_astc_ldr (possibly others also)
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
- if (mParams.testID == RestrictedTraceID::real_gangster_crime)
+ if (traceNameIs("real_gangster_crime"))
{
- // Linux+Nvidia doesn't support GL_KHR_texture_compression_astc_ldr (possibly others also)
+ // Linux+NVIDIA doesn't support GL_KHR_texture_compression_astc_ldr (possibly others also)
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
// Intel doesn't support external images.
@@ -743,37 +759,36 @@
}
}
- if (mParams.testID == RestrictedTraceID::asphalt_8)
+ if (traceNameIs("asphalt_8"))
{
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
- if (mParams.testID == RestrictedTraceID::hearthstone)
+ if (traceNameIs("hearthstone"))
{
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
- if (mParams.testID == RestrictedTraceID::efootball_pes_2021)
+ if (traceNameIs("efootball_pes_2021"))
{
// TODO(https://anglebug.com/5517) Linux+Intel and Pixel 2 generate "Framebuffer is
// incomplete" errors with the Vulkan backend.
- if (mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE &&
- ((IsLinux() && IsIntel()) || IsPixel2()))
+ if (mParams.isVulkan() && ((IsLinux() && IsIntel()) || IsPixel2()))
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::manhattan_31)
+ if (traceNameIs("manhattan_31"))
{
// TODO: http://anglebug.com/5591 Trace crashes on Pixel 2 in vulkan driver
- if (IsPixel2() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsPixel2() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::idle_heroes)
+ if (traceNameIs("idle_heroes"))
{
// TODO: http://anglebug.com/5591 Trace crashes on Pixel 2
if (IsPixel2())
@@ -782,118 +797,113 @@
}
}
- if (mParams.testID == RestrictedTraceID::shadow_fight_2)
+ if (traceNameIs("shadow_fight_2"))
{
addExtensionPrerequisite("GL_OES_EGL_image_external");
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
- if (mParams.testID == RestrictedTraceID::rise_of_kingdoms)
+ if (traceNameIs("rise_of_kingdoms"))
{
addExtensionPrerequisite("GL_OES_EGL_image_external");
}
- if (mParams.testID == RestrictedTraceID::happy_color)
+ if (traceNameIs("happy_color"))
{
- if (IsWindows() && IsAMD() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsWindows() && IsAMD() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::bus_simulator_indonesia)
+ if (traceNameIs("bus_simulator_indonesia"))
{
// TODO(https://anglebug.com/5629) Linux+(Intel|AMD) native GLES generates
// GL_INVALID_OPERATION
- if (IsLinux() && (IsIntel() || IsAMD()) &&
- mParams.getRenderer() != EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsLinux() && (IsIntel() || IsAMD()) && !mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::messenger_lite)
+ if (traceNameIs("messenger_lite"))
{
- // TODO: https://anglebug.com/5663 Incorrect pixels on Nvidia Windows for first frame
- if (IsWindows() && IsNVIDIA() &&
- mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE &&
- mParams.getDeviceType() != EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE)
+ // TODO: https://anglebug.com/5663 Incorrect pixels on NVIDIA Windows for first frame
+ if (IsWindows() && IsNVIDIA() && mParams.isVulkan() && !mParams.isSwiftshader())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::among_us)
+ if (traceNameIs("among_us"))
{
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
- if (mParams.testID == RestrictedTraceID::car_parking_multiplayer)
+ if (traceNameIs("car_parking_multiplayer"))
{
- // TODO: https://anglebug.com/5613 Nvidia native driver spews undefined behavior warnings
- if (IsNVIDIA() && mParams.getRenderer() != EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ // TODO: https://anglebug.com/5613 NVIDIA native driver spews undefined behavior warnings
+ if (IsNVIDIA() && !mParams.isVulkan())
{
mSkipTest = true;
}
// TODO: https://anglebug.com/5724 Device lost on Win Intel
- if (IsWindows() && IsIntel() &&
- mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsWindows() && IsIntel() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::fifa_mobile)
+ if (traceNameIs("fifa_mobile"))
{
// TODO: http://anglebug.com/5875 Intel Windows Vulkan flakily renders entirely black
- if (IsWindows() && IsIntel() &&
- mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsWindows() && IsIntel() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::rope_hero_vice_town)
+ if (traceNameIs("rope_hero_vice_town"))
{
// TODO: http://anglebug.com/5716 Trace crashes on Pixel 2 in vulkan driver
- if (IsPixel2() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsPixel2() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::extreme_car_driving_simulator)
+ if (traceNameIs("extreme_car_driving_simulator"))
{
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
- if (mParams.testID == RestrictedTraceID::plants_vs_zombies_2)
+ if (traceNameIs("plants_vs_zombies_2"))
{
// TODO: http://crbug.com/1187752 Corrupted image
- if (IsWindows() && IsAMD() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsWindows() && IsAMD() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::junes_journey)
+ if (traceNameIs("junes_journey"))
{
addExtensionPrerequisite("GL_OES_EGL_image_external");
}
- if (mParams.testID == RestrictedTraceID::ragnarok_m_eternal_love)
+ if (traceNameIs("ragnarok_m_eternal_love"))
{
addExtensionPrerequisite("GL_OES_EGL_image_external");
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
// TODO: http://anglebug.com/5772 Pixel 2 errors with "Framebuffer is incomplete" on Vulkan
- if (IsPixel2() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsPixel2() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::real_cricket_20)
+ if (traceNameIs("real_cricket_20"))
{
// TODO: http://anglebug.com/5777 ARM doesn't have enough VS storage blocks
if (IsAndroid() && IsARM())
@@ -902,44 +912,43 @@
}
}
- if (mParams.testID == RestrictedTraceID::league_of_legends_wild_rift)
+ if (traceNameIs("league_of_legends_wild_rift"))
{
addExtensionPrerequisite("GL_OES_EGL_image_external");
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
// TODO: http://anglebug.com/5815 Trace is crashing on Intel Linux
- if (IsLinux() && IsIntel() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsLinux() && IsIntel() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::aztec_ruins)
+ if (traceNameIs("aztec_ruins"))
{
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
// TODO: http://anglebug.com/5553 Pixel 2 errors with "Framebuffer is incomplete" on Vulkan
- if (IsPixel2() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsPixel2() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::dragon_raja)
+ if (traceNameIs("dragon_raja"))
{
addExtensionPrerequisite("GL_OES_EGL_image_external");
// TODO: http://anglebug.com/5807 Intel Linux and Pixel 2 error with "Framebuffer is
// incomplete" on Vulkan
- if (((IsLinux() && IsIntel()) || IsPixel2()) &&
- mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (((IsLinux() && IsIntel()) || IsPixel2()) && mParams.isVulkan())
{
mSkipTest = true;
}
}
// Adreno gives a driver error with empty/small draw calls. http://anglebug.com/5823
- if (mParams.testID == RestrictedTraceID::hill_climb_racing)
+ if (traceNameIs("hill_climb_racing"))
{
if (IsAndroid() && (IsPixel2() || IsPixel4()) &&
mParams.driver == GLESDriverType::SystemEGL)
@@ -948,51 +957,47 @@
}
}
- if (mParams.testID == RestrictedTraceID::avakin_life)
+ if (traceNameIs("avakin_life"))
{
addExtensionPrerequisite("GL_OES_EGL_image_external");
}
- if (mParams.testID == RestrictedTraceID::professional_baseball_spirits)
+ if (traceNameIs("professional_baseball_spirits"))
{
// TODO(https://anglebug.com/5827) Linux+Mesa/RADV Vulkan generates
// GL_INVALID_FRAMEBUFFER_OPERATION.
// Mesa versions below 20.3.5 produce the same issue on Linux+Mesa/Intel Vulkan
- if (IsLinux() && (IsAMD() || IsIntel()) &&
- mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE &&
- mParams.eglParameters.deviceType != EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE)
+ if (IsLinux() && (IsAMD() || IsIntel()) && mParams.isVulkan() && !mParams.isSwiftshader())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::call_break_offline_card_game)
+ if (traceNameIs("call_break_offline_card_game"))
{
// TODO: http://anglebug.com/5837 Intel Linux Vulkan errors with "Framebuffer is incomplete"
- if ((IsLinux() && IsIntel()) &&
- mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if ((IsLinux() && IsIntel()) && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::slingshot_test1 ||
- mParams.testID == RestrictedTraceID::slingshot_test2)
+ if (traceNameIs("slingshot_test1") || traceNameIs("slingshot_test2"))
{
// TODO: http://anglebug.com/5877 Trace crashes on Pixel 2 in vulkan driver
- if (IsPixel2() && mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (IsPixel2() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::ludo_king)
+ if (traceNameIs("ludo_king"))
{
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
// TODO: http://anglebug.com/5943 GL_INVALID_ENUM on Windows/Intel.
- if (mParams.testID == RestrictedTraceID::summoners_war)
+ if (traceNameIs("summoners_war"))
{
if (IsWindows() && IsIntel() && mParams.driver != GLESDriverType::AngleEGL)
{
@@ -1000,21 +1005,20 @@
}
}
- if (mParams.testID == RestrictedTraceID::pokemon_go)
+ if (traceNameIs("pokemon_go"))
{
addExtensionPrerequisite("GL_EXT_texture_cube_map_array");
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
// TODO: http://anglebug.com/5989 Intel Linux crashing on teardown
// TODO: http://anglebug.com/5994 Intel Windows timing out periodically
- if ((IsLinux() || IsWindows()) && IsIntel() &&
- mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if ((IsLinux() || IsWindows()) && IsIntel() && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::cookie_run_kingdom)
+ if (traceNameIs("cookie_run_kingdom"))
{
addExtensionPrerequisite("GL_EXT_texture_cube_map_array");
addExtensionPrerequisite("GL_OES_EGL_image_external");
@@ -1026,32 +1030,30 @@
}
}
- if (mParams.testID == RestrictedTraceID::genshin_impact)
+ if (traceNameIs("genshin_impact"))
{
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
// TODO: http://anglebug.com/6023 Crashes on Pixel 2 in vulkan driver
// TODO: http://anglebug.com/6029 Crashes on Linux Intel Vulkan
- if (((IsLinux() && IsIntel()) || IsPixel2()) &&
- mParams.getRenderer() == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+ if (((IsLinux() && IsIntel()) || IsPixel2()) && mParams.isVulkan())
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::pubg_mobile_skydive ||
- mParams.testID == RestrictedTraceID::pubg_mobile_battle_royale)
+ if (traceNameIs("pubg_mobile_skydive") || traceNameIs("pubg_mobile_battle_royale"))
{
addExtensionPrerequisite("GL_EXT_texture_buffer");
- // TODO: http://anglebug.com/6240 Internal errors on Windows using Intel or Nvida
+ // TODO: http://anglebug.com/6240 Internal errors on Windows using Intel or NVIDIA
if (IsWindows() && (IsIntel() || IsNVIDIA()) && mParams.driver == GLESDriverType::SystemWGL)
{
mSkipTest = true;
}
}
- if (mParams.testID == RestrictedTraceID::sakura_school_simulator)
+ if (traceNameIs("sakura_school_simulator"))
{
// Flaky on Intel. http://anglebug.com/6294
if (IsWindows() && IsIntel())
@@ -1060,16 +1062,20 @@
}
}
- if (mParams.testID == RestrictedTraceID::scrabble_go)
+ if (traceNameIs("scrabble_go"))
{
addExtensionPrerequisite("GL_KHR_texture_compression_astc_ldr");
}
- if (mParams.testID == RestrictedTraceID::world_of_kings)
+ if (traceNameIs("world_of_kings"))
{
addExtensionPrerequisite("GL_OES_EGL_image_external");
}
+ ASSERT(mParams.surfaceType == SurfaceType::Window || gEnableAllTraceTests);
+ ASSERT(mParams.eglParameters.deviceType == EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE ||
+ gEnableAllTraceTests);
+
// We already swap in TracePerfTest::drawBenchmark, no need to swap again in the harness.
disableTestHarnessSwap();
@@ -1077,14 +1083,13 @@
if (gTraceTestValidation)
{
- const TraceInfo &traceInfo = GetTraceInfo(mParams.testID);
- mStepsToRun = (traceInfo.endFrame - traceInfo.startFrame + 1);
+ mStepsToRun = frameCount();
}
}
void TracePerfTest::initializeBenchmark()
{
- const TraceInfo &traceInfo = GetTraceInfo(mParams.testID);
+ const TraceInfo &traceInfo = mParams.traceInfo;
mStartingDirectory = angle::GetCWD().value();
@@ -1116,11 +1121,8 @@
mTraceLibrary->setValidateSerializedStateCallback(ValidateSerializedState);
- std::string relativeTestDataDir = std::string("src/tests/restricted_traces/") + traceInfo.name;
-
- constexpr size_t kMaxDataDirLen = 1000;
- char testDataDir[kMaxDataDirLen];
- if (!angle::FindTestDataPath(relativeTestDataDir.c_str(), testDataDir, kMaxDataDirLen))
+ char testDataDir[kMaxPath] = {};
+ if (!FindTraceTestDataPath(traceInfo.name, testDataDir, kMaxPath))
{
ERR() << "Could not find test data folder.";
mSkipTest = true;
@@ -1584,8 +1586,7 @@
printf("Serialization mismatch!\n");
- constexpr size_t kMaxPath = 1024;
- char aFilePath[kMaxPath] = {};
+ char aFilePath[kMaxPath] = {};
if (CreateTemporaryFile(aFilePath, kMaxPath))
{
printf("Saving \"expected\" capture serialization to \"%s\".\n", aFilePath);
@@ -1773,8 +1774,7 @@
std::vector<uint8_t> pixelData(pixelCount * 4);
// Only unbind the framebuffer on context versions where it's available.
- const TraceInfo &traceInfo = GetTraceInfo(mParams.testID);
- if (traceInfo.contextClientMajorVersion > 1)
+ if (mParams.traceInfo.contextClientMajorVersion > 1)
{
glBindFramebuffer(GL_FRAMEBUFFER, 0);
}
@@ -1805,12 +1805,12 @@
}
}
-TracePerfParams CombineTestID(const TracePerfParams &in, RestrictedTraceID id)
+TracePerfParams CombineTestID(const TracePerfParams &in, const std::string &traceName)
{
- const TraceInfo &traceInfo = GetTraceInfo(id);
+ const TraceInfo &traceInfo = GetTraceInfo(traceName.c_str());
TracePerfParams out = in;
- out.testID = id;
+ out.traceInfo = traceInfo;
out.majorVersion = traceInfo.contextClientMajorVersion;
out.minorVersion = traceInfo.contextClientMinorVersion;
out.windowWidth = traceInfo.drawSurfaceWidth;
@@ -1844,6 +1844,72 @@
void RegisterTraceTests()
{
+ // To load the trace data path correctly we set the CWD to the executable dir.
+ std::string previousCWD;
+ if (!IsAndroid())
+ {
+ previousCWD = angle::GetCWD().value();
+ std::string exeDir = angle::GetExecutableDirectory();
+ angle::SetCWD(exeDir.c_str());
+ }
+
+ char rootTracePath[kMaxPath] = {};
+ if (!FindRootTraceTestDataPath(rootTracePath, kMaxPath))
+ {
+ ERR() << "Unable to find trace folder.";
+ return;
+ }
+
+ // Open JSON file.
+ rapidjson::Document doc;
+ {
+ std::stringstream traceJsonStream;
+ traceJsonStream << rootTracePath << angle::GetPathSeparator() << "restricted_traces.json";
+ std::string traceJsonPath = traceJsonStream.str();
+
+ std::ifstream ifs(traceJsonPath);
+ if (!ifs.is_open())
+ {
+ ERR() << "Unable to open trace JSON file: " << traceJsonPath;
+ return;
+ }
+
+ rapidjson::IStreamWrapper inWrapper(ifs);
+
+ doc.ParseStream(inWrapper);
+
+ if (doc.HasParseError())
+ {
+ ERR() << "Parse error reading JSON stream from " << traceJsonPath;
+ return;
+ }
+ }
+
+ if (!doc.IsObject() || !doc.HasMember("traces") || !doc["traces"].IsArray())
+ {
+ ERR() << "Trace JSON document not formed properly.";
+ return;
+ }
+
+ // Read trace json into a list of trace names.
+ std::vector<std::string> traces;
+
+ rapidjson::Document::Array traceArray = doc["traces"].GetArray();
+ for (rapidjson::SizeType arrayIndex = 0; arrayIndex < traceArray.Size(); ++arrayIndex)
+ {
+ const rapidjson::Document::ValueType &arrayElement = traceArray[arrayIndex];
+
+ if (!arrayElement.IsString())
+ {
+ ERR() << "Trace JSON document not formed properly.";
+ return;
+ }
+
+ std::vector<std::string> traceAndVersion;
+ angle::SplitStringAlongWhitespace(arrayElement.GetString(), &traceAndVersion);
+ traces.push_back(traceAndVersion[0]);
+ }
+
std::vector<SurfaceType> surfaceTypes = {SurfaceType::Window};
if (gEnableAllTraceTests)
{
@@ -1861,7 +1927,7 @@
renderers.push_back(VulkanSwiftShader<P>);
}
- PV testsWithID = CombineWithValues({P()}, AllEnums<RestrictedTraceID>(), CombineTestID);
+ PV testsWithID = CombineWithValues({P()}, traces, CombineTestID);
PV testsWithSurfaceType = CombineWithValues(testsWithID, surfaceTypes, CombineWithSurfaceType);
PV testsWithRenderer = CombineWithFuncs(testsWithSurfaceType, renderers);
PV filteredTests = FilterTestParams(testsWithRenderer);
@@ -1887,4 +1953,9 @@
testing::RegisterTest("TracePerfTest", testName.c_str(), nullptr, paramName.c_str(),
__FILE__, __LINE__, factory);
}
+
+ if (!previousCWD.empty())
+ {
+ angle::SetCWD(previousCWD.c_str());
+ }
}
diff --git a/src/tests/restricted_traces/BUILD.gn b/src/tests/restricted_traces/BUILD.gn
index 9a7a800..26f86a2 100644
--- a/src/tests/restricted_traces/BUILD.gn
+++ b/src/tests/restricted_traces/BUILD.gn
@@ -59,6 +59,8 @@
"restricted_traces_export.h",
]
+ data = [ "restricted_traces.json" ]
+
data_deps = _traces
defines = [ "ANGLE_TRACE_IMPLEMENTATION" ]
diff --git a/src/tests/restricted_traces/gen_restricted_traces.py b/src/tests/restricted_traces/gen_restricted_traces.py
index ccec9ed..a4296b5 100755
--- a/src/tests/restricted_traces/gen_restricted_traces.py
+++ b/src/tests/restricted_traces/gen_restricted_traces.py
@@ -60,11 +60,6 @@
namespace angle
{{
-enum class RestrictedTraceID
-{{
-{trace_ids}, InvalidEnum, EnumCount = InvalidEnum
-}};
-
static constexpr size_t kTraceInfoMaxNameLen = 32;
static constexpr uint32_t kDefaultReplayContextClientMajorVersion = 3;
@@ -83,7 +78,7 @@
char name[kTraceInfoMaxNameLen];
}};
-ANGLE_TRACE_EXPORT const TraceInfo &GetTraceInfo(RestrictedTraceID traceID);
+ANGLE_TRACE_EXPORT const TraceInfo &GetTraceInfo(const char *traceName);
}} // namespace angle
#endif // ANGLE_RESTRICTED_TRACES_AUTOGEN_H_
@@ -110,14 +105,29 @@
{{
namespace
{{
-constexpr angle::PackedEnumMap<RestrictedTraceID, TraceInfo> kTraceInfos = {{
+constexpr size_t kNumTraces = {num_traces};
+struct TracePair
+{{
+ const char name[kTraceInfoMaxNameLen];
+ TraceInfo info;
+}};
+constexpr TracePair kTraceInfos[kNumTraces] = {{
{trace_infos}
}};
}}
-const TraceInfo &GetTraceInfo(RestrictedTraceID traceID)
+const TraceInfo &GetTraceInfo(const char *traceName)
{{
- return kTraceInfos[traceID];
+ // Could be improved using std::lower_bound.
+ for (const TracePair &tracePair : kTraceInfos)
+ {{
+ if (strncmp(tracePair.name, traceName, kTraceInfoMaxNameLen) == 0)
+ {{
+ return tracePair.info;
+ }}
+ }}
+ UNREACHABLE();
+ return kTraceInfos[0].info;
}}
}} // namespace angle
"""
@@ -202,25 +212,25 @@
info = []
if contains_context_version(trace):
info += [
- f"{trace}::kReplayContextClientMajorVersion",
- f"{trace}::kReplayContextClientMinorVersion"
+ f'{trace}::kReplayContextClientMajorVersion',
+ f'{trace}::kReplayContextClientMinorVersion'
]
else:
info += [
- "kDefaultReplayContextClientMajorVersion", "kDefaultReplayContextClientMinorVersion"
+ 'kDefaultReplayContextClientMajorVersion', 'kDefaultReplayContextClientMinorVersion'
]
info += [
- f"{trace}::kReplayFrameStart", f"{trace}::kReplayFrameEnd",
- f"{trace}::kReplayDrawSurfaceWidth", f"{trace}::kReplayDrawSurfaceHeight"
+ f'{trace}::kReplayFrameStart', f'{trace}::kReplayFrameEnd',
+ f'{trace}::kReplayDrawSurfaceWidth', f'{trace}::kReplayDrawSurfaceHeight'
]
if contains_colorspace(trace):
- info += [f"{trace}::kReplayDrawSurfaceColorSpace"]
+ info += [f'{trace}::kReplayDrawSurfaceColorSpace']
else:
- info += ["kDefaultReplayDrawSurfaceColorSpace"]
+ info += ['kDefaultReplayDrawSurfaceColorSpace']
- info += [f"\"{trace}\""]
+ info += [f'"{trace}"']
return ", ".join(info)
@@ -240,16 +250,16 @@
while file[start - 1].isdigit():
start -= 1
context = file[start:end]
- assert context.isnumeric(), "Failed to find trace context number"
+ assert context.isnumeric(), 'Failed to find trace context number'
return context
def get_header_name(trace):
- return "%s/%s_capture_context%s.h" % (trace, trace, get_context(trace))
+ return '%s/%s_capture_context%s.h' % (trace, trace, get_context(trace))
def get_source_name(trace):
- return "%s/%s_capture_context%s.cpp" % (trace, trace, get_context(trace))
+ return '%s/%s_capture_context%s.cpp' % (trace, trace, get_context(trace))
def gen_header(header_file, format_args):
@@ -346,23 +356,21 @@
return 0
format_args = {
- "script_name": os.path.basename(__file__),
- "data_source_name": json_file,
+ 'script_name': os.path.basename(__file__),
+ 'data_source_name': json_file,
}
if not gen_gni(traces, gni_file, format_args):
print('.gni file generation failed.')
return 1
- includes = ["#include \"%s\"" % get_header_name(trace) for trace in traces]
- trace_infos = [
- "{RestrictedTraceID::%s, {%s}}" % (trace, get_trace_info(trace)) for trace in traces
- ]
+ includes = ['#include "%s"' % get_header_name(trace) for trace in traces]
+ trace_infos = ['{"%s", {%s}}' % (trace, get_trace_info(trace)) for trace in traces]
- format_args["filename"] = "restricted_traces_autogen"
- format_args["trace_ids"] = ",\n".join(traces)
- format_args["trace_includes"] = "\n".join(includes)
- format_args["trace_infos"] = ",\n".join(trace_infos)
+ format_args['filename'] = 'restricted_traces_autogen'
+ format_args['num_traces'] = len(trace_infos)
+ format_args['trace_includes'] = '\n'.join(includes)
+ format_args['trace_infos'] = ',\n'.join(trace_infos)
if not gen_header(header_file, format_args):
print('.h file generation failed.')
return 1
diff --git a/src/tests/restricted_traces/restricted_traces_autogen.cpp b/src/tests/restricted_traces/restricted_traces_autogen.cpp
index 5ece274..8ffaf3c 100644
--- a/src/tests/restricted_traces/restricted_traces_autogen.cpp
+++ b/src/tests/restricted_traces/restricted_traces_autogen.cpp
@@ -119,73 +119,79 @@
{
namespace
{
-constexpr angle::PackedEnumMap<RestrictedTraceID, TraceInfo> kTraceInfos = {
- {RestrictedTraceID::aliexpress,
+constexpr size_t kNumTraces = 102;
+struct TracePair
+{
+ const char name[kTraceInfoMaxNameLen];
+ TraceInfo info;
+};
+constexpr TracePair kTraceInfos[kNumTraces] = {
+ {"aliexpress",
{aliexpress::kReplayContextClientMajorVersion, aliexpress::kReplayContextClientMinorVersion,
aliexpress::kReplayFrameStart, aliexpress::kReplayFrameEnd,
aliexpress::kReplayDrawSurfaceWidth, aliexpress::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "aliexpress"}},
- {RestrictedTraceID::among_us,
+ {"among_us",
{among_us::kReplayContextClientMajorVersion, among_us::kReplayContextClientMinorVersion,
among_us::kReplayFrameStart, among_us::kReplayFrameEnd, among_us::kReplayDrawSurfaceWidth,
among_us::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "among_us"}},
- {RestrictedTraceID::angry_birds_2_1500,
+ {"angry_birds_2_1500",
{angry_birds_2_1500::kReplayContextClientMajorVersion,
angry_birds_2_1500::kReplayContextClientMinorVersion, angry_birds_2_1500::kReplayFrameStart,
angry_birds_2_1500::kReplayFrameEnd, angry_birds_2_1500::kReplayDrawSurfaceWidth,
angry_birds_2_1500::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"angry_birds_2_1500"}},
- {RestrictedTraceID::arena_of_valor,
+ {"arena_of_valor",
{arena_of_valor::kReplayContextClientMajorVersion,
arena_of_valor::kReplayContextClientMinorVersion, arena_of_valor::kReplayFrameStart,
arena_of_valor::kReplayFrameEnd, arena_of_valor::kReplayDrawSurfaceWidth,
arena_of_valor::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"arena_of_valor"}},
- {RestrictedTraceID::asphalt_8,
+ {"asphalt_8",
{asphalt_8::kReplayContextClientMajorVersion, asphalt_8::kReplayContextClientMinorVersion,
asphalt_8::kReplayFrameStart, asphalt_8::kReplayFrameEnd, asphalt_8::kReplayDrawSurfaceWidth,
asphalt_8::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "asphalt_8"}},
- {RestrictedTraceID::avakin_life,
+ {"avakin_life",
{avakin_life::kReplayContextClientMajorVersion, avakin_life::kReplayContextClientMinorVersion,
avakin_life::kReplayFrameStart, avakin_life::kReplayFrameEnd,
avakin_life::kReplayDrawSurfaceWidth, avakin_life::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "avakin_life"}},
- {RestrictedTraceID::aztec_ruins,
+ {"aztec_ruins",
{aztec_ruins::kReplayContextClientMajorVersion, aztec_ruins::kReplayContextClientMinorVersion,
aztec_ruins::kReplayFrameStart, aztec_ruins::kReplayFrameEnd,
aztec_ruins::kReplayDrawSurfaceWidth, aztec_ruins::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "aztec_ruins"}},
- {RestrictedTraceID::beach_buggy_racing,
+ {"beach_buggy_racing",
{beach_buggy_racing::kReplayContextClientMajorVersion,
beach_buggy_racing::kReplayContextClientMinorVersion, beach_buggy_racing::kReplayFrameStart,
beach_buggy_racing::kReplayFrameEnd, beach_buggy_racing::kReplayDrawSurfaceWidth,
beach_buggy_racing::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"beach_buggy_racing"}},
- {RestrictedTraceID::brawl_stars,
+ {"brawl_stars",
{brawl_stars::kReplayContextClientMajorVersion, brawl_stars::kReplayContextClientMinorVersion,
brawl_stars::kReplayFrameStart, brawl_stars::kReplayFrameEnd,
brawl_stars::kReplayDrawSurfaceWidth, brawl_stars::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "brawl_stars"}},
- {RestrictedTraceID::bricks_breaker_quest,
+ {"bricks_breaker_quest",
{bricks_breaker_quest::kReplayContextClientMajorVersion,
bricks_breaker_quest::kReplayContextClientMinorVersion,
bricks_breaker_quest::kReplayFrameStart, bricks_breaker_quest::kReplayFrameEnd,
bricks_breaker_quest::kReplayDrawSurfaceWidth, bricks_breaker_quest::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "bricks_breaker_quest"}},
- {RestrictedTraceID::bubble_shooter,
+ {"bubble_shooter",
{bubble_shooter::kReplayContextClientMajorVersion,
bubble_shooter::kReplayContextClientMinorVersion, bubble_shooter::kReplayFrameStart,
bubble_shooter::kReplayFrameEnd, bubble_shooter::kReplayDrawSurfaceWidth,
bubble_shooter::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"bubble_shooter"}},
- {RestrictedTraceID::bus_simulator_indonesia,
+ {"bus_simulator_indonesia",
{bus_simulator_indonesia::kReplayContextClientMajorVersion,
bus_simulator_indonesia::kReplayContextClientMinorVersion,
bus_simulator_indonesia::kReplayFrameStart, bus_simulator_indonesia::kReplayFrameEnd,
bus_simulator_indonesia::kReplayDrawSurfaceWidth,
bus_simulator_indonesia::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"bus_simulator_indonesia"}},
- {RestrictedTraceID::call_break_offline_card_game,
+ {"call_break_offline_card_game",
{call_break_offline_card_game::kReplayContextClientMajorVersion,
call_break_offline_card_game::kReplayContextClientMinorVersion,
call_break_offline_card_game::kReplayFrameStart,
@@ -193,100 +199,100 @@
call_break_offline_card_game::kReplayDrawSurfaceWidth,
call_break_offline_card_game::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"call_break_offline_card_game"}},
- {RestrictedTraceID::candy_crush_500,
+ {"candy_crush_500",
{candy_crush_500::kReplayContextClientMajorVersion,
candy_crush_500::kReplayContextClientMinorVersion, candy_crush_500::kReplayFrameStart,
candy_crush_500::kReplayFrameEnd, candy_crush_500::kReplayDrawSurfaceWidth,
candy_crush_500::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"candy_crush_500"}},
- {RestrictedTraceID::candy_crush_soda_saga,
+ {"candy_crush_soda_saga",
{candy_crush_soda_saga::kReplayContextClientMajorVersion,
candy_crush_soda_saga::kReplayContextClientMinorVersion,
candy_crush_soda_saga::kReplayFrameStart, candy_crush_soda_saga::kReplayFrameEnd,
candy_crush_soda_saga::kReplayDrawSurfaceWidth,
candy_crush_soda_saga::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"candy_crush_soda_saga"}},
- {RestrictedTraceID::car_parking_multiplayer,
+ {"car_parking_multiplayer",
{car_parking_multiplayer::kReplayContextClientMajorVersion,
car_parking_multiplayer::kReplayContextClientMinorVersion,
car_parking_multiplayer::kReplayFrameStart, car_parking_multiplayer::kReplayFrameEnd,
car_parking_multiplayer::kReplayDrawSurfaceWidth,
car_parking_multiplayer::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"car_parking_multiplayer"}},
- {RestrictedTraceID::clash_of_clans,
+ {"clash_of_clans",
{clash_of_clans::kReplayContextClientMajorVersion,
clash_of_clans::kReplayContextClientMinorVersion, clash_of_clans::kReplayFrameStart,
clash_of_clans::kReplayFrameEnd, clash_of_clans::kReplayDrawSurfaceWidth,
clash_of_clans::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"clash_of_clans"}},
- {RestrictedTraceID::clash_royale,
+ {"clash_royale",
{clash_royale::kReplayContextClientMajorVersion,
clash_royale::kReplayContextClientMinorVersion, clash_royale::kReplayFrameStart,
clash_royale::kReplayFrameEnd, clash_royale::kReplayDrawSurfaceWidth,
clash_royale::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "clash_royale"}},
- {RestrictedTraceID::cod_mobile,
+ {"cod_mobile",
{cod_mobile::kReplayContextClientMajorVersion, cod_mobile::kReplayContextClientMinorVersion,
cod_mobile::kReplayFrameStart, cod_mobile::kReplayFrameEnd,
cod_mobile::kReplayDrawSurfaceWidth, cod_mobile::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "cod_mobile"}},
- {RestrictedTraceID::coin_master,
+ {"coin_master",
{coin_master::kReplayContextClientMajorVersion, coin_master::kReplayContextClientMinorVersion,
coin_master::kReplayFrameStart, coin_master::kReplayFrameEnd,
coin_master::kReplayDrawSurfaceWidth, coin_master::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "coin_master"}},
- {RestrictedTraceID::command_and_conquer_rivals,
+ {"command_and_conquer_rivals",
{command_and_conquer_rivals::kReplayContextClientMajorVersion,
command_and_conquer_rivals::kReplayContextClientMinorVersion,
command_and_conquer_rivals::kReplayFrameStart, command_and_conquer_rivals::kReplayFrameEnd,
command_and_conquer_rivals::kReplayDrawSurfaceWidth,
command_and_conquer_rivals::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"command_and_conquer_rivals"}},
- {RestrictedTraceID::cookie_run_kingdom,
+ {"cookie_run_kingdom",
{cookie_run_kingdom::kReplayContextClientMajorVersion,
cookie_run_kingdom::kReplayContextClientMinorVersion, cookie_run_kingdom::kReplayFrameStart,
cookie_run_kingdom::kReplayFrameEnd, cookie_run_kingdom::kReplayDrawSurfaceWidth,
cookie_run_kingdom::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"cookie_run_kingdom"}},
- {RestrictedTraceID::disney_tsum_tsum,
+ {"disney_tsum_tsum",
{disney_tsum_tsum::kReplayContextClientMajorVersion,
disney_tsum_tsum::kReplayContextClientMinorVersion, disney_tsum_tsum::kReplayFrameStart,
disney_tsum_tsum::kReplayFrameEnd, disney_tsum_tsum::kReplayDrawSurfaceWidth,
disney_tsum_tsum::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"disney_tsum_tsum"}},
- {RestrictedTraceID::dr_driving,
+ {"dr_driving",
{dr_driving::kReplayContextClientMajorVersion, dr_driving::kReplayContextClientMinorVersion,
dr_driving::kReplayFrameStart, dr_driving::kReplayFrameEnd,
dr_driving::kReplayDrawSurfaceWidth, dr_driving::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "dr_driving"}},
- {RestrictedTraceID::dragon_ball_legends,
+ {"dragon_ball_legends",
{dragon_ball_legends::kReplayContextClientMajorVersion,
dragon_ball_legends::kReplayContextClientMinorVersion, dragon_ball_legends::kReplayFrameStart,
dragon_ball_legends::kReplayFrameEnd, dragon_ball_legends::kReplayDrawSurfaceWidth,
dragon_ball_legends::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"dragon_ball_legends"}},
- {RestrictedTraceID::dragon_raja,
+ {"dragon_raja",
{dragon_raja::kReplayContextClientMajorVersion, dragon_raja::kReplayContextClientMinorVersion,
dragon_raja::kReplayFrameStart, dragon_raja::kReplayFrameEnd,
dragon_raja::kReplayDrawSurfaceWidth, dragon_raja::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "dragon_raja"}},
- {RestrictedTraceID::efootball_pes_2021,
+ {"efootball_pes_2021",
{efootball_pes_2021::kReplayContextClientMajorVersion,
efootball_pes_2021::kReplayContextClientMinorVersion, efootball_pes_2021::kReplayFrameStart,
efootball_pes_2021::kReplayFrameEnd, efootball_pes_2021::kReplayDrawSurfaceWidth,
efootball_pes_2021::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"efootball_pes_2021"}},
- {RestrictedTraceID::egypt_1500,
+ {"egypt_1500",
{egypt_1500::kReplayContextClientMajorVersion, egypt_1500::kReplayContextClientMinorVersion,
egypt_1500::kReplayFrameStart, egypt_1500::kReplayFrameEnd,
egypt_1500::kReplayDrawSurfaceWidth, egypt_1500::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "egypt_1500"}},
- {RestrictedTraceID::eight_ball_pool,
+ {"eight_ball_pool",
{eight_ball_pool::kReplayContextClientMajorVersion,
eight_ball_pool::kReplayContextClientMinorVersion, eight_ball_pool::kReplayFrameStart,
eight_ball_pool::kReplayFrameEnd, eight_ball_pool::kReplayDrawSurfaceWidth,
eight_ball_pool::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"eight_ball_pool"}},
- {RestrictedTraceID::extreme_car_driving_simulator,
+ {"extreme_car_driving_simulator",
{extreme_car_driving_simulator::kReplayContextClientMajorVersion,
extreme_car_driving_simulator::kReplayContextClientMinorVersion,
extreme_car_driving_simulator::kReplayFrameStart,
@@ -294,198 +300,198 @@
extreme_car_driving_simulator::kReplayDrawSurfaceWidth,
extreme_car_driving_simulator::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"extreme_car_driving_simulator"}},
- {RestrictedTraceID::fallout_shelter_online,
+ {"fallout_shelter_online",
{fallout_shelter_online::kReplayContextClientMajorVersion,
fallout_shelter_online::kReplayContextClientMinorVersion,
fallout_shelter_online::kReplayFrameStart, fallout_shelter_online::kReplayFrameEnd,
fallout_shelter_online::kReplayDrawSurfaceWidth,
fallout_shelter_online::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"fallout_shelter_online"}},
- {RestrictedTraceID::farm_heroes_saga,
+ {"farm_heroes_saga",
{farm_heroes_saga::kReplayContextClientMajorVersion,
farm_heroes_saga::kReplayContextClientMinorVersion, farm_heroes_saga::kReplayFrameStart,
farm_heroes_saga::kReplayFrameEnd, farm_heroes_saga::kReplayDrawSurfaceWidth,
farm_heroes_saga::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"farm_heroes_saga"}},
- {RestrictedTraceID::fate_grand_order,
+ {"fate_grand_order",
{fate_grand_order::kReplayContextClientMajorVersion,
fate_grand_order::kReplayContextClientMinorVersion, fate_grand_order::kReplayFrameStart,
fate_grand_order::kReplayFrameEnd, fate_grand_order::kReplayDrawSurfaceWidth,
fate_grand_order::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"fate_grand_order"}},
- {RestrictedTraceID::fifa_mobile,
+ {"fifa_mobile",
{fifa_mobile::kReplayContextClientMajorVersion, fifa_mobile::kReplayContextClientMinorVersion,
fifa_mobile::kReplayFrameStart, fifa_mobile::kReplayFrameEnd,
fifa_mobile::kReplayDrawSurfaceWidth, fifa_mobile::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "fifa_mobile"}},
- {RestrictedTraceID::final_fantasy,
+ {"final_fantasy",
{final_fantasy::kReplayContextClientMajorVersion,
final_fantasy::kReplayContextClientMinorVersion, final_fantasy::kReplayFrameStart,
final_fantasy::kReplayFrameEnd, final_fantasy::kReplayDrawSurfaceWidth,
final_fantasy::kReplayDrawSurfaceHeight, final_fantasy::kReplayDrawSurfaceColorSpace,
"final_fantasy"}},
- {RestrictedTraceID::free_fire,
+ {"free_fire",
{free_fire::kReplayContextClientMajorVersion, free_fire::kReplayContextClientMinorVersion,
free_fire::kReplayFrameStart, free_fire::kReplayFrameEnd, free_fire::kReplayDrawSurfaceWidth,
free_fire::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "free_fire"}},
- {RestrictedTraceID::gardenscapes,
+ {"gardenscapes",
{gardenscapes::kReplayContextClientMajorVersion,
gardenscapes::kReplayContextClientMinorVersion, gardenscapes::kReplayFrameStart,
gardenscapes::kReplayFrameEnd, gardenscapes::kReplayDrawSurfaceWidth,
gardenscapes::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "gardenscapes"}},
- {RestrictedTraceID::genshin_impact,
+ {"genshin_impact",
{genshin_impact::kReplayContextClientMajorVersion,
genshin_impact::kReplayContextClientMinorVersion, genshin_impact::kReplayFrameStart,
genshin_impact::kReplayFrameEnd, genshin_impact::kReplayDrawSurfaceWidth,
genshin_impact::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"genshin_impact"}},
- {RestrictedTraceID::google_maps,
+ {"google_maps",
{google_maps::kReplayContextClientMajorVersion, google_maps::kReplayContextClientMinorVersion,
google_maps::kReplayFrameStart, google_maps::kReplayFrameEnd,
google_maps::kReplayDrawSurfaceWidth, google_maps::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "google_maps"}},
- {RestrictedTraceID::happy_color,
+ {"happy_color",
{happy_color::kReplayContextClientMajorVersion, happy_color::kReplayContextClientMinorVersion,
happy_color::kReplayFrameStart, happy_color::kReplayFrameEnd,
happy_color::kReplayDrawSurfaceWidth, happy_color::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "happy_color"}},
- {RestrictedTraceID::hay_day,
+ {"hay_day",
{hay_day::kReplayContextClientMajorVersion, hay_day::kReplayContextClientMinorVersion,
hay_day::kReplayFrameStart, hay_day::kReplayFrameEnd, hay_day::kReplayDrawSurfaceWidth,
hay_day::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "hay_day"}},
- {RestrictedTraceID::hearthstone,
+ {"hearthstone",
{hearthstone::kReplayContextClientMajorVersion, hearthstone::kReplayContextClientMinorVersion,
hearthstone::kReplayFrameStart, hearthstone::kReplayFrameEnd,
hearthstone::kReplayDrawSurfaceWidth, hearthstone::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "hearthstone"}},
- {RestrictedTraceID::higgs_domino_island,
+ {"higgs_domino_island",
{higgs_domino_island::kReplayContextClientMajorVersion,
higgs_domino_island::kReplayContextClientMinorVersion, higgs_domino_island::kReplayFrameStart,
higgs_domino_island::kReplayFrameEnd, higgs_domino_island::kReplayDrawSurfaceWidth,
higgs_domino_island::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"higgs_domino_island"}},
- {RestrictedTraceID::hill_climb_racing,
+ {"hill_climb_racing",
{hill_climb_racing::kReplayContextClientMajorVersion,
hill_climb_racing::kReplayContextClientMinorVersion, hill_climb_racing::kReplayFrameStart,
hill_climb_racing::kReplayFrameEnd, hill_climb_racing::kReplayDrawSurfaceWidth,
hill_climb_racing::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"hill_climb_racing"}},
- {RestrictedTraceID::homescapes,
+ {"homescapes",
{homescapes::kReplayContextClientMajorVersion, homescapes::kReplayContextClientMinorVersion,
homescapes::kReplayFrameStart, homescapes::kReplayFrameEnd,
homescapes::kReplayDrawSurfaceWidth, homescapes::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "homescapes"}},
- {RestrictedTraceID::idle_heroes,
+ {"idle_heroes",
{idle_heroes::kReplayContextClientMajorVersion, idle_heroes::kReplayContextClientMinorVersion,
idle_heroes::kReplayFrameStart, idle_heroes::kReplayFrameEnd,
idle_heroes::kReplayDrawSurfaceWidth, idle_heroes::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "idle_heroes"}},
- {RestrictedTraceID::junes_journey,
+ {"junes_journey",
{junes_journey::kReplayContextClientMajorVersion,
junes_journey::kReplayContextClientMinorVersion, junes_journey::kReplayFrameStart,
junes_journey::kReplayFrameEnd, junes_journey::kReplayDrawSurfaceWidth,
junes_journey::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"junes_journey"}},
- {RestrictedTraceID::kartrider_rush,
+ {"kartrider_rush",
{kartrider_rush::kReplayContextClientMajorVersion,
kartrider_rush::kReplayContextClientMinorVersion, kartrider_rush::kReplayFrameStart,
kartrider_rush::kReplayFrameEnd, kartrider_rush::kReplayDrawSurfaceWidth,
kartrider_rush::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"kartrider_rush"}},
- {RestrictedTraceID::klondike_adventures,
+ {"klondike_adventures",
{klondike_adventures::kReplayContextClientMajorVersion,
klondike_adventures::kReplayContextClientMinorVersion, klondike_adventures::kReplayFrameStart,
klondike_adventures::kReplayFrameEnd, klondike_adventures::kReplayDrawSurfaceWidth,
klondike_adventures::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"klondike_adventures"}},
- {RestrictedTraceID::league_of_legends_wild_rift,
+ {"league_of_legends_wild_rift",
{league_of_legends_wild_rift::kReplayContextClientMajorVersion,
league_of_legends_wild_rift::kReplayContextClientMinorVersion,
league_of_legends_wild_rift::kReplayFrameStart, league_of_legends_wild_rift::kReplayFrameEnd,
league_of_legends_wild_rift::kReplayDrawSurfaceWidth,
league_of_legends_wild_rift::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"league_of_legends_wild_rift"}},
- {RestrictedTraceID::lego_legacy,
+ {"lego_legacy",
{lego_legacy::kReplayContextClientMajorVersion, lego_legacy::kReplayContextClientMinorVersion,
lego_legacy::kReplayFrameStart, lego_legacy::kReplayFrameEnd,
lego_legacy::kReplayDrawSurfaceWidth, lego_legacy::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "lego_legacy"}},
- {RestrictedTraceID::lineage_m,
+ {"lineage_m",
{lineage_m::kReplayContextClientMajorVersion, lineage_m::kReplayContextClientMinorVersion,
lineage_m::kReplayFrameStart, lineage_m::kReplayFrameEnd, lineage_m::kReplayDrawSurfaceWidth,
lineage_m::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "lineage_m"}},
- {RestrictedTraceID::ludo_king,
+ {"ludo_king",
{ludo_king::kReplayContextClientMajorVersion, ludo_king::kReplayContextClientMinorVersion,
ludo_king::kReplayFrameStart, ludo_king::kReplayFrameEnd, ludo_king::kReplayDrawSurfaceWidth,
ludo_king::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "ludo_king"}},
- {RestrictedTraceID::magic_tiles_3,
+ {"magic_tiles_3",
{magic_tiles_3::kReplayContextClientMajorVersion,
magic_tiles_3::kReplayContextClientMinorVersion, magic_tiles_3::kReplayFrameStart,
magic_tiles_3::kReplayFrameEnd, magic_tiles_3::kReplayDrawSurfaceWidth,
magic_tiles_3::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"magic_tiles_3"}},
- {RestrictedTraceID::manhattan_10,
+ {"manhattan_10",
{manhattan_10::kReplayContextClientMajorVersion,
manhattan_10::kReplayContextClientMinorVersion, manhattan_10::kReplayFrameStart,
manhattan_10::kReplayFrameEnd, manhattan_10::kReplayDrawSurfaceWidth,
manhattan_10::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "manhattan_10"}},
- {RestrictedTraceID::manhattan_31,
+ {"manhattan_31",
{manhattan_31::kReplayContextClientMajorVersion,
manhattan_31::kReplayContextClientMinorVersion, manhattan_31::kReplayFrameStart,
manhattan_31::kReplayFrameEnd, manhattan_31::kReplayDrawSurfaceWidth,
manhattan_31::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "manhattan_31"}},
- {RestrictedTraceID::mario_kart_tour,
+ {"mario_kart_tour",
{mario_kart_tour::kReplayContextClientMajorVersion,
mario_kart_tour::kReplayContextClientMinorVersion, mario_kart_tour::kReplayFrameStart,
mario_kart_tour::kReplayFrameEnd, mario_kart_tour::kReplayDrawSurfaceWidth,
mario_kart_tour::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"mario_kart_tour"}},
- {RestrictedTraceID::marvel_contest_of_champions,
+ {"marvel_contest_of_champions",
{marvel_contest_of_champions::kReplayContextClientMajorVersion,
marvel_contest_of_champions::kReplayContextClientMinorVersion,
marvel_contest_of_champions::kReplayFrameStart, marvel_contest_of_champions::kReplayFrameEnd,
marvel_contest_of_champions::kReplayDrawSurfaceWidth,
marvel_contest_of_champions::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"marvel_contest_of_champions"}},
- {RestrictedTraceID::messenger_lite,
+ {"messenger_lite",
{messenger_lite::kReplayContextClientMajorVersion,
messenger_lite::kReplayContextClientMinorVersion, messenger_lite::kReplayFrameStart,
messenger_lite::kReplayFrameEnd, messenger_lite::kReplayDrawSurfaceWidth,
messenger_lite::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"messenger_lite"}},
- {RestrictedTraceID::minecraft,
+ {"minecraft",
{minecraft::kReplayContextClientMajorVersion, minecraft::kReplayContextClientMinorVersion,
minecraft::kReplayFrameStart, minecraft::kReplayFrameEnd, minecraft::kReplayDrawSurfaceWidth,
minecraft::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "minecraft"}},
- {RestrictedTraceID::mobile_legends,
+ {"mobile_legends",
{mobile_legends::kReplayContextClientMajorVersion,
mobile_legends::kReplayContextClientMinorVersion, mobile_legends::kReplayFrameStart,
mobile_legends::kReplayFrameEnd, mobile_legends::kReplayDrawSurfaceWidth,
mobile_legends::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"mobile_legends"}},
- {RestrictedTraceID::nba2k20_800,
+ {"nba2k20_800",
{nba2k20_800::kReplayContextClientMajorVersion, nba2k20_800::kReplayContextClientMinorVersion,
nba2k20_800::kReplayFrameStart, nba2k20_800::kReplayFrameEnd,
nba2k20_800::kReplayDrawSurfaceWidth, nba2k20_800::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "nba2k20_800"}},
- {RestrictedTraceID::one_punch_man,
+ {"one_punch_man",
{one_punch_man::kReplayContextClientMajorVersion,
one_punch_man::kReplayContextClientMinorVersion, one_punch_man::kReplayFrameStart,
one_punch_man::kReplayFrameEnd, one_punch_man::kReplayDrawSurfaceWidth,
one_punch_man::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"one_punch_man"}},
- {RestrictedTraceID::plants_vs_zombies_2,
+ {"plants_vs_zombies_2",
{plants_vs_zombies_2::kReplayContextClientMajorVersion,
plants_vs_zombies_2::kReplayContextClientMinorVersion, plants_vs_zombies_2::kReplayFrameStart,
plants_vs_zombies_2::kReplayFrameEnd, plants_vs_zombies_2::kReplayDrawSurfaceWidth,
plants_vs_zombies_2::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"plants_vs_zombies_2"}},
- {RestrictedTraceID::pokemon_go,
+ {"pokemon_go",
{pokemon_go::kReplayContextClientMajorVersion, pokemon_go::kReplayContextClientMinorVersion,
pokemon_go::kReplayFrameStart, pokemon_go::kReplayFrameEnd,
pokemon_go::kReplayDrawSurfaceWidth, pokemon_go::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "pokemon_go"}},
- {RestrictedTraceID::professional_baseball_spirits,
+ {"professional_baseball_spirits",
{professional_baseball_spirits::kReplayContextClientMajorVersion,
professional_baseball_spirits::kReplayContextClientMinorVersion,
professional_baseball_spirits::kReplayFrameStart,
@@ -493,39 +499,39 @@
professional_baseball_spirits::kReplayDrawSurfaceWidth,
professional_baseball_spirits::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"professional_baseball_spirits"}},
- {RestrictedTraceID::pubg_mobile_battle_royale,
+ {"pubg_mobile_battle_royale",
{pubg_mobile_battle_royale::kReplayContextClientMajorVersion,
pubg_mobile_battle_royale::kReplayContextClientMinorVersion,
pubg_mobile_battle_royale::kReplayFrameStart, pubg_mobile_battle_royale::kReplayFrameEnd,
pubg_mobile_battle_royale::kReplayDrawSurfaceWidth,
pubg_mobile_battle_royale::kReplayDrawSurfaceHeight,
pubg_mobile_battle_royale::kReplayDrawSurfaceColorSpace, "pubg_mobile_battle_royale"}},
- {RestrictedTraceID::pubg_mobile_lite,
+ {"pubg_mobile_lite",
{pubg_mobile_lite::kReplayContextClientMajorVersion,
pubg_mobile_lite::kReplayContextClientMinorVersion, pubg_mobile_lite::kReplayFrameStart,
pubg_mobile_lite::kReplayFrameEnd, pubg_mobile_lite::kReplayDrawSurfaceWidth,
pubg_mobile_lite::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"pubg_mobile_lite"}},
- {RestrictedTraceID::pubg_mobile_skydive,
+ {"pubg_mobile_skydive",
{pubg_mobile_skydive::kReplayContextClientMajorVersion,
pubg_mobile_skydive::kReplayContextClientMinorVersion, pubg_mobile_skydive::kReplayFrameStart,
pubg_mobile_skydive::kReplayFrameEnd, pubg_mobile_skydive::kReplayDrawSurfaceWidth,
pubg_mobile_skydive::kReplayDrawSurfaceHeight,
pubg_mobile_skydive::kReplayDrawSurfaceColorSpace, "pubg_mobile_skydive"}},
- {RestrictedTraceID::ragnarok_m_eternal_love,
+ {"ragnarok_m_eternal_love",
{ragnarok_m_eternal_love::kReplayContextClientMajorVersion,
ragnarok_m_eternal_love::kReplayContextClientMinorVersion,
ragnarok_m_eternal_love::kReplayFrameStart, ragnarok_m_eternal_love::kReplayFrameEnd,
ragnarok_m_eternal_love::kReplayDrawSurfaceWidth,
ragnarok_m_eternal_love::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"ragnarok_m_eternal_love"}},
- {RestrictedTraceID::raid_shadow_legends,
+ {"raid_shadow_legends",
{raid_shadow_legends::kReplayContextClientMajorVersion,
raid_shadow_legends::kReplayContextClientMinorVersion, raid_shadow_legends::kReplayFrameStart,
raid_shadow_legends::kReplayFrameEnd, raid_shadow_legends::kReplayDrawSurfaceWidth,
raid_shadow_legends::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"raid_shadow_legends"}},
- {RestrictedTraceID::real_commando_secret_mission,
+ {"real_commando_secret_mission",
{real_commando_secret_mission::kReplayContextClientMajorVersion,
real_commando_secret_mission::kReplayContextClientMinorVersion,
real_commando_secret_mission::kReplayFrameStart,
@@ -533,181 +539,190 @@
real_commando_secret_mission::kReplayDrawSurfaceWidth,
real_commando_secret_mission::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"real_commando_secret_mission"}},
- {RestrictedTraceID::real_cricket_20,
+ {"real_cricket_20",
{real_cricket_20::kReplayContextClientMajorVersion,
real_cricket_20::kReplayContextClientMinorVersion, real_cricket_20::kReplayFrameStart,
real_cricket_20::kReplayFrameEnd, real_cricket_20::kReplayDrawSurfaceWidth,
real_cricket_20::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"real_cricket_20"}},
- {RestrictedTraceID::real_gangster_crime,
+ {"real_gangster_crime",
{real_gangster_crime::kReplayContextClientMajorVersion,
real_gangster_crime::kReplayContextClientMinorVersion, real_gangster_crime::kReplayFrameStart,
real_gangster_crime::kReplayFrameEnd, real_gangster_crime::kReplayDrawSurfaceWidth,
real_gangster_crime::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"real_gangster_crime"}},
- {RestrictedTraceID::rise_of_kingdoms,
+ {"rise_of_kingdoms",
{rise_of_kingdoms::kReplayContextClientMajorVersion,
rise_of_kingdoms::kReplayContextClientMinorVersion, rise_of_kingdoms::kReplayFrameStart,
rise_of_kingdoms::kReplayFrameEnd, rise_of_kingdoms::kReplayDrawSurfaceWidth,
rise_of_kingdoms::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"rise_of_kingdoms"}},
- {RestrictedTraceID::romancing_saga,
+ {"romancing_saga",
{romancing_saga::kReplayContextClientMajorVersion,
romancing_saga::kReplayContextClientMinorVersion, romancing_saga::kReplayFrameStart,
romancing_saga::kReplayFrameEnd, romancing_saga::kReplayDrawSurfaceWidth,
romancing_saga::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"romancing_saga"}},
- {RestrictedTraceID::rope_hero_vice_town,
+ {"rope_hero_vice_town",
{rope_hero_vice_town::kReplayContextClientMajorVersion,
rope_hero_vice_town::kReplayContextClientMinorVersion, rope_hero_vice_town::kReplayFrameStart,
rope_hero_vice_town::kReplayFrameEnd, rope_hero_vice_town::kReplayDrawSurfaceWidth,
rope_hero_vice_town::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"rope_hero_vice_town"}},
- {RestrictedTraceID::saint_seiya_awakening,
+ {"saint_seiya_awakening",
{saint_seiya_awakening::kReplayContextClientMajorVersion,
saint_seiya_awakening::kReplayContextClientMinorVersion,
saint_seiya_awakening::kReplayFrameStart, saint_seiya_awakening::kReplayFrameEnd,
saint_seiya_awakening::kReplayDrawSurfaceWidth,
saint_seiya_awakening::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"saint_seiya_awakening"}},
- {RestrictedTraceID::sakura_school_simulator,
+ {"sakura_school_simulator",
{sakura_school_simulator::kReplayContextClientMajorVersion,
sakura_school_simulator::kReplayContextClientMinorVersion,
sakura_school_simulator::kReplayFrameStart, sakura_school_simulator::kReplayFrameEnd,
sakura_school_simulator::kReplayDrawSurfaceWidth,
sakura_school_simulator::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"sakura_school_simulator"}},
- {RestrictedTraceID::scrabble_go,
+ {"scrabble_go",
{scrabble_go::kReplayContextClientMajorVersion, scrabble_go::kReplayContextClientMinorVersion,
scrabble_go::kReplayFrameStart, scrabble_go::kReplayFrameEnd,
scrabble_go::kReplayDrawSurfaceWidth, scrabble_go::kReplayDrawSurfaceHeight,
scrabble_go::kReplayDrawSurfaceColorSpace, "scrabble_go"}},
- {RestrictedTraceID::shadow_fight_2,
+ {"shadow_fight_2",
{shadow_fight_2::kReplayContextClientMajorVersion,
shadow_fight_2::kReplayContextClientMinorVersion, shadow_fight_2::kReplayFrameStart,
shadow_fight_2::kReplayFrameEnd, shadow_fight_2::kReplayDrawSurfaceWidth,
shadow_fight_2::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"shadow_fight_2"}},
- {RestrictedTraceID::slingshot_test1,
+ {"slingshot_test1",
{slingshot_test1::kReplayContextClientMajorVersion,
slingshot_test1::kReplayContextClientMinorVersion, slingshot_test1::kReplayFrameStart,
slingshot_test1::kReplayFrameEnd, slingshot_test1::kReplayDrawSurfaceWidth,
slingshot_test1::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"slingshot_test1"}},
- {RestrictedTraceID::slingshot_test2,
+ {"slingshot_test2",
{slingshot_test2::kReplayContextClientMajorVersion,
slingshot_test2::kReplayContextClientMinorVersion, slingshot_test2::kReplayFrameStart,
slingshot_test2::kReplayFrameEnd, slingshot_test2::kReplayDrawSurfaceWidth,
slingshot_test2::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"slingshot_test2"}},
- {RestrictedTraceID::sniper_3d,
+ {"sniper_3d",
{sniper_3d::kReplayContextClientMajorVersion, sniper_3d::kReplayContextClientMinorVersion,
sniper_3d::kReplayFrameStart, sniper_3d::kReplayFrameEnd, sniper_3d::kReplayDrawSurfaceWidth,
sniper_3d::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "sniper_3d"}},
- {RestrictedTraceID::sonic_the_hedgehog,
+ {"sonic_the_hedgehog",
{sonic_the_hedgehog::kReplayContextClientMajorVersion,
sonic_the_hedgehog::kReplayContextClientMinorVersion, sonic_the_hedgehog::kReplayFrameStart,
sonic_the_hedgehog::kReplayFrameEnd, sonic_the_hedgehog::kReplayDrawSurfaceWidth,
sonic_the_hedgehog::kReplayDrawSurfaceHeight,
sonic_the_hedgehog::kReplayDrawSurfaceColorSpace, "sonic_the_hedgehog"}},
- {RestrictedTraceID::standoff_2,
+ {"standoff_2",
{standoff_2::kReplayContextClientMajorVersion, standoff_2::kReplayContextClientMinorVersion,
standoff_2::kReplayFrameStart, standoff_2::kReplayFrameEnd,
standoff_2::kReplayDrawSurfaceWidth, standoff_2::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "standoff_2"}},
- {RestrictedTraceID::subway_princess_runner,
+ {"subway_princess_runner",
{subway_princess_runner::kReplayContextClientMajorVersion,
subway_princess_runner::kReplayContextClientMinorVersion,
subway_princess_runner::kReplayFrameStart, subway_princess_runner::kReplayFrameEnd,
subway_princess_runner::kReplayDrawSurfaceWidth,
subway_princess_runner::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"subway_princess_runner"}},
- {RestrictedTraceID::subway_surfers,
+ {"subway_surfers",
{subway_surfers::kReplayContextClientMajorVersion,
subway_surfers::kReplayContextClientMinorVersion, subway_surfers::kReplayFrameStart,
subway_surfers::kReplayFrameEnd, subway_surfers::kReplayDrawSurfaceWidth,
subway_surfers::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"subway_surfers"}},
- {RestrictedTraceID::summoners_war,
+ {"summoners_war",
{summoners_war::kReplayContextClientMajorVersion,
summoners_war::kReplayContextClientMinorVersion, summoners_war::kReplayFrameStart,
summoners_war::kReplayFrameEnd, summoners_war::kReplayDrawSurfaceWidth,
summoners_war::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"summoners_war"}},
- {RestrictedTraceID::talking_tom_hero_dash,
+ {"talking_tom_hero_dash",
{talking_tom_hero_dash::kReplayContextClientMajorVersion,
talking_tom_hero_dash::kReplayContextClientMinorVersion,
talking_tom_hero_dash::kReplayFrameStart, talking_tom_hero_dash::kReplayFrameEnd,
talking_tom_hero_dash::kReplayDrawSurfaceWidth,
talking_tom_hero_dash::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"talking_tom_hero_dash"}},
- {RestrictedTraceID::temple_run_2,
+ {"temple_run_2",
{temple_run_2::kReplayContextClientMajorVersion,
temple_run_2::kReplayContextClientMinorVersion, temple_run_2::kReplayFrameStart,
temple_run_2::kReplayFrameEnd, temple_run_2::kReplayDrawSurfaceWidth,
temple_run_2::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "temple_run_2"}},
- {RestrictedTraceID::temple_run_300,
+ {"temple_run_300",
{temple_run_300::kReplayContextClientMajorVersion,
temple_run_300::kReplayContextClientMinorVersion, temple_run_300::kReplayFrameStart,
temple_run_300::kReplayFrameEnd, temple_run_300::kReplayDrawSurfaceWidth,
temple_run_300::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"temple_run_300"}},
- {RestrictedTraceID::toon_blast,
+ {"toon_blast",
{toon_blast::kReplayContextClientMajorVersion, toon_blast::kReplayContextClientMinorVersion,
toon_blast::kReplayFrameStart, toon_blast::kReplayFrameEnd,
toon_blast::kReplayDrawSurfaceWidth, toon_blast::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "toon_blast"}},
- {RestrictedTraceID::township,
+ {"township",
{township::kReplayContextClientMajorVersion, township::kReplayContextClientMinorVersion,
township::kReplayFrameStart, township::kReplayFrameEnd, township::kReplayDrawSurfaceWidth,
township::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "township"}},
- {RestrictedTraceID::trex_200,
+ {"trex_200",
{trex_200::kReplayContextClientMajorVersion, trex_200::kReplayContextClientMinorVersion,
trex_200::kReplayFrameStart, trex_200::kReplayFrameEnd, trex_200::kReplayDrawSurfaceWidth,
trex_200::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "trex_200"}},
- {RestrictedTraceID::whatsapp,
+ {"whatsapp",
{whatsapp::kReplayContextClientMajorVersion, whatsapp::kReplayContextClientMinorVersion,
whatsapp::kReplayFrameStart, whatsapp::kReplayFrameEnd, whatsapp::kReplayDrawSurfaceWidth,
whatsapp::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace, "whatsapp"}},
- {RestrictedTraceID::words_with_friends_2,
+ {"words_with_friends_2",
{words_with_friends_2::kReplayContextClientMajorVersion,
words_with_friends_2::kReplayContextClientMinorVersion,
words_with_friends_2::kReplayFrameStart, words_with_friends_2::kReplayFrameEnd,
words_with_friends_2::kReplayDrawSurfaceWidth, words_with_friends_2::kReplayDrawSurfaceHeight,
words_with_friends_2::kReplayDrawSurfaceColorSpace, "words_with_friends_2"}},
- {RestrictedTraceID::wordscapes,
+ {"wordscapes",
{wordscapes::kReplayContextClientMajorVersion, wordscapes::kReplayContextClientMinorVersion,
wordscapes::kReplayFrameStart, wordscapes::kReplayFrameEnd,
wordscapes::kReplayDrawSurfaceWidth, wordscapes::kReplayDrawSurfaceHeight,
wordscapes::kReplayDrawSurfaceColorSpace, "wordscapes"}},
- {RestrictedTraceID::world_of_kings,
+ {"world_of_kings",
{world_of_kings::kReplayContextClientMajorVersion,
world_of_kings::kReplayContextClientMinorVersion, world_of_kings::kReplayFrameStart,
world_of_kings::kReplayFrameEnd, world_of_kings::kReplayDrawSurfaceWidth,
world_of_kings::kReplayDrawSurfaceHeight, world_of_kings::kReplayDrawSurfaceColorSpace,
"world_of_kings"}},
- {RestrictedTraceID::world_of_tanks_blitz,
+ {"world_of_tanks_blitz",
{world_of_tanks_blitz::kReplayContextClientMajorVersion,
world_of_tanks_blitz::kReplayContextClientMinorVersion,
world_of_tanks_blitz::kReplayFrameStart, world_of_tanks_blitz::kReplayFrameEnd,
world_of_tanks_blitz::kReplayDrawSurfaceWidth, world_of_tanks_blitz::kReplayDrawSurfaceHeight,
kDefaultReplayDrawSurfaceColorSpace, "world_of_tanks_blitz"}},
- {RestrictedTraceID::world_war_doh,
+ {"world_war_doh",
{world_war_doh::kReplayContextClientMajorVersion,
world_war_doh::kReplayContextClientMinorVersion, world_war_doh::kReplayFrameStart,
world_war_doh::kReplayFrameEnd, world_war_doh::kReplayDrawSurfaceWidth,
world_war_doh::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"world_war_doh"}},
- {RestrictedTraceID::worms_zone_io,
+ {"worms_zone_io",
{worms_zone_io::kReplayContextClientMajorVersion,
worms_zone_io::kReplayContextClientMinorVersion, worms_zone_io::kReplayFrameStart,
worms_zone_io::kReplayFrameEnd, worms_zone_io::kReplayDrawSurfaceWidth,
worms_zone_io::kReplayDrawSurfaceHeight, kDefaultReplayDrawSurfaceColorSpace,
"worms_zone_io"}}};
-}
+} // namespace
-const TraceInfo &GetTraceInfo(RestrictedTraceID traceID)
+const TraceInfo &GetTraceInfo(const char *traceName)
{
- return kTraceInfos[traceID];
+ // Could be improved using std::lower_bound.
+ for (const TracePair &tracePair : kTraceInfos)
+ {
+ if (strncmp(tracePair.name, traceName, kTraceInfoMaxNameLen) == 0)
+ {
+ return tracePair.info;
+ }
+ }
+ UNREACHABLE();
+ return kTraceInfos[0].info;
}
} // namespace angle
diff --git a/src/tests/restricted_traces/restricted_traces_autogen.h b/src/tests/restricted_traces/restricted_traces_autogen.h
index e3cb434..a8a5e64 100644
--- a/src/tests/restricted_traces/restricted_traces_autogen.h
+++ b/src/tests/restricted_traces/restricted_traces_autogen.h
@@ -27,114 +27,6 @@
namespace angle
{
-enum class RestrictedTraceID
-{
- aliexpress,
- among_us,
- angry_birds_2_1500,
- arena_of_valor,
- asphalt_8,
- avakin_life,
- aztec_ruins,
- beach_buggy_racing,
- brawl_stars,
- bricks_breaker_quest,
- bubble_shooter,
- bus_simulator_indonesia,
- call_break_offline_card_game,
- candy_crush_500,
- candy_crush_soda_saga,
- car_parking_multiplayer,
- clash_of_clans,
- clash_royale,
- cod_mobile,
- coin_master,
- command_and_conquer_rivals,
- cookie_run_kingdom,
- disney_tsum_tsum,
- dr_driving,
- dragon_ball_legends,
- dragon_raja,
- efootball_pes_2021,
- egypt_1500,
- eight_ball_pool,
- extreme_car_driving_simulator,
- fallout_shelter_online,
- farm_heroes_saga,
- fate_grand_order,
- fifa_mobile,
- final_fantasy,
- free_fire,
- gardenscapes,
- genshin_impact,
- google_maps,
- happy_color,
- hay_day,
- hearthstone,
- higgs_domino_island,
- hill_climb_racing,
- homescapes,
- idle_heroes,
- junes_journey,
- kartrider_rush,
- klondike_adventures,
- league_of_legends_wild_rift,
- lego_legacy,
- lineage_m,
- ludo_king,
- magic_tiles_3,
- manhattan_10,
- manhattan_31,
- mario_kart_tour,
- marvel_contest_of_champions,
- messenger_lite,
- minecraft,
- mobile_legends,
- nba2k20_800,
- one_punch_man,
- plants_vs_zombies_2,
- pokemon_go,
- professional_baseball_spirits,
- pubg_mobile_battle_royale,
- pubg_mobile_lite,
- pubg_mobile_skydive,
- ragnarok_m_eternal_love,
- raid_shadow_legends,
- real_commando_secret_mission,
- real_cricket_20,
- real_gangster_crime,
- rise_of_kingdoms,
- romancing_saga,
- rope_hero_vice_town,
- saint_seiya_awakening,
- sakura_school_simulator,
- scrabble_go,
- shadow_fight_2,
- slingshot_test1,
- slingshot_test2,
- sniper_3d,
- sonic_the_hedgehog,
- standoff_2,
- subway_princess_runner,
- subway_surfers,
- summoners_war,
- talking_tom_hero_dash,
- temple_run_2,
- temple_run_300,
- toon_blast,
- township,
- trex_200,
- whatsapp,
- words_with_friends_2,
- wordscapes,
- world_of_kings,
- world_of_tanks_blitz,
- world_war_doh,
- worms_zone_io,
- InvalidEnum,
- EnumCount = InvalidEnum
-};
-
static constexpr size_t kTraceInfoMaxNameLen = 32;
static constexpr uint32_t kDefaultReplayContextClientMajorVersion = 3;
@@ -153,7 +45,7 @@
char name[kTraceInfoMaxNameLen];
};
-ANGLE_TRACE_EXPORT const TraceInfo &GetTraceInfo(RestrictedTraceID traceID);
+ANGLE_TRACE_EXPORT const TraceInfo &GetTraceInfo(const char *traceName);
} // namespace angle
#endif // ANGLE_RESTRICTED_TRACES_AUTOGEN_H_
diff --git a/src/tests/test_utils/angle_test_configs.cpp b/src/tests/test_utils/angle_test_configs.cpp
index 2950127..259cc81 100644
--- a/src/tests/test_utils/angle_test_configs.cpp
+++ b/src/tests/test_utils/angle_test_configs.cpp
@@ -49,6 +49,16 @@
return eglParameters.deviceType == EGL_PLATFORM_ANGLE_DEVICE_TYPE_SWIFTSHADER_ANGLE;
}
+bool PlatformParameters::isVulkan() const
+{
+ return eglParameters.renderer == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE;
+}
+
+bool PlatformParameters::isANGLE() const
+{
+ return driver == GLESDriverType::AngleEGL;
+}
+
EGLint PlatformParameters::getAllocateNonZeroMemoryFeature() const
{
return eglParameters.allocateNonZeroMemoryFeature;
diff --git a/src/tests/test_utils/angle_test_configs.h b/src/tests/test_utils/angle_test_configs.h
index ff482b6..7931d35 100644
--- a/src/tests/test_utils/angle_test_configs.h
+++ b/src/tests/test_utils/angle_test_configs.h
@@ -34,6 +34,8 @@
EGLint getRenderer() const;
EGLint getDeviceType() const;
bool isSwiftshader() const;
+ bool isVulkan() const;
+ bool isANGLE() const;
EGLint getAllocateNonZeroMemoryFeature() const;
void initDefaultParameters();