Commit Graph

15272 Commits

Author SHA1 Message Date
Mikhail Pozdnyakov
6d4e5f57ec [core] Add OfflineDatabase.Pack unit test 2019-12-02 13:46:51 +02:00
Mikhail Pozdnyakov
4c49f0c9db [core] Introduce OfflineDatabase::runPackDatabaseAutomatically() API
- added a unit test
- Updated inline comments in default_file_source.hpp
2019-12-02 13:46:51 +02:00
Mikhail Pozdnyakov
0ec01356d8 Revert "[android] Add OfflineRegion.deleteAndSkipPackDatabase"
This reverts commit 9bc3aa46384229778853c2710e5b06259b78ed18.
2019-12-02 13:46:51 +02:00
zmiao
b2693f9d53 [test-runner] Add android RenderTestRunner baseline metrics (#15979)
* [test-runner] Enable probe-testing android render test runner

* [test-runner] Add pixel4 baseline metrics

* Add git ignored metrics

* Make renderTestrunner run two times with different manifest config
2019-12-02 13:29:13 +02:00
Alexander Shalamov
0c348a8acf [test-runner] Log all 'probeFileSize' failures
If there are multiple file size probes in a test file, it is
better to report all failures instead of first failed probe.
2019-12-02 12:07:37 +02:00
Alexander Shalamov
00d133239e [core] Blacklist VAO extension for Adreno (TM) 4xx GPUs
Blacklist in order to avoid crashes in a driver.
2019-12-02 11:03:16 +02:00
Mikhail Pozdnyakov
3947d5fa98 [core] Retain thread pool in GeoJSONSource
Otherwise, the construction of the `Immutable<Source::Impl>` in background thread might never yeld.
2019-11-29 15:37:49 +02:00
Juha Alanen
2e93f1e982 [test-runner] Run render tests with metrics on linux 2019-11-29 15:08:34 +02:00
Juha Alanen
0ba4b5c93f [test-runner] Add baseline metrics for linux 2019-11-29 15:08:34 +02:00
Thiago Marcos P. Santos
105ddad389 [glfw] Fix map not resizing on Linux
Apparently GLFW is implicitly calling glViewport on macOS but
not on Linux. Force setting the viewport instead of assuming a value.
2019-11-29 15:03:45 +02:00
Thiago Marcos P. Santos
af0d46c367 [android] Use icf=all
Chromium is using it for a while on ARM.

https://codereview.chromium.org/1153143004/patch/20001/30002
2019-11-29 13:42:18 +02:00
Mikhail Pozdnyakov
597757df6a [core] GeoJSONVTData uses Scheduler::GetSequenced() 2019-11-29 11:12:55 +02:00
Mikhail Pozdnyakov
06c80cae3c [core] Introduce GeometryTile::reset()
The newly introduced `GeometryTile::reset()` is
used while GeoJSON tile update in order to prevent from the
parsing of the new data with the stale layers or vice verse.
2019-11-29 11:12:55 +02:00
Mikhail Pozdnyakov
6419cd0ab2 [core] Calculate GeoJSON tile geometries in a background thread
Call `mapbox::geojsonvt::GeoJSONVT::getTile()` in a background
thread, so that the rendering thread is not blocked.
2019-11-29 11:12:55 +02:00
Mikhail Pozdnyakov
ab5572b0bc [core] Fix supercluster lambdas capturing 2019-11-29 09:53:28 +02:00
Mikhail Pozdnyakov
cd4136ed4b [core][android][darwin] Fix GeoJSONOptions handling
- share the `GeoJSONOptions` instances using `Immutable<GeoJSONOptions>` - avoid extra copying
- fix wrapping of the `GeoJSONOptions` instances in supercluster map/reduce lambdas.
  Previously, local variables were wrapped by reference.
2019-11-29 09:53:28 +02:00
Thiago Marcos P. Santos
e3d1daaf66 [metrics] Measure compressed size for Android
Because what metters is the size we add to the APK.
2019-11-28 19:18:17 +02:00
Thiago Marcos P. Santos
8c9b038af3 [render-test] Add support for measuring compressed file size
Useful because for platform such as Android, we want to measure
the size of the library inside the APK, which is usually compressed.
2019-11-28 19:18:17 +02:00
Mikhail Pozdnyakov
b5794730b5 [core] Introduce Scheduler::GetSequenced() API
The newly introduced `Scheduler::GetSequenced()` returns
sequenced schedulers from the cache limited to 10 instances,
preventing from spawning too many threads.
2019-11-28 14:34:52 +02:00
Thiago Marcos P. Santos
316f1d0ad1 [metrics] Add new baselines. 2019-11-28 12:34:22 +02:00
Thiago Marcos P. Santos
efb567f1f5 [android] Use -Oz to reduce binary size 2019-11-28 12:34:22 +02:00
Thiago Marcos P. Santos
1455f6f581 [metrics] Make the parsing of metrics even more strict
File must be `metrics.json`.
2019-11-28 12:34:22 +02:00
Thiago Marcos P. Santos
d13562252d [metrics] Isolate binary size metrics
Will give us a better view of what changed and by how much. Otherwise
the test stops at the first failure.
2019-11-28 12:34:22 +02:00
Thiago Marcos P. Santos
09b724ea33 [render-test] Fix regex matching the directory name
This code was matching `style.json` instead of `metrics.json` if
the `style.json` was contained inside `metrics/.../style.json`.
2019-11-27 18:32:58 +02:00
Thiago Marcos P. Santos
2a65301f09 [build] Get the bots enforcing the binary size
Release bots will build and persist the build targets other workspaces.

A bot will collect all the binaries and check the size.
2019-11-27 18:32:58 +02:00
Thiago Marcos P. Santos
cf160a24d0 [build] Install some of our targets
This will make it easier to measure the binary size because we can
strip the binaries from symbols in a portable way.
2019-11-27 18:32:58 +02:00
Thiago Marcos P. Santos
8d163c159f [metrics] Add binary size metrics
This test will check the size of the tools and shared libraries
built from previous bots in a single run.

We will have +/- 1% acceptable variance before the test fails.
2019-11-27 18:32:58 +02:00
Thiago Marcos P. Santos
91d83accde [tests] Increase test tolerance
This test has been flaky on mac.
2019-11-27 18:32:58 +02:00
Mikhail Pozdnyakov
2b6a0e48ee [test runner] Enable test results update from cmd line
Added the following command line argument:
```
-u[update], --update=[update]     Test results update mode.
Supported values are: "default", "platform", "metrics"
```
2019-11-27 18:19:10 +02:00
Langston Smith
c35f64a2b5 [mobile] README update about mobile work being moved to new repos (#15958) 2019-11-27 07:18:51 -08:00
Alexander Shalamov
2f8501043c [test-runner] Move probe related command line args to manifest
- Move probe related command line arguments to manifest, example:

  "probes": ["probeGFX", "probeNetwork", "probeMemory"],
  "metric_path": "metrics/linux"

- Use manifest file name as a postfix for a result page
- Move injected probes 'begin' section before map object creation
- Generalize artifact storing shell script
2019-11-27 16:43:33 +02:00
Łukasz Paczos
f10097640a [android] do not fail on tautological-constant-compare error 2019-11-27 14:41:52 +01:00
zmiao
11321497da [render-test] Add metric_paths into Manifest (#15973)
* [render-test]Add expected metrics path in manifest file

* seperate metrics.json and expected.png

* fix expected path parsing

* keep expectation path if update is enabled
2019-11-27 11:08:55 +02:00
Mikhail Pozdnyakov
5c271dba24 [core] Update Source.GeoJSONSourceTilesAfterDataReset unit test 2019-11-26 16:35:17 +02:00
Mikhail Pozdnyakov
b6fbd1221e [core] Clear tiles when GeoJSON data changes
In tile and static mode clear tiles when data changes
in order to avoid render tests being flaky.
2019-11-26 16:35:17 +02:00
Sudarsana Babu Nagineni
0f3eede6a6 [build] Add an option to include platform specific implementation
Add an option to include platform specific implementation sources
to mbgl-core.
2019-11-26 16:23:36 +02:00
Konstantin Käfer
3600dd8a1a [core] fix rendering of dashed lines with round caps
In https://github.com/mapbox/mapbox-gl-native/pull/15862, we introduced individual textures for line dash patterns to eliminate atlas overflows. Unfortunately, this broke dashed lines that had round caps (dashed lines with straight caps still rendered correctly). Line pattern textures for round caps were now using 256×15 pixel textures.

The OpenGL ES 2.0 spec, section 3.8.2 states:

    Calling a sampler from a fragment shader will return `(R,G,B,A) = (0,0,0,1)` if any of the following conditions are true:
    […]
    - A two-dimensional sampler is called, the corresponding texture image is a non-power-of-two image […], and either the texture wrap mode is not `CLAMP_TO_EDGE`, or the minification filter is neither `NEAREST` nor `LINEAR`.
    […]

This means that texture lookups won't work for NPOT textures unless they use `GL_CLAMP_TO_EDGE`. We're using `GL_CLAMP_TO_EDGE` for the vertical direction, but GL_REPEAT for the horizontal direction, which means that we need a power-of-two texture for our line dash patterns to work on OpenGL ES 2.0 conforming implementations. Fortunately, this just means changing the height from 15 to 16, and from 30 to 32, so we don't waste many pixels.
2019-11-22 16:36:17 +01:00
Alexander Shalamov
17a5441768 [test-runner] Add render test runner options for injecting probes
This allows injection of memory, gfx and network probes before and
after operations defined in render test are run.
2019-11-22 15:29:25 +02:00
zmiao
a02ed76d5b [render-test] Adding mvt-fixture to app asset content (#15955) 2019-11-21 17:22:40 +02:00
Thiago Marcos P. Santos
b3fc469b09 [tests] Disable some metrics recording on Firebase
We are not using them, attempt to make the tests run faster.
2019-11-21 15:31:59 +02:00
Thiago Marcos P. Santos
d6eeea1909 [build] Build Android release when running render tests 2019-11-21 15:31:59 +02:00
Juha Alanen
a1243ac1ea [ios, macos] Changelog entry for network request priority change (#15950) 2019-11-21 14:39:47 +02:00
Juha Alanen
bb44ad232b [android] Changelog entry for network request priority change (#15950) 2019-11-21 14:39:47 +02:00
Juha Alanen
d777ba54bd [test] Add test for priority of online requests for expired resources 2019-11-21 14:39:47 +02:00
Juha Alanen
bdd7e53078 [core] Set the priority of online requests for existing resource to low 2019-11-21 14:39:47 +02:00
Juha Alanen
69d980cdc1 [core] Add new method to DefaultFileSource
Add setMaximumConcurrentRequests() method for setting it on the
OnlineFileSource.
2019-11-21 14:39:47 +02:00
Juha Alanen
451e6d40fa [core] Notify requests about network reachability only when coming back online 2019-11-21 14:39:47 +02:00
Julian Rex
21af0ff487 [ios] Refactor host checks (#15948) 2019-11-20 12:44:39 -05:00
zmiao
03b7fe3326 [render-test] Config CircleCi to run RenderTestApp on Firebase with Pixel4 (#15951)
This reverts commit d2413d4ffffd087b352b6e4edd6e6322a311bc07.
2019-11-20 17:56:19 +02:00
Thiago Marcos P. Santos
656bc9c8bb [build] Run Valgrind instead of Memory Sanitizer
Memory Sanitizer requires all the dependencies, including
libstdc++ to be compiled with Memory Sanitizer, otherwise
we will get tons of false positives.
2019-11-20 13:56:48 +02:00