mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-09 20:58:31 +09:00
[Chore] (trace-replay): use manifest file to organize retrace fixtures
This commit is contained in:
@@ -8,111 +8,17 @@ fi
|
||||
|
||||
case_name="$1"
|
||||
fixture_dir="${2:-tools/trace_replay/fixtures}"
|
||||
python_bin="${PYTHON:-python3}"
|
||||
|
||||
files=()
|
||||
if ! command -v "${python_bin}" >/dev/null 2>&1 && command -v python >/dev/null 2>&1; then
|
||||
python_bin=python
|
||||
fi
|
||||
|
||||
add_standard_case() {
|
||||
local golden_suffix="$1"
|
||||
files+=(
|
||||
"${fixture_dir}/${case_name}.tgz"
|
||||
"${fixture_dir}/${case_name}.${golden_suffix}.png"
|
||||
)
|
||||
}
|
||||
|
||||
case "${case_name}" in
|
||||
OpenRA)
|
||||
files+=(
|
||||
"${fixture_dir}/openra.tgz"
|
||||
"${fixture_dir}/openra.0000031249.png"
|
||||
)
|
||||
;;
|
||||
minecraft-1.21.4-startup)
|
||||
add_standard_case "0000092195"
|
||||
;;
|
||||
minecraft-1.21.4-main-menu)
|
||||
add_standard_case "0000481787"
|
||||
;;
|
||||
minecraft-1.21.4-in-world)
|
||||
add_standard_case "0000280000"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-sodium-in-world)
|
||||
add_standard_case "0000923340"
|
||||
;;
|
||||
minecraft-26.2-main-menu)
|
||||
add_standard_case "0000101926"
|
||||
;;
|
||||
minecraft-26.2-in-world)
|
||||
add_standard_case "0000519370"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-rei-inventory-normal-world)
|
||||
add_standard_case "0000734465"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world)
|
||||
add_standard_case "0000457190"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world)
|
||||
add_standard_case "0000573061"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-journeymap-in-world-normal-world)
|
||||
add_standard_case "0000641975"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-modernui-inventory-normal-world)
|
||||
add_standard_case "0000727926"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-bsl-in-world)
|
||||
add_standard_case "0000110725"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world)
|
||||
add_standard_case "0000095322"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world)
|
||||
add_standard_case "0000141559"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-sundial-lite-in-world)
|
||||
add_standard_case "0000150023"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world)
|
||||
add_standard_case "0000151297"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-complementary-unbound-in-world)
|
||||
add_standard_case "0000146559"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-mellow-in-world)
|
||||
add_standard_case "0000096143"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-nostalgia-in-world)
|
||||
files+=(
|
||||
"${fixture_dir}/${case_name}.tgz"
|
||||
"${fixture_dir}/${case_name}.0000153808-linux-mesa.png"
|
||||
"${fixture_dir}/${case_name}.0000153808.png"
|
||||
)
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-bliss-in-world)
|
||||
add_standard_case "0000113511"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world)
|
||||
add_standard_case "0000125124-linux-mesa"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-iterationt-in-world)
|
||||
add_standard_case "0000110538"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world)
|
||||
add_standard_case "0000115019"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-photon-v1.1-in-world)
|
||||
add_standard_case "0000159866"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world)
|
||||
add_standard_case "0000172128"
|
||||
;;
|
||||
minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world)
|
||||
add_standard_case "0000145353"
|
||||
;;
|
||||
*)
|
||||
echo "unknown trace case: ${case_name}" >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
fixture_list="$("${python_bin}" tools/trace_replay/trace_cases.py \
|
||||
--format fixture-files \
|
||||
--case "${case_name}" \
|
||||
--fixture-root "${fixture_dir}")"
|
||||
mapfile -t files <<< "${fixture_list}"
|
||||
|
||||
include="$(IFS=,; echo "${files[*]}")"
|
||||
if [ "${case_name}" = "OpenRA" ]; then
|
||||
|
||||
+17
-329
@@ -128,10 +128,25 @@ jobs:
|
||||
path: android-plugin/app/build/outputs/apk/*Trace/release/*.apk
|
||||
if-no-files-found: error
|
||||
|
||||
trace-cases:
|
||||
name: trace case matrix
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
android: ${{ steps.trace-cases.outputs.android }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Load trace cases
|
||||
id: trace-cases
|
||||
run: echo "android=$(python3 tools/trace_replay/trace_cases.py --format github-apk)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
retrace:
|
||||
name: retrace (${{ matrix.backend.name }}, ${{ matrix.case.name }})
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
needs:
|
||||
- build
|
||||
- trace-cases
|
||||
timeout-minutes: 75
|
||||
env:
|
||||
AVD_NAME: mobilegl-${{ matrix.backend.id }}
|
||||
@@ -150,334 +165,7 @@ jobs:
|
||||
apk: MobileGL-MagmaTrace-release.apk
|
||||
package: top.mobilegl.plugin.magma.trace
|
||||
gpu: lavapipe
|
||||
case:
|
||||
- name: OpenRA
|
||||
trace_archive: tools/trace_replay/fixtures/openra.tgz
|
||||
trace_file: openra.trace
|
||||
golden: tools/trace_replay/fixtures/openra.0000031249.png
|
||||
target_call: 31249
|
||||
width: 640
|
||||
height: 480
|
||||
crop_x: 1
|
||||
crop_y: 1
|
||||
crop_width: 638
|
||||
crop_height: 478
|
||||
timeout_seconds: 180
|
||||
- name: minecraft-1.21.4-startup
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-startup.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-startup.0000092195.png
|
||||
target_call: 92195
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 180
|
||||
- name: minecraft-1.21.4-main-menu
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-main-menu.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-main-menu.0000481787.png
|
||||
alternate_golden: tools/trace_replay/fixtures/minecraft-1.21.4-main-menu.0000481787-mali.png
|
||||
target_call: 481787
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 180
|
||||
- name: minecraft-1.21.4-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-in-world.0000280000.png
|
||||
target_call: 280000
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-sodium-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-sodium-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-sodium-in-world.0000923340.png
|
||||
target_call: 923340
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 1800
|
||||
- name: minecraft-26.2-main-menu
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-26.2-main-menu.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-26.2-main-menu.0000101926.png
|
||||
target_call: 101926
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 180
|
||||
- name: minecraft-26.2-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-26.2-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-26.2-in-world.0000519370.png
|
||||
target_call: 519370
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-rei-inventory-normal-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-rei-inventory-normal-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-rei-inventory-normal-world.0000734465.png
|
||||
target_call: 734465
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 1800
|
||||
- name: minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world.0000457190.png
|
||||
target_call: 457190
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 10
|
||||
crop_width: 140
|
||||
crop_height: 158
|
||||
timeout_seconds: 1800
|
||||
- name: minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world.0000573061.png
|
||||
target_call: 573061
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 1800
|
||||
- name: minecraft-1.21.4-fabric-journeymap-in-world-normal-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-journeymap-in-world-normal-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-journeymap-in-world-normal-world.0000641975.png
|
||||
target_call: 641975
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 1800
|
||||
- name: minecraft-1.21.4-fabric-modernui-inventory-normal-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-modernui-inventory-normal-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-modernui-inventory-normal-world.0000727926.png
|
||||
target_call: 727926
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 1800
|
||||
- name: minecraft-1.21.4-fabric-iris-bsl-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-bsl-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-bsl-in-world.0000110725.png
|
||||
alternate_golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-bsl-in-world.0000110725-mali.png
|
||||
target_call: 110725
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world.0000095322.png
|
||||
target_call: 95322
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world.0000141559.png
|
||||
target_call: 141559
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-sundial-lite-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-sundial-lite-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-sundial-lite-in-world.0000150023.png
|
||||
target_call: 150023
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world.0000151297.png
|
||||
target_call: 151297
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-complementary-unbound-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-complementary-unbound-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-complementary-unbound-in-world.0000146559.png
|
||||
target_call: 146559
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-mellow-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-mellow-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-mellow-in-world.0000096143.png
|
||||
target_call: 96143
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-nostalgia-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-nostalgia-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-nostalgia-in-world.0000153808-linux-mesa.png
|
||||
alternate_golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-nostalgia-in-world.0000153808.png
|
||||
target_call: 153808
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-bliss-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-bliss-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-bliss-in-world.0000113511.png
|
||||
target_call: 113511
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world.0000125124-linux-mesa.png
|
||||
target_call: 125124
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-iterationt-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-iterationt-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-iterationt-in-world.0000110538.png
|
||||
target_call: 110538
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world.0000115019.png
|
||||
target_call: 115019
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-photon-v1.1-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-photon-v1.1-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-photon-v1.1-in-world.0000159866.png
|
||||
target_call: 159866
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world.0000172128.png
|
||||
target_call: 172128
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
- name: minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world
|
||||
trace_archive: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world.tgz
|
||||
trace_file: trace.trace
|
||||
golden: tools/trace_replay/fixtures/minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world.0000145353.png
|
||||
target_call: 145353
|
||||
width: 854
|
||||
height: 480
|
||||
crop_x: 0
|
||||
crop_y: 0
|
||||
crop_width: 0
|
||||
crop_height: 0
|
||||
timeout_seconds: 900
|
||||
case: ${{ fromJSON(needs.trace-cases.outputs.android) }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
+15
-28
@@ -329,12 +329,26 @@ jobs:
|
||||
path: ci-artifacts/mobilegl-trace-replay.tgz
|
||||
if-no-files-found: error
|
||||
|
||||
trace-cases:
|
||||
name: trace case matrix
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
names: ${{ steps.trace-cases.outputs.names }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Load trace cases
|
||||
id: trace-cases
|
||||
run: echo "names=$(python3 tools/trace_replay/trace_cases.py --format names)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
retrace:
|
||||
name: retrace (${{ matrix.backend }}, ${{ matrix.case }})
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build-linux
|
||||
- build-retrace
|
||||
- trace-cases
|
||||
strategy:
|
||||
fail-fast: false
|
||||
max-parallel: 4
|
||||
@@ -342,34 +356,7 @@ jobs:
|
||||
backend:
|
||||
- DirectGLES
|
||||
- DirectVulkan
|
||||
case:
|
||||
- OpenRA
|
||||
- minecraft-1.21.4-startup
|
||||
- minecraft-1.21.4-main-menu
|
||||
- minecraft-1.21.4-in-world
|
||||
- minecraft-1.21.4-fabric-sodium-in-world
|
||||
- minecraft-26.2-main-menu
|
||||
- minecraft-26.2-in-world
|
||||
- minecraft-1.21.4-fabric-rei-inventory-normal-world
|
||||
- minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world
|
||||
- minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world
|
||||
- minecraft-1.21.4-fabric-journeymap-in-world-normal-world
|
||||
- minecraft-1.21.4-fabric-modernui-inventory-normal-world
|
||||
- minecraft-1.21.4-fabric-iris-bsl-in-world
|
||||
- minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world
|
||||
- minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world
|
||||
- minecraft-1.21.4-fabric-iris-sundial-lite-in-world
|
||||
- minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world
|
||||
- minecraft-1.21.4-fabric-iris-complementary-unbound-in-world
|
||||
- minecraft-1.21.4-fabric-iris-mellow-in-world
|
||||
- minecraft-1.21.4-fabric-iris-nostalgia-in-world
|
||||
- minecraft-1.21.4-fabric-iris-bliss-in-world
|
||||
- minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world
|
||||
- minecraft-1.21.4-fabric-iris-iterationt-in-world
|
||||
- minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world
|
||||
- minecraft-1.21.4-fabric-iris-photon-v1.1-in-world
|
||||
- minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world
|
||||
- minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world
|
||||
case: ${{ fromJSON(needs.trace-cases.outputs.names) }}
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
|
||||
@@ -360,322 +360,12 @@ function(add_trace_replay_test_for_backends CASE_NAME)
|
||||
add_trace_replay_test(${CASE_NAME} DirectVulkan ${ARGN})
|
||||
endfunction()
|
||||
|
||||
add_trace_replay_test_for_backends(OpenRA
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/openra.tgz
|
||||
TRACE_FILE openra.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/openra.0000031249.png
|
||||
TARGET_CALL 31249
|
||||
WIDTH 640
|
||||
HEIGHT 480
|
||||
CROP_X 1
|
||||
CROP_Y 1
|
||||
CROP_WIDTH 638
|
||||
CROP_HEIGHT 478
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-startup
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-startup.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-startup.0000092195.png
|
||||
TARGET_CALL 92195
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-main-menu
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-main-menu.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-main-menu.0000481787.png
|
||||
ALTERNATE_GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-main-menu.0000481787-mali.png
|
||||
TARGET_CALL 481787
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-in-world.0000280000.png
|
||||
TARGET_CALL 280000
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-sodium-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-sodium-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-sodium-in-world.0000923340.png
|
||||
TARGET_CALL 923340
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-26.2-main-menu
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-26.2-main-menu.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-26.2-main-menu.0000101926.png
|
||||
TARGET_CALL 101926
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-26.2-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-26.2-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-26.2-in-world.0000519370.png
|
||||
TARGET_CALL 519370
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-common-mods-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-common-mods-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-common-mods-in-world.0000522084.png
|
||||
TARGET_CALL 522084
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-common-mods-inventory
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-common-mods-inventory.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-common-mods-inventory.0000728558.png
|
||||
TARGET_CALL 728558
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-rei-inventory
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-rei-inventory.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-rei-inventory.0005431826.png
|
||||
TARGET_CALL 5431826
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-xaero-minimap-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-xaero-minimap-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-xaero-minimap-in-world.0002553500.png
|
||||
TARGET_CALL 2553500
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
CROP_X 0
|
||||
CROP_Y 10
|
||||
CROP_WIDTH 140
|
||||
CROP_HEIGHT 158
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-xaero-world-map-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-xaero-world-map-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-xaero-world-map-in-world.0001598209.png
|
||||
TARGET_CALL 1598209
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-journeymap-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-journeymap-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-journeymap-in-world.0002632392.png
|
||||
TARGET_CALL 2632392
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-modernui-inventory
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-modernui-inventory.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-modernui-inventory.0004907381.png
|
||||
TARGET_CALL 4907381
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-rei-inventory-normal-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-rei-inventory-normal-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-rei-inventory-normal-world.0000734465.png
|
||||
TARGET_CALL 734465
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world.0000457190.png
|
||||
TARGET_CALL 457190
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
CROP_X 0
|
||||
CROP_Y 10
|
||||
CROP_WIDTH 140
|
||||
CROP_HEIGHT 158
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world.0000573061.png
|
||||
TARGET_CALL 573061
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-journeymap-in-world-normal-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-journeymap-in-world-normal-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-journeymap-in-world-normal-world.0000641975.png
|
||||
TARGET_CALL 641975
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-modernui-inventory-normal-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-modernui-inventory-normal-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-modernui-inventory-normal-world.0000727926.png
|
||||
TARGET_CALL 727926
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-bsl-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-bsl-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-bsl-in-world.0000110725.png
|
||||
TARGET_CALL 110725
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world.0000095322.png
|
||||
TARGET_CALL 95322
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world.0000141559.png
|
||||
TARGET_CALL 141559
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-sundial-lite-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-sundial-lite-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-sundial-lite-in-world.0000150023.png
|
||||
TARGET_CALL 150023
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world.0000151297.png
|
||||
TARGET_CALL 151297
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-complementary-unbound-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-complementary-unbound-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-complementary-unbound-in-world.0000146559.png
|
||||
TARGET_CALL 146559
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-mellow-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-mellow-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-mellow-in-world.0000096143.png
|
||||
TARGET_CALL 96143
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-nostalgia-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-nostalgia-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-nostalgia-in-world.0000153808-linux-mesa.png
|
||||
ALTERNATE_GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-nostalgia-in-world.0000153808.png
|
||||
TARGET_CALL 153808
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-bliss-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-bliss-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-bliss-in-world.0000113511.png
|
||||
TARGET_CALL 113511
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world.0000125124-linux-mesa.png
|
||||
TARGET_CALL 125124
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-iterationt-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-iterationt-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-iterationt-in-world.0000110538.png
|
||||
TARGET_CALL 110538
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world.0000115019.png
|
||||
TARGET_CALL 115019
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-photon-v1.1-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-photon-v1.1-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-photon-v1.1-in-world.0000159866.png
|
||||
TARGET_CALL 159866
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world.0000172128.png
|
||||
TARGET_CALL 172128
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
|
||||
add_trace_replay_test_for_backends(minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world
|
||||
TRACE_ARCHIVE ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world.tgz
|
||||
TRACE_FILE trace.trace
|
||||
GOLDEN ${MOBILEGL_TRACE_ROOT}/fixtures/minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world.0000145353.png
|
||||
TARGET_CALL 145353
|
||||
WIDTH 854
|
||||
HEIGHT 480
|
||||
)
|
||||
set(MOBILEGL_TRACE_CASES_CMAKE "${CMAKE_CURRENT_BINARY_DIR}/trace_cases.cmake")
|
||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${MOBILEGL_TRACE_ROOT}/trace_cases.json")
|
||||
execute_process(
|
||||
COMMAND ${Python3_EXECUTABLE} "${MOBILEGL_TRACE_ROOT}/trace_cases.py"
|
||||
--format cmake
|
||||
--fixture-root "${MOBILEGL_TRACE_ROOT}/fixtures"
|
||||
OUTPUT_FILE "${MOBILEGL_TRACE_CASES_CMAKE}"
|
||||
COMMAND_ERROR_IS_FATAL ANY)
|
||||
include("${MOBILEGL_TRACE_CASES_CMAKE}")
|
||||
@@ -1,41 +1,15 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
import { createWriteStream } from "node:fs";
|
||||
import { createWriteStream, readFileSync } from "node:fs";
|
||||
import { mkdir, readdir, readFile, stat } from "node:fs/promises";
|
||||
import path from "node:path";
|
||||
import { fileURLToPath } from "node:url";
|
||||
|
||||
const BACKENDS = ["DirectGLES", "DirectVulkan"];
|
||||
const DEFAULT_FIXTURE_ROOT = path.join(path.dirname(fileURLToPath(import.meta.url)), "fixtures");
|
||||
const CASES = [
|
||||
"OpenRA",
|
||||
"minecraft-1.21.4-startup",
|
||||
"minecraft-1.21.4-main-menu",
|
||||
"minecraft-1.21.4-in-world",
|
||||
"minecraft-1.21.4-fabric-sodium-in-world",
|
||||
"minecraft-26.2-main-menu",
|
||||
"minecraft-26.2-in-world",
|
||||
"minecraft-1.21.4-fabric-rei-inventory-normal-world",
|
||||
"minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world",
|
||||
"minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world",
|
||||
"minecraft-1.21.4-fabric-journeymap-in-world-normal-world",
|
||||
"minecraft-1.21.4-fabric-modernui-inventory-normal-world",
|
||||
"minecraft-1.21.4-fabric-iris-bsl-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-sundial-lite-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-complementary-unbound-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-mellow-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-nostalgia-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-bliss-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-iterationt-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-photon-v1.1-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world",
|
||||
"minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world",
|
||||
];
|
||||
const SCRIPT_DIR = path.dirname(fileURLToPath(import.meta.url));
|
||||
const DEFAULT_FIXTURE_ROOT = path.join(SCRIPT_DIR, "fixtures");
|
||||
const TRACE_CASES = JSON.parse(readFileSync(path.join(SCRIPT_DIR, "trace_cases.json"), "utf8"));
|
||||
const CASES = TRACE_CASES.cases.map((traceCase) => traceCase.name);
|
||||
|
||||
function usage() {
|
||||
console.error(`Usage:
|
||||
|
||||
@@ -6,6 +6,8 @@ import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from trace_cases import case_with_defaults, load_trace_cases
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
FIXTURES = ROOT / "tools" / "trace_replay" / "fixtures"
|
||||
@@ -29,55 +31,7 @@ BACKENDS = {
|
||||
},
|
||||
}
|
||||
|
||||
CASES = [
|
||||
{
|
||||
"name": "OpenRA",
|
||||
"trace_archive": "openra.tgz",
|
||||
"trace_file": "openra.trace",
|
||||
"golden": "openra.0000031249.png",
|
||||
"target_call": 31249,
|
||||
"width": 640,
|
||||
"height": 480,
|
||||
"crop_x": 1,
|
||||
"crop_y": 1,
|
||||
"crop_width": 638,
|
||||
"crop_height": 478,
|
||||
"timeout_seconds": 180,
|
||||
},
|
||||
{"name": "minecraft-1.21.4-startup", "golden": "minecraft-1.21.4-startup.0000092195.png", "target_call": 92195, "timeout_seconds": 180},
|
||||
{"name": "minecraft-1.21.4-main-menu", "golden": "minecraft-1.21.4-main-menu.0000481787.png", "alternate_golden": "minecraft-1.21.4-main-menu.0000481787-mali.png", "target_call": 481787, "timeout_seconds": 180},
|
||||
{"name": "minecraft-1.21.4-in-world", "golden": "minecraft-1.21.4-in-world.0000280000.png", "target_call": 280000, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-sodium-in-world", "golden": "minecraft-1.21.4-fabric-sodium-in-world.0000923340.png", "target_call": 923340, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-26.2-main-menu", "golden": "minecraft-26.2-main-menu.0000101926.png", "target_call": 101926, "timeout_seconds": 180},
|
||||
{"name": "minecraft-26.2-in-world", "golden": "minecraft-26.2-in-world.0000519370.png", "target_call": 519370, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-common-mods-in-world", "golden": "minecraft-1.21.4-fabric-common-mods-in-world.0000522084.png", "target_call": 522084, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-common-mods-inventory", "golden": "minecraft-1.21.4-fabric-common-mods-inventory.0000728558.png", "target_call": 728558, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-rei-inventory", "golden": "minecraft-1.21.4-fabric-rei-inventory.0005431826.png", "target_call": 5431826, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-xaero-minimap-in-world", "golden": "minecraft-1.21.4-fabric-xaero-minimap-in-world.0002553500.png", "target_call": 2553500, "crop_y": 10, "crop_width": 140, "crop_height": 158, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-xaero-world-map-in-world", "golden": "minecraft-1.21.4-fabric-xaero-world-map-in-world.0001598209.png", "target_call": 1598209, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-journeymap-in-world", "golden": "minecraft-1.21.4-fabric-journeymap-in-world.0002632392.png", "target_call": 2632392, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-modernui-inventory", "golden": "minecraft-1.21.4-fabric-modernui-inventory.0004907381.png", "target_call": 4907381, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-rei-inventory-normal-world", "golden": "minecraft-1.21.4-fabric-rei-inventory-normal-world.0000734465.png", "target_call": 734465, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world", "golden": "minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world.0000457190.png", "target_call": 457190, "crop_y": 10, "crop_width": 140, "crop_height": 158, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world", "golden": "minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world.0000573061.png", "target_call": 573061, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-journeymap-in-world-normal-world", "golden": "minecraft-1.21.4-fabric-journeymap-in-world-normal-world.0000641975.png", "target_call": 641975, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-modernui-inventory-normal-world", "golden": "minecraft-1.21.4-fabric-modernui-inventory-normal-world.0000727926.png", "target_call": 727926, "timeout_seconds": 1800},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-bsl-in-world", "golden": "minecraft-1.21.4-fabric-iris-bsl-in-world.0000110725.png", "alternate_golden": "minecraft-1.21.4-fabric-iris-bsl-in-world.0000110725-mali.png", "target_call": 110725, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world", "golden": "minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world.0000095322.png", "target_call": 95322, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world", "golden": "minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world.0000141559.png", "target_call": 141559, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-sundial-lite-in-world", "golden": "minecraft-1.21.4-fabric-iris-sundial-lite-in-world.0000150023.png", "target_call": 150023, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world", "golden": "minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world.0000151297.png", "target_call": 151297, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-complementary-unbound-in-world", "golden": "minecraft-1.21.4-fabric-iris-complementary-unbound-in-world.0000146559.png", "target_call": 146559, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-mellow-in-world", "golden": "minecraft-1.21.4-fabric-iris-mellow-in-world.0000096143.png", "target_call": 96143, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-nostalgia-in-world", "golden": "minecraft-1.21.4-fabric-iris-nostalgia-in-world.0000153808-linux-mesa.png", "alternate_golden": "minecraft-1.21.4-fabric-iris-nostalgia-in-world.0000153808.png", "target_call": 153808, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-bliss-in-world", "golden": "minecraft-1.21.4-fabric-iris-bliss-in-world.0000113511.png", "target_call": 113511, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world", "golden": "minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world.0000125124-linux-mesa.png", "target_call": 125124, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-iterationt-in-world", "golden": "minecraft-1.21.4-fabric-iris-iterationt-in-world.0000110538.png", "target_call": 110538, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world", "golden": "minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world.0000115019.png", "target_call": 115019, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-photon-v1.1-in-world", "golden": "minecraft-1.21.4-fabric-iris-photon-v1.1-in-world.0000159866.png", "target_call": 159866, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world", "golden": "minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world.0000172128.png", "target_call": 172128, "timeout_seconds": 900},
|
||||
{"name": "minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world", "golden": "minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world.0000145353.png", "target_call": 145353, "timeout_seconds": 900},
|
||||
]
|
||||
CASES = load_trace_cases()
|
||||
|
||||
|
||||
def safe_case(name):
|
||||
@@ -95,23 +49,6 @@ def bash_path(path):
|
||||
return "/" + drive + "/" + "/".join(parts)
|
||||
|
||||
|
||||
def case_with_defaults(case):
|
||||
merged = {
|
||||
"trace_archive": f"{case['name']}.tgz",
|
||||
"trace_file": "trace.trace",
|
||||
"width": 854,
|
||||
"height": 480,
|
||||
"ssim_threshold": "0.99",
|
||||
"crop_x": 0,
|
||||
"crop_y": 0,
|
||||
"crop_width": 0,
|
||||
"crop_height": 0,
|
||||
"timeout_seconds": 900,
|
||||
}
|
||||
merged.update(case)
|
||||
return merged
|
||||
|
||||
|
||||
def mark_skipped(case, backend, reason):
|
||||
result_dir = RESULT_ROOT / f"{safe_case(case['name'])}-{backend}"
|
||||
result_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
@@ -0,0 +1,252 @@
|
||||
{
|
||||
"defaults": {
|
||||
"trace_file": "trace.trace",
|
||||
"width": 854,
|
||||
"height": 480,
|
||||
"ssim_threshold": 0.99,
|
||||
"crop_x": 0,
|
||||
"crop_y": 0,
|
||||
"crop_width": 0,
|
||||
"crop_height": 0,
|
||||
"timeout_seconds": 900
|
||||
},
|
||||
"cases": [
|
||||
{
|
||||
"name": "OpenRA",
|
||||
"trace_archive": "openra.tgz",
|
||||
"trace_file": "openra.trace",
|
||||
"golden": "openra.0000031249.png",
|
||||
"target_call": 31249,
|
||||
"width": 640,
|
||||
"height": 480,
|
||||
"crop_x": 1,
|
||||
"crop_y": 1,
|
||||
"crop_width": 638,
|
||||
"crop_height": 478,
|
||||
"timeout_seconds": 180
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-startup",
|
||||
"trace_archive": "minecraft-1.21.4-startup.tgz",
|
||||
"golden": "minecraft-1.21.4-startup.0000092195.png",
|
||||
"target_call": 92195,
|
||||
"timeout_seconds": 180
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-main-menu",
|
||||
"trace_archive": "minecraft-1.21.4-main-menu.tgz",
|
||||
"golden": "minecraft-1.21.4-main-menu.0000481787.png",
|
||||
"alternate_golden": "minecraft-1.21.4-main-menu.0000481787-mali.png",
|
||||
"target_call": 481787,
|
||||
"timeout_seconds": 180
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-in-world.0000280000.png",
|
||||
"target_call": 280000
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-sodium-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-sodium-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-sodium-in-world.0000923340.png",
|
||||
"target_call": 923340,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-26.2-main-menu",
|
||||
"trace_archive": "minecraft-26.2-main-menu.tgz",
|
||||
"golden": "minecraft-26.2-main-menu.0000101926.png",
|
||||
"target_call": 101926,
|
||||
"timeout_seconds": 180
|
||||
},
|
||||
{
|
||||
"name": "minecraft-26.2-in-world",
|
||||
"trace_archive": "minecraft-26.2-in-world.tgz",
|
||||
"golden": "minecraft-26.2-in-world.0000519370.png",
|
||||
"target_call": 519370
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-common-mods-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-common-mods-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-common-mods-in-world.0000522084.png",
|
||||
"target_call": 522084,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-common-mods-inventory",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-common-mods-inventory.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-common-mods-inventory.0000728558.png",
|
||||
"target_call": 728558,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-rei-inventory",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-rei-inventory.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-rei-inventory.0005431826.png",
|
||||
"target_call": 5431826,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-xaero-minimap-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-xaero-minimap-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-xaero-minimap-in-world.0002553500.png",
|
||||
"target_call": 2553500,
|
||||
"crop_y": 10,
|
||||
"crop_width": 140,
|
||||
"crop_height": 158,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-xaero-world-map-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-xaero-world-map-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-xaero-world-map-in-world.0001598209.png",
|
||||
"target_call": 1598209,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-journeymap-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-journeymap-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-journeymap-in-world.0002632392.png",
|
||||
"target_call": 2632392,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-modernui-inventory",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-modernui-inventory.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-modernui-inventory.0004907381.png",
|
||||
"target_call": 4907381,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-rei-inventory-normal-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-rei-inventory-normal-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-rei-inventory-normal-world.0000734465.png",
|
||||
"target_call": 734465,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-xaero-minimap-in-world-normal-world.0000457190.png",
|
||||
"target_call": 457190,
|
||||
"crop_y": 10,
|
||||
"crop_width": 140,
|
||||
"crop_height": 158,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-xaero-world-map-in-world-normal-world.0000573061.png",
|
||||
"target_call": 573061,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-journeymap-in-world-normal-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-journeymap-in-world-normal-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-journeymap-in-world-normal-world.0000641975.png",
|
||||
"target_call": 641975,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-modernui-inventory-normal-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-modernui-inventory-normal-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-modernui-inventory-normal-world.0000727926.png",
|
||||
"target_call": 727926,
|
||||
"timeout_seconds": 1800
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-bsl-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-bsl-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-bsl-in-world.0000110725.png",
|
||||
"alternate_golden": "minecraft-1.21.4-fabric-iris-bsl-in-world.0000110725-mali.png",
|
||||
"target_call": 110725
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-makeup-ultrafast-in-world.0000095322.png",
|
||||
"target_call": 95322
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-super-duper-vanilla-in-world.0000141559.png",
|
||||
"target_call": 141559
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-sundial-lite-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-sundial-lite-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-sundial-lite-in-world.0000150023.png",
|
||||
"target_call": 150023
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-complementary-reimagined-in-world.0000151297.png",
|
||||
"target_call": 151297
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-complementary-unbound-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-complementary-unbound-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-complementary-unbound-in-world.0000146559.png",
|
||||
"target_call": 146559
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-mellow-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-mellow-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-mellow-in-world.0000096143.png",
|
||||
"target_call": 96143
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-nostalgia-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-nostalgia-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-nostalgia-in-world.0000153808-linux-mesa.png",
|
||||
"alternate_golden": "minecraft-1.21.4-fabric-iris-nostalgia-in-world.0000153808.png",
|
||||
"target_call": 153808
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-bliss-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-bliss-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-bliss-in-world.0000113511.png",
|
||||
"target_call": 113511
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-chocapic-v6-lite-in-world.0000125124-linux-mesa.png",
|
||||
"target_call": 125124
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-iterationt-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-iterationt-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-iterationt-in-world.0000110538.png",
|
||||
"target_call": 110538
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-iterationt-nodsa-in-world.0000115019.png",
|
||||
"target_call": 115019
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-photon-v1.1-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-photon-v1.1-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-photon-v1.1-in-world.0000159866.png",
|
||||
"target_call": 159866
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-photon-v1.3b-in-world.0000172128.png",
|
||||
"target_call": 172128
|
||||
},
|
||||
{
|
||||
"name": "minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world",
|
||||
"trace_archive": "minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world.tgz",
|
||||
"golden": "minecraft-1.21.4-fabric-iris-derivative-main-d24.4.14-in-world.0000145353.png",
|
||||
"target_call": 145353
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
TRACE_CASES_JSON = Path(__file__).with_name("trace_cases.json")
|
||||
|
||||
|
||||
def load_trace_case_manifest(path=TRACE_CASES_JSON):
|
||||
with Path(path).open("r", encoding="utf-8") as file:
|
||||
manifest = json.load(file)
|
||||
defaults = manifest.get("defaults", {})
|
||||
cases = []
|
||||
seen = set()
|
||||
for case in manifest.get("cases", []):
|
||||
merged = {**defaults, **case}
|
||||
name = merged.get("name")
|
||||
if not name:
|
||||
raise ValueError("trace case is missing name")
|
||||
if name in seen:
|
||||
raise ValueError(f"duplicate trace case: {name}")
|
||||
seen.add(name)
|
||||
for key in ("trace_archive", "trace_file", "golden", "target_call", "width", "height"):
|
||||
if key not in merged:
|
||||
raise ValueError(f"{key} is required for {name}")
|
||||
cases.append(merged)
|
||||
return {"defaults": defaults, "cases": cases}
|
||||
|
||||
|
||||
def load_trace_cases(path=TRACE_CASES_JSON):
|
||||
return load_trace_case_manifest(path)["cases"]
|
||||
|
||||
|
||||
def case_with_defaults(case):
|
||||
return dict(case)
|
||||
|
||||
|
||||
def trace_case_names(path=TRACE_CASES_JSON):
|
||||
return [case["name"] for case in load_trace_cases(path)]
|
||||
|
||||
|
||||
def find_trace_case(name, path=TRACE_CASES_JSON):
|
||||
for case in load_trace_cases(path):
|
||||
if case["name"] == name:
|
||||
return case
|
||||
raise KeyError(name)
|
||||
|
||||
|
||||
def fixture_files(case, fixture_root):
|
||||
root = fixture_root.rstrip("/\\")
|
||||
files = [
|
||||
f"{root}/{case['trace_archive']}",
|
||||
f"{root}/{case['golden']}",
|
||||
]
|
||||
if case.get("alternate_golden"):
|
||||
files.append(f"{root}/{case['alternate_golden']}")
|
||||
return files
|
||||
|
||||
|
||||
def github_apk_case(case):
|
||||
result = dict(case)
|
||||
for key in ("trace_archive", "golden", "alternate_golden"):
|
||||
if result.get(key):
|
||||
result[key] = f"tools/trace_replay/fixtures/{result[key]}"
|
||||
return result
|
||||
|
||||
|
||||
def cmake_quote(value):
|
||||
return '"' + str(value).replace("\\", "/").replace('"', '\\"') + '"'
|
||||
|
||||
|
||||
def emit_cmake(cases, fixture_root):
|
||||
root = fixture_root.rstrip("/\\")
|
||||
lines = ["# Generated from tools/trace_replay/trace_cases.json.", ""]
|
||||
keys = [
|
||||
("TRACE_ARCHIVE", "trace_archive", True),
|
||||
("TRACE_FILE", "trace_file", False),
|
||||
("GOLDEN", "golden", True),
|
||||
("ALTERNATE_GOLDEN", "alternate_golden", True),
|
||||
("TARGET_CALL", "target_call", False),
|
||||
("WIDTH", "width", False),
|
||||
("HEIGHT", "height", False),
|
||||
("SSIM_THRESHOLD", "ssim_threshold", False),
|
||||
("CROP_X", "crop_x", False),
|
||||
("CROP_Y", "crop_y", False),
|
||||
("CROP_WIDTH", "crop_width", False),
|
||||
("CROP_HEIGHT", "crop_height", False),
|
||||
]
|
||||
for case in cases:
|
||||
lines.append(f"add_trace_replay_test_for_backends({cmake_quote(case['name'])}")
|
||||
for cmake_key, json_key, fixture_path in keys:
|
||||
value = case.get(json_key)
|
||||
if value is None or value == "":
|
||||
continue
|
||||
if fixture_path:
|
||||
value = f"{root}/{value}"
|
||||
lines.append(f" {cmake_key} {cmake_quote(value)}")
|
||||
lines.append(")")
|
||||
lines.append("")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--case", dest="case_name", help="Trace case name.")
|
||||
parser.add_argument("--fixture-root", default="tools/trace_replay/fixtures")
|
||||
parser.add_argument(
|
||||
"--format",
|
||||
choices=("names", "github-apk", "fixture-files", "cmake"),
|
||||
default="names",
|
||||
)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
cases = load_trace_cases()
|
||||
if args.format == "names":
|
||||
print(json.dumps([case["name"] for case in cases], separators=(",", ":")))
|
||||
elif args.format == "github-apk":
|
||||
print(json.dumps([github_apk_case(case) for case in cases], separators=(",", ":")))
|
||||
elif args.format == "fixture-files":
|
||||
if not args.case_name:
|
||||
print("--case is required for --format fixture-files", file=sys.stderr)
|
||||
return 2
|
||||
try:
|
||||
case = find_trace_case(args.case_name)
|
||||
except KeyError:
|
||||
print(f"unknown trace case: {args.case_name}", file=sys.stderr)
|
||||
return 2
|
||||
print("\n".join(fixture_files(case, args.fixture_root)))
|
||||
elif args.format == "cmake":
|
||||
print(emit_cmake(cases, args.fixture_root))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user