diff --git a/metrics/BUILD.bazel b/metrics/BUILD.bazel index 6c2ad8e81..0a8c83786 100644 --- a/metrics/BUILD.bazel +++ b/metrics/BUILD.bazel @@ -10,11 +10,16 @@ filegroup( "expectations/platform-ios/**", # iOS only ], allow_empty = False, - ) + [ + ) + select({ + "//:metal_renderer": glob(["expectations/platform-ios-metal/**"]), # iOS Metal only + "//conditions:default": [], + }) + [ "cache-metrics.db", "cache-style.db", "ios-render-test-runner-metrics.json", # iOS only "ios-render-test-runner-style.json", # iOS only + "ios-metal-render-test-runner-metrics.json", # iOS Metal only + "ios-metal-render-test-runner-style.json", # iOS Metal only "linux-gcc8-release-metrics.json", "linux-gcc8-release-style.json", ], diff --git a/metrics/expectations/platform-ios-metal/render-tests/combinations/heatmap-translucent--fill-translucent/expected.png b/metrics/expectations/platform-ios-metal/render-tests/combinations/heatmap-translucent--fill-translucent/expected.png new file mode 100644 index 000000000..49da3a57b Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/combinations/heatmap-translucent--fill-translucent/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/combinations/hillshade-translucent--fill-opaque/expected.png b/metrics/expectations/platform-ios-metal/render-tests/combinations/hillshade-translucent--fill-opaque/expected.png new file mode 100644 index 000000000..6f559a8cd Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/combinations/hillshade-translucent--fill-opaque/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/combinations/raster-translucent--fill-translucent/expected.png b/metrics/expectations/platform-ios-metal/render-tests/combinations/raster-translucent--fill-translucent/expected.png new file mode 100644 index 000000000..e96a626f0 Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/combinations/raster-translucent--fill-translucent/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/default/expected.png b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/default/expected.png new file mode 100644 index 000000000..f2cf3938b Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/default/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/function/expected.png b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/function/expected.png new file mode 100644 index 000000000..c073e10f8 Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/function/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/literal/expected.png b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/literal/expected.png new file mode 100644 index 000000000..cf119ed03 Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/literal/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/negative/expected.png b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/negative/expected.png new file mode 100644 index 000000000..ac80278be Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-base/negative/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-translate-anchor/map/expected.png b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-translate-anchor/map/expected.png new file mode 100644 index 000000000..271228f94 Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-translate-anchor/map/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-translate-anchor/viewport/expected.png b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-translate-anchor/viewport/expected.png new file mode 100644 index 000000000..a2f49fd73 Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/fill-extrusion-translate-anchor/viewport/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/sprites/2x-screen-2x-pattern/expected.png b/metrics/expectations/platform-ios-metal/render-tests/sprites/2x-screen-2x-pattern/expected.png new file mode 100644 index 000000000..4760dfa5d Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/sprites/2x-screen-2x-pattern/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/text-variable-anchor/left-top-right-bottom-offset-tile-map-mode/expected.png b/metrics/expectations/platform-ios-metal/render-tests/text-variable-anchor/left-top-right-bottom-offset-tile-map-mode/expected.png new file mode 100644 index 000000000..371da5b9e Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/text-variable-anchor/left-top-right-bottom-offset-tile-map-mode/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/within/filter-with-inlined-geojson/expected.png b/metrics/expectations/platform-ios-metal/render-tests/within/filter-with-inlined-geojson/expected.png new file mode 100644 index 000000000..0c98d60bc Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/within/filter-with-inlined-geojson/expected.png differ diff --git a/metrics/expectations/platform-ios-metal/render-tests/within/paint-line/expected.png b/metrics/expectations/platform-ios-metal/render-tests/within/paint-line/expected.png new file mode 100644 index 000000000..aa4797f77 Binary files /dev/null and b/metrics/expectations/platform-ios-metal/render-tests/within/paint-line/expected.png differ diff --git a/metrics/ios-metal-render-test-runner-metrics.json b/metrics/ios-metal-render-test-runner-metrics.json new file mode 100644 index 000000000..8679b9592 --- /dev/null +++ b/metrics/ios-metal-render-test-runner-metrics.json @@ -0,0 +1,14 @@ +{ + "base_test_path": "tests", + "cache_path": "cache-metrics.db", + "expectation_paths": [ + "expectations/platform-ios", + "expectations/platform-ios-metal" + ], + "ignore_paths": [ + "ignores/platform-all.json", + "ignores/platform-macos.json", + "ignores/platform-ios.json" + ], + "metric_path": "ios-render-test-runner" +} \ No newline at end of file diff --git a/metrics/ios-metal-render-test-runner-style.json b/metrics/ios-metal-render-test-runner-style.json new file mode 100644 index 000000000..bdacb3f9d --- /dev/null +++ b/metrics/ios-metal-render-test-runner-style.json @@ -0,0 +1,18 @@ +{ + "base_test_path": "integration", + "cache_path": "cache-style.db", + "expectation_paths": [ + "expectations/platform-ios", + "expectations/platform-ios-metal" + ], + "ignore_paths": [ + "ignores/platform-all.json", + "ignores/platform-macos.json", + "ignores/platform-ios.json" + ], + "metric_path": "ios-render-test-runner", + "probes": [ + "probeGFX", + "probeNetwork" + ] +} diff --git a/render-test/ios/iosTestRunner.mm b/render-test/ios/iosTestRunner.mm index 8a970a0ac..3ca82c9ac 100644 --- a/render-test/ios/iosTestRunner.mm +++ b/render-test/ios/iosTestRunner.mm @@ -64,8 +64,13 @@ if (path) { std::string basePath = std::string([path UTF8String]); self.testStatus = self.runner->startTest(basePath) ? YES : NO; +#if MLN_RENDER_BACKEND_METAL + self.styleResultPath = [path stringByAppendingPathComponent:@"/ios-metal-render-test-runner-style.html"]; + self.metricResultPath = [path stringByAppendingPathComponent:@"/ios-metal-render-test-runner-metrics.html"]; +#else self.styleResultPath = [path stringByAppendingPathComponent:@"/ios-render-test-runner-style.html"]; self.metricResultPath = [path stringByAppendingPathComponent:@"/ios-render-test-runner-metrics.html"]; +#endif BOOL fileFound = [fileManager fileExistsAtPath: self.styleResultPath]; if (fileFound == NO) { diff --git a/render-test/ios/ios_test_runner.cpp b/render-test/ios/ios_test_runner.cpp index cc311273a..5947d0525 100644 --- a/render-test/ios/ios_test_runner.cpp +++ b/render-test/ios/ios_test_runner.cpp @@ -32,8 +32,13 @@ bool TestRunner::startTest(const std::string& manifestBasePath) { bool status = false; try { +#if MLN_RENDER_BACKEND_METAL + status = runTestWithManifest(manifestBasePath + "/ios-metal-render-test-runner-style.json"); + status = runTestWithManifest(manifestBasePath + "/ios-metal-render-test-runner-metrics.json") && status; +#else status = runTestWithManifest(manifestBasePath + "/ios-render-test-runner-style.json"); status = runTestWithManifest(manifestBasePath + "/ios-render-test-runner-metrics.json") && status; +#endif } catch (...) { mbgl::Log::Info(mbgl::Event::General, "Failed with exception"); } diff --git a/render-test/ios/setup_test_data.sh b/render-test/ios/setup_test_data.sh index 6c6c20e3d..482f9a161 100755 --- a/render-test/ios/setup_test_data.sh +++ b/render-test/ios/setup_test_data.sh @@ -20,5 +20,7 @@ cp -r metrics/tests $BASE_DIR/test-data/ cp -r metrics/ios-render-test-runner $BASE_DIR/test-data/ cp -r metrics/ios-render-test-runner-style.json $BASE_DIR/test-data/ cp -r metrics/ios-render-test-runner-metrics.json $BASE_DIR/test-data/ +cp -r metrics/ios-metal-render-test-runner-style.json $BASE_DIR/test-data/ +cp -r metrics/ios-metal-render-test-runner-metrics.json $BASE_DIR/test-data/ cp -r metrics/cache-metrics.db $BASE_DIR/test-data/ cp -r metrics/cache-style.db $BASE_DIR/test-data/