Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v3.0.0-beta.5 (performance improvements and bug fixes) #12940

Merged
32 commits merged into from
Oct 20, 2023
Merged

v3.0.0-beta.5 (performance improvements and bug fixes) #12940

32 commits merged into from
Oct 20, 2023

Conversation

mourner
Copy link
Member

@mourner mourner commented Oct 20, 2023

See #12829 for more information about the v3 release. Changes since v3.0.0-beta.4:

✨ Features and improvements

  • Improve shadow and fog rendering performance.
  • Slightly improve performance of 3D layers on highly pitched views by rendering front to back.
  • Make zooming over dynamic terrain (that pops in as you zoom) smoother.
  • Add renderstart event, which combined with render event can be used to measure rendering frame duration.

Bug fixes 🐞

  • Fix shadows sometimes flickering when zooming in on the Standard style.
  • Fix flickering when using GeoJSON setData to animate 3D models.
  • Fix symbols elevated over 3D layers jumping to ground level and back during zoom.
  • Fix an error when loading a 3D tile where multiple materials reference the same texture.
  • Fix several edge cases when smoothing terrain under 3D landmarks.
  • Fix hillshade-illumination-direction to align with light direction if hillshade-illumination-anchor is not set to viewport.
  • Fix precision issues when rendering ground flood light.
  • Fix styles with fragment: false not to be loaded as basemap imports.
  • Fix an error on map hasImage and updateImage after the map was removed.

endanke and others added 30 commits October 20, 2023 11:23
* Fix gl-stats.html

* Update disjoint timer query extension
…al-826)

Some frames where being skipped because the source was marked as not loaded. The proposed solution is to avoid to do this check for vector model layers as we do in other draw functions. Also added a check to verify the model has been uploaded before it gets rendered
This is done while keeping compatibility with b3dm tiles
…in (internal-828)

* some bugfixes

* extract dem._dem.dim to a variable

* some more comments

* one last comment

* ignore flakey test temporarily

* avoid borders fully and remove the need for clamping in loop

* revert expectation

* disable flakey test only on mac for now
…nternal-829)

If 3d lights enabled and hillshade-anchor is set to map - align hillshade illumination direction with 3d lights.
Bumps [@rollup/plugin-json](https://github.com/rollup/plugins/tree/HEAD/packages/json) from 6.0.0 to 6.0.1.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/json/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/wasm-v6.0.1/packages/json)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-json"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@rollup/plugin-terser](https://github.com/rollup/plugins/tree/HEAD/packages/terser) from 0.4.3 to 0.4.4.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/terser/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/HEAD/packages/terser)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-terser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [sinon](https://github.com/sinonjs/sinon) from 16.0.0 to 16.1.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](sinonjs/sinon@v16.0.0...v16.1.0)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@rollup/plugin-replace](https://github.com/rollup/plugins/tree/HEAD/packages/replace) from 5.0.2 to 5.0.3.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/replace/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/babel-v5.0.3/packages/replace)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-replace"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Allow enabling and disabling fog per tile basis
* Fix cameraPixelsPerMeter
* Skip rendering of fog if it's not visible
* Do not render fog for close tiles
* Do not render fog for close models
…e on dynamic terrain. (internal-822)

* Smoothens zoom gesture on dynamic terrain

This doesn't make that picked point is under cursor.
Move exaggeration evaluation from style to Terrain to throttle it. apply zoom immediately there - style evaluation is deferred for several frames after transform.zoom change.

Reduces trembling of terrain when zooming over mountain peaks

* keep evaluated zoom fixed during panning

* Update dynamic.js

transition happens 14->15

* avoid long fog when zooming in

* cleanup. render test

- Make the camera behave the same regardless if it is gesture or programatic
- revert complex (and wrong) anticipation of zoom delta in handler_manager
- fix fog covering full screen on zooming to 0

* process review comment

* Update terrain.js

Disable terrain when zoom dependent expression evaluates to 0

* Update terrain.js

revert special memory pool handling for disabling terrain on exaggeration

* update render test

- Disable cut off range initially to keep the original style (editing modifies fill extrusion layer)
- dynamic.js exaggeration drops 13.0 to 13.7
- update render test

* backport constant elevation from native PR

* fix elevation-not-yet-available

keep the camera above other tiles

* Fix issue with slow movement. ScrollZoom - stop inertia on recenter zoom of different sign

exaggeration should jump to evaluated value only outside dynamic range

On inertial recenter could lead to higher zoom (terrain is curvy) and it is important to stop zooming back (is alst zoom was in)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.0 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/@babel/[email protected]/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 25.0.4 to 25.0.7.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/commonjs-v25.0.7/packages/commonjs)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-commonjs"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.13.0 to 4.14.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](SeleniumHQ/selenium@selenium-4.13.0...selenium-4.14.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [tape](https://github.com/ljharb/tape) from 5.7.0 to 5.7.1.
- [Changelog](https://github.com/ljharb/tape/blob/master/CHANGELOG.md)
- [Commits](tape-testing/tape@v5.7.0...v5.7.1)

---
updated-dependencies:
- dependency-name: tape
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…al-851)

- Don't sample the second cascade in tiles that don't need it
- Don't render the second cascade shadow map if it isn't visible on screen
- Add debug monitor for rendered shadow cascades in 3d-playground
- Add comment about inaccurate tile maxHeight and lastCascade calculations
…ernal-861)

* Try to alleviate tile reload performance penalty when reloading extra shadow caster tiles

* Only reparse when tiles coming from extraShadowCasting tiles to in view
* MAPS3D-1119: add stagig tileset into dynamic style

* fix a bug with duplicate model texture references causing an error

* fix unit tests

* test fixup

* switch back to beta 3dbuildings in debug style

---------

Co-authored-by: Vladimir Agafonkin <[email protected]>
…nternal-842)

* do not fail rendering on unrecognized properties

* expose ValidationWarning from style-spec
Shadows are not rended only in case of terrain when opacity is zoom based expression.
The value is selected experimentally - see the video.
jtorresfabra and others added 2 commits October 20, 2023 11:23
* Fix point in footprint method

* Fix zOffset flickering

Previous code was not updating zOffsetVertexArray each time the sybols instances were updated. Now we make sure it happens on updateLayerOpacities. Also added an error guard in the case we can't find a bucket for a symbol and apply previous zOffset

* Update expectations

* enable asserts

fix issue where lookup was not cached and wrong 0 height was returned.

---------

Co-authored-by: Aleksandar Stojiljković <[email protected]>
@mourner mourner requested a review from a team as a code owner October 20, 2023 08:30
@mourner mourner added the skip changelog Used for PRs that do not need a changelog entry label Oct 20, 2023
@mourner mourner closed this pull request by merging all changes into main in 4b3e858 Oct 20, 2023
@mourner mourner deleted the v3-beta5 branch October 20, 2023 09:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
skip changelog Used for PRs that do not need a changelog entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.